Outils pour utilisateurs

Outils du site


bloc2:prog:poo:attributsmethodesclasse

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
bloc2:prog:poo:attributsmethodesclasse [2023/04/07 16:13] – supprimée - modification externe (Date inconnue) 127.0.0.1bloc2:prog:poo:attributsmethodesclasse [2023/11/28 14:47] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. admin
Ligne 1: Ligne 1:
 +=====Attributs et méthodes de classe=====
 +====Rappels sur les attributs et méthodes d'instance====
 +
 +=== Principe===
 +<WRAP group>
 +<WRAP half column>
 +\\ \\ Les attributs et méthodes __d'instance__ sont associés à des instances d'objets, c'est à dire des exemplaires d'objets.
 +</WRAP>
 +<WRAP half column>
 +{{ bloc2:prog:poo:attribmethclasse1.jpg?400 |}}
 +</WRAP>
 +</WRAP>
 +=== Intérêts ===
 +  * Représenter le monde réel au plus près de la réalité et sa relative complexité ;
 +
 +=== Limites===
 +<WRAP center round important 80%>
 +  * Le partage de données entre instances est impossible ;
 +  * Il n'existe pas de données hors instance ;
 +  * Il n'existe pas de traitement hors-instance ;
 +
 +</WRAP>
 +
 +====Attributs et méthodes de classe====
 +
 +=== Principe===
 +<WRAP group>
 +<WRAP half column>
 +{{ bloc2:prog:poo:attribmethclasse2.jpg?400 |}}
 +</WRAP>
 +
 +<WRAP half column>
 +\\ \\ \\ 
 +Un attribut ou une méthode __de classe__ existe hors de toute instance.
 +</WRAP>
 +</WRAP>
 +=== Usages courants===
 +<WRAP center round info 90%>
 +  * Données partagées entre instances ;
 +  * Données indépendantes d'une instance (ex. : les constantes intangibles, comme Pi) ;
 +  * Classes utilitaires regroupant des méthodes pour lesquelles le recours à une approche POO n'est pas utile.
 +</WRAP>
 +
 +====Aspects syntaxiques====
 +<WRAP group>
 +<WRAP 54% column>
 +<code java>
 +public class UneClasse {
 +  private static int nb = 0; 
 +
 +  public static void uneMethode(String arg){
 +    ...
 +    
 +    UneClasse.nb += 1;
 +  }
 +}
 +</code>
 +\\ \\ 
 +<code java>
 +public class Starter {
 +  
 +  public static void main(String args[]){
 +    UneClasse.uneMethode("Essai") ;
 +  }
 +}
 +</code>
 +</WRAP>
 +
 +<WRAP 39% column>
 +  * Le mot-clé <color blue>**static**</color> est utilisé pour désigner un attribut ou une méthode __de classe__ ;
 +
 +  * Par définition, un attribut de classe ne peut pas être initialisé dans le constructeur. Il <color blue>**doit donc être initialisé sur sa ligne de déclaration**</color> ;
 +
 +  * Par définition, pour référencer un attribut ou une méthode de classe, on utilisera la syntaxe **<color blue>Classe.attribut</color>** ou **<color blue>Classe.methode()*</color>* plutôt que la syntaxe **instance.attribut** ou **instance.methode()**, même si cette écriture est acceptée avec une notification non bloquante. Faut-il encore disposer d'une instance pour utiliser cette dernière écriture ...
 +</WRAP>
 +</WRAP>