Classes java
Jadorelinfo
Messages postés
51
Statut
Membre
-
ElementW Messages postés 5690 Statut Contributeur -
ElementW Messages postés 5690 Statut Contributeur -
Bonjour tout le monde,
J'ai une question a propos des classes, comment ça se fait que si par exemple je crée une classe du nom maison, le type sera maison??
Mais ce n'est pas un type de java ça??
J'ai une question a propos des classes, comment ça se fait que si par exemple je crée une classe du nom maison, le type sera maison??
Mais ce n'est pas un type de java ça??
A voir également:
- Classes java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
3 réponses
'lut, oui, une
Une fois déclarée, tu peux t'en servir comme ceci:
De même, si tu déclares un Object (dont toutes les classes héritent implicitement)
Et que tu lui attribues une instance d'une
alors tu pourras faire ceci:
qui renverra
class Maisondevient un type, mais ce n'est, comme tu t'es rendu compte, pas un type natif inclus dans Java.
Une fois déclarée, tu peux t'en servir comme ceci:
Maison maMaison = new Maison();
De même, si tu déclares un Object (dont toutes les classes héritent implicitement)
Object unHabitat;
Et que tu lui attribues une instance d'une
Maison,
unHabitat = new Maison();
alors tu pourras faire ceci:
unHabitat.getClass().getSimpleName()
qui renverra
"Maison", car unHabitat contient un type
Maison.
merçi pour ta réponse, donc il existe 2 types(au moins) en java: natif et non natif??
il suffit que je crée une classe avec n'importe quelle mot et ça devient automatiquement un type ??
il suffit que je crée une classe avec n'importe quelle mot et ça devient automatiquement un type ??
Quand je disais "natif", je voulais juste dire qu'il ne venait pas avec Java et son runtime, que c'est une classe que tu as créé de toutes pièces toi-même.
Autrement les types dits vraiment natifs (dits primitifs) sont les types
"avec n'importe quelle mot": oui, mais il y a des limites: on ne peut pas mettre certains caractères dans le nom, et le nom ne peut pas commencer par un chiffre.
Autrement les types dits vraiment natifs (dits primitifs) sont les types
int,
long,
byte,
short,
float,
double,
booleanet
char, qui eux sont spéciaux: ce sont des classes, mais particulières.
"avec n'importe quelle mot": oui, mais il y a des limites: on ne peut pas mettre certains caractères dans le nom, et le nom ne peut pas commencer par un chiffre.
En fait les 8 types primitifs sont des exceptions, pour les puristes un langage objet ne devrait manipuler que des objets, or ces types primitifs permettent de manipuler des données directement, sans avoir d'appel de méthodes. Tout le reste est objet, tu manipules des références qui sont effectivement typées, chaque objet ayant un type concret (issu du constructeur de la classe), mais pouvant être assigné à des références de plusieurs types "compatibles" (dépendant de la hiérarchie de classe héritées et d'interfaces implémentées par l'objet).
"ce sont des classes, mais particulières. "
Je suis pas vraiment d'accord, car vu que ce ne sont pas des objets on peut difficielement parler de classes derrières. Il y a certes des écritures un peu ambigües comme
"ce sont des classes, mais particulières. "
Je suis pas vraiment d'accord, car vu que ce ne sont pas des objets on peut difficielement parler de classes derrières. Il y a certes des écritures un peu ambigües comme
int.classqui feraient penser que ce sont des classes qui n'héritent pas d'Object mais pour moi ce sont juste des facilités d'écritures un peu bâtardes, pour l'introspection notamment.
Bonjour,
Java, comme tout les langages objets (et un grand nombre d'autres langages) est extensible. Cela signifie que tu peux créer autant de classes que tu veux et les réutiliser comme un nouveau type de données.
Remarque : formellement il n'y a que les classes du package java.lang que l'on peut considérer comme appartenant au langage. En effet l'API standard n'est qu'une spécifications et il peut en exister plusieurs implémentations (Oracle vs OpenJDK par exemple).
Donc toutes les classes que tu importes sont déjà des extensions du langage Java. Et comme Java est fortement typé, à chaque classe correspond un nouveau type (ou presque, il y a aussi les classes abstraites et interfaces qui apportent quelques nuances).
Java, comme tout les langages objets (et un grand nombre d'autres langages) est extensible. Cela signifie que tu peux créer autant de classes que tu veux et les réutiliser comme un nouveau type de données.
Remarque : formellement il n'y a que les classes du package java.lang que l'on peut considérer comme appartenant au langage. En effet l'API standard n'est qu'une spécifications et il peut en exister plusieurs implémentations (Oracle vs OpenJDK par exemple).
Donc toutes les classes que tu importes sont déjà des extensions du langage Java. Et comme Java est fortement typé, à chaque classe correspond un nouveau type (ou presque, il y a aussi les classes abstraites et interfaces qui apportent quelques nuances).