Classes et méthodes : conventions d'écriture
Résolu/Fermé
GMHB
Messages postés
8
Date d'inscription
jeudi 23 décembre 2021
Statut
Membre
Dernière intervention
4 janvier 2022
-
3 janv. 2022 à 13:33
Utilisateur anonyme - 4 janv. 2022 à 17:57
Utilisateur anonyme - 4 janv. 2022 à 17:57
A voir également:
- Dans le document à télécharger, léa a utilisé 2 méthodes différentes pour centrer le nom des continents. lesquels sont centrés correctement ?
- Clément a partagé le fichier mme bovary. il a écrit des commentaires dans le document. quel est le 2e commentaire ? - Guide
- Telecharger whatsapp pour pc - Télécharger - Messagerie
- Supercopier 2 - Télécharger - Gestion de fichiers
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
- Comment télécharger une vidéo youtube - Guide
5 réponses
jordane45
Messages postés
38289
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 novembre 2024
4 703
3 janv. 2022 à 13:40
3 janv. 2022 à 13:40
Bonjour
Dans les conventions habituelles, on trouve aussi les constantes écrites en Majuscule...
PI est une constante...
Dans les conventions habituelles, on trouve aussi les constantes écrites en Majuscule...
PI est une constante...
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
Modifié le 3 janv. 2022 à 14:36
Modifié le 3 janv. 2022 à 14:36
Bonjour,
le nom d'une classe commence par une majuscule et que le nom d'une méthode commence par une minuscule
Mais il y a aussi d'autres choses qui sont nommés, notamment tout ce qui permet de stocker des valeurs (variables, paramètres de méthodes, attributs de classe, etc.)
Dans la fonction System.out.println(), faut-il comprendre que "out" est une méthode de la classe "System". Que serait "println" ? Une sous-méthode ?
Dans l'égalité "perimetre = 2 * Math.PI * r ;" , "Math" semble être une classe si je me fie à la majuscule. Qu'est ""PI "? Une sous-classe, vu la majuscule ?
En effet Math est une classe et PI est une constante, en l'occurrence ici une constante static, de type double.
NB. Ici ce n'est pas une égalité mais une affectation.
Si "Math" est bien une classe, comment comprendre qu'elle ne se comporte pas comme une classe dans la formulation de l'égalité ?
C'est la valeur de PI qui compte dans ta formule, si on fait intervenir la classe Math c'est juste pour savoir où trouver PI.
Remarque : tes deux exemples, out et PI, sont static, peut être faudrait il revoir cette notion pour bien comprendre. Mais les sous classes et les sous méthodes ça n'existe pas.
le nom d'une classe commence par une majuscule et que le nom d'une méthode commence par une minuscule
Mais il y a aussi d'autres choses qui sont nommés, notamment tout ce qui permet de stocker des valeurs (variables, paramètres de méthodes, attributs de classe, etc.)
Dans la fonction System.out.println(), faut-il comprendre que "out" est une méthode de la classe "System". Que serait "println" ? Une sous-méthode ?
outest un attribut de classe, en l'occurrence ici un attribut static, de type PrintStream, et
printlnest une méthode de la classe PrintStream
Dans l'égalité "perimetre = 2 * Math.PI * r ;" , "Math" semble être une classe si je me fie à la majuscule. Qu'est ""PI "? Une sous-classe, vu la majuscule ?
En effet Math est une classe et PI est une constante, en l'occurrence ici une constante static, de type double.
NB. Ici ce n'est pas une égalité mais une affectation.
Si "Math" est bien une classe, comment comprendre qu'elle ne se comporte pas comme une classe dans la formulation de l'égalité ?
C'est la valeur de PI qui compte dans ta formule, si on fait intervenir la classe Math c'est juste pour savoir où trouver PI.
Remarque : tes deux exemples, out et PI, sont static, peut être faudrait il revoir cette notion pour bien comprendre. Mais les sous classes et les sous méthodes ça n'existe pas.
GMHB
Messages postés
8
Date d'inscription
jeudi 23 décembre 2021
Statut
Membre
Dernière intervention
4 janvier 2022
3 janv. 2022 à 17:33
3 janv. 2022 à 17:33
Grand merci à tous deux. J'y vois plus clair !
GMHB
Messages postés
8
Date d'inscription
jeudi 23 décembre 2021
Statut
Membre
Dernière intervention
4 janvier 2022
4 janv. 2022 à 11:10
4 janv. 2022 à 11:10
Je reviens vers vous pour mieux comprendre l'écriture d'une constante.
La constante appartenant à la classe Math est nommée par des caractères uniquement majuscules.
Logiquement une constante perso devrait respecter cette convention.
Or mon bouquin propose une écriture identique à une écriture de classe :
public final static int TailleEcran = 600;
Concernant les mots public final static, je comprends :
public : la constante est accessible de partout
final : la valeur de celle-ci ne peut être modifiée
static : sa valeur n'occupe qu'un seul emplacement mémoire. Elle ne peut être dupliquée dans d'autres emplacements mémoire.
La constante appartenant à la classe Math est nommée par des caractères uniquement majuscules.
Logiquement une constante perso devrait respecter cette convention.
Or mon bouquin propose une écriture identique à une écriture de classe :
public final static int TailleEcran = 600;
Concernant les mots public final static, je comprends :
public : la constante est accessible de partout
final : la valeur de celle-ci ne peut être modifiée
static : sa valeur n'occupe qu'un seul emplacement mémoire. Elle ne peut être dupliquée dans d'autres emplacements mémoire.
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
4 janv. 2022 à 14:30
4 janv. 2022 à 14:30
Java est fortement documenté donc il est bon de revenir directement à la documentation officielle pour comprendre les choses.
https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html
Dans certains cas, lorsque la valeur n'est pas vraiment une constante mais un objet avec un état (ce qui n'est pas ton cas ici), on peut accepter d'avoir une variable static final écrite comme un attribut (ex: tailleEcran), mais en aucun cas on ne devrait voir TailleEcran écrit avec un T majuscule, cette nomenclature est réservée aux classes.
Oui, par opposition à private ou protected
C'est un peu plus subtil que ça. Pour les types primitifs c'est vrai, mais pour les objets la valeur peut être modifiée, c'est la référence de l'objet qui ne peut pas être modifiée.
Une définition plus exacte serait : ne peut être affecté qu'une seule fois.
Oui et non. Il faut comprendre qu'une classe c'est ni plus ni moins qu'un objet (de type Class) et qu'une valeur static de la classe est une valeur porté par l'objet qui définit la classe, par opposition aux valeurs non static, qui sont portées indépendamment par chacun des objets créés par la classe.
Il va donc y avoir un partage de la même valeur static pour tous les objets de la classe puisque celle-ci est propre à la classe et non aux objets.
NB. Ce qui n'empêche en rien de pouvoir la dupliquer pour en faire autre chose.
https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html
Constants :Dans ton cas, en respectant les conventions de nommage tu devrais avoir :
The names of variables declared class constants and of ANSI constants should be all uppercase with words separated by underscores ("_"). (ANSI constants should be avoided, for ease of debugging.)static final int MIN_WIDTH = 4; static final int MAX_WIDTH = 999; static final int GET_THE_CPU = 1;
public final static int TAILLE_ECRAN = 600;
Dans certains cas, lorsque la valeur n'est pas vraiment une constante mais un objet avec un état (ce qui n'est pas ton cas ici), on peut accepter d'avoir une variable static final écrite comme un attribut (ex: tailleEcran), mais en aucun cas on ne devrait voir TailleEcran écrit avec un T majuscule, cette nomenclature est réservée aux classes.
- public : la constante est accessible de partout
Oui, par opposition à private ou protected
- final : la valeur de celle-ci ne peut être modifiée
C'est un peu plus subtil que ça. Pour les types primitifs c'est vrai, mais pour les objets la valeur peut être modifiée, c'est la référence de l'objet qui ne peut pas être modifiée.
Une définition plus exacte serait : ne peut être affecté qu'une seule fois.
- static : sa valeur n'occupe qu'un seul emplacement mémoire. Elle ne peut être dupliquée dans d'autres emplacements mémoire.
Oui et non. Il faut comprendre qu'une classe c'est ni plus ni moins qu'un objet (de type Class) et qu'une valeur static de la classe est une valeur porté par l'objet qui définit la classe, par opposition aux valeurs non static, qui sont portées indépendamment par chacun des objets créés par la classe.
Il va donc y avoir un partage de la même valeur static pour tous les objets de la classe puisque celle-ci est propre à la classe et non aux objets.
NB. Ce qui n'empêche en rien de pouvoir la dupliquer pour en faire autre chose.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
4 janv. 2022 à 17:57
4 janv. 2022 à 17:57
Bonjour
Imaginons un constructeur automobile.
Son usine délivre à la chaîne quantité de voitures du modèle ccm2022.
Le plan de fabrication (à supposer qu’aujourd’hui il existe encore un plan papier) est la classe ccm2022.
Chaque voiture est une instance.
Elle a des attributs qui lui sont propres, la couleur, la motorisation etc…
Par contre elles ont toutes une chose en commun (unique pour toute, y’a qu’un seul emplacement mémoire utilisé => static) qui en plus est une constante, c’est le nom commercial : MaSuperVoiture
Imaginons un constructeur automobile.
Son usine délivre à la chaîne quantité de voitures du modèle ccm2022.
Le plan de fabrication (à supposer qu’aujourd’hui il existe encore un plan papier) est la classe ccm2022.
Chaque voiture est une instance.
Elle a des attributs qui lui sont propres, la couleur, la motorisation etc…
Par contre elles ont toutes une chose en commun (unique pour toute, y’a qu’un seul emplacement mémoire utilisé => static) qui en plus est une constante, c’est le nom commercial : MaSuperVoiture