VI. Champs et méthodes de classe
1. Champs de classe (variable de classe)
Considérons la définition simpliste suivante:
cl...
Certains attributs peuvent être partagés par toutes les
instances d’une classe. C’est-à-dire ils peuvent être définis
indé...
Considérons la classe:
class ClasseTest {
double y;
}
Soient objA1 et objA2 deux instances différentes.
ClasseTest objA1=n...
4
Champs de classe (variable de classe)
Exemple1:
class ClasseTest {
int n;
double y;
}
public class MethodeStatic{
public static void main(String[] args) {
Class...
Exemple2:
class ClasseTest {
float y;
}
public class MethodeStatic{
public static void main(String[] args) {
ClasseTest ob...
 La classe Employé caractérisée par les attributs
code, nom et nbEmployés
 Les attributs code et nom sont des caractéris...
8
Une variable de classe (précédée du mot clef static) est partagée par tous les objets de la même classe.
Au début lors d...
Variables de classe
Variable de classe
public class UneClasse
{
public static int compteur = 0;
public UneClasse ()
{
comp...
Exécution ???
class Obj
{ private static long nb=0 ;
public Obj()
{ System.out.print ("++creation objet Obj ; ") ;
nb ++ ;...
2. Méthodes de classe
Ce sont des méthodes qui ont un rôle indépendant d’un objet
spécifique. Elles exécutent une action i...
Exemple
class Test{
…
private static int n; // champs de classe
private float x; // champs usuel
… //ici, on ne peut pas a...
Exécution
class Obj
{ private static long nb=0 ;
public Obj()
{ System.out.print ("++ creation objet Obj ; ") ;
nb ++ ;
Sy...
VII. Le mot clé final
L’attribut final indique que la valeur de la variable ne peut être
modifiée : on pourra lui donner u...
Constantes de classe
• Usage
–
–
–
–
Ce sont des variables de classes déclarées avec le mot-clé final
Ce sont des constant...
Le mot réservé final
 Une classe est déclarée final lorsqu'on ne souhaite pas
qu'elle puisse être sous-classée. Par consé...
Classe java type
Une classe java types contient trois grands types de membres :
toujours déclarer les constructeurs après ...
Prochain SlideShare
Chargement dans…5
×

Chap 03 poo en java partie2

374 vues

Publié le

Champs et méthodes de classe

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
374
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
22
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Chap 03 poo en java partie2

  1. 1. VI. Champs et méthodes de classe 1. Champs de classe (variable de classe) Considérons la définition simpliste suivante: class ClasseTest { int n; double y; } Chaque objet de type ClasseTest possède ses propres champs n et y. Par exemple avec les déclarations ClasseTest objA1=new ClasseTest(), objA2= new ClasseTest(); objA1.n et objA2.n désignent deux données différentes. objA1.y et objA2.y désignent aussi deux données différents. 1 objA1.n objA1.y objet objA1 objA2.n objA2.y objet objA2
  2. 2. Certains attributs peuvent être partagés par toutes les instances d’une classe. C’est-à-dire ils peuvent être définis indépendamment des instances (objets): Par exemple le nombre d’étudiants = le nombre d’objets étudiant créés. Ces attributs sont nommés champs de classe ou variables de classe. Ils sont comparables aux «variables globales ». Ces variables n’existent qu’en un seul exemplaire, quel que soit le nombre d’objets de la classe. Elles sont définies comme les attributs mais précédés du mot-clé static. 2 Les attributs statiques ne sont pas instanciés dans les objets
  3. 3. Considérons la classe: class ClasseTest { double y; } Soient objA1 et objA2 deux instances différentes. ClasseTest objA1=new ClasseTest(), objA2=new ClasseTest(); static int n; // la valeur de n est partagée par toutes les instances ClasseTest.n // champs (statique) de la classe ClasseTest objA1 et objA2 partagent la même variable n: - Pour y accéder, on utilise le nom de la classe objA1.n et objA2.n désignent la même donnée. La valeur de l’attribut n est indépendante de l’instance (objet). 3 objA1.n ou ClasseTest.n objA1.y objet objA1 objA2.y objet objA2 objA2.n ou ClasseTest.n
  4. 4. 4 Champs de classe (variable de classe)
  5. 5. Exemple1: class ClasseTest { int n; double y; } public class MethodeStatic{ public static void main(String[] args) { ClasseTest objA1=new ClasseTest(); ClasseTest objA2=new ClasseTest(); // objA2.n = ? } } objA1.n +=4; // objA1.n vaut 4 puisque n vaut 0 // initialisation par défaut des attributs // objA2.n vaut 0 : initialisation par défauts des attributs. 5
  6. 6. Exemple2: class ClasseTest { float y; } public class MethodeStatic{ public static void main(String[] args) { ClasseTest objA1=new ClasseTest(); ClasseTest objA2=new ClasseTest(); // objA2.n = ? } } static int n; // la valeur de n est partagée par toutes les instances objA1.n +=4; // objA1.n vaut 4 // objA2 vaut 4 car champs statique . // équivalent à ClasseTest.n=4; 6
  7. 7.  La classe Employé caractérisée par les attributs code, nom et nbEmployés  Les attributs code et nom sont des caractéristiques de chaque objet Employé contrairement au champ nbEmployés qui est une caractéristique commune à tous les objets (attribut statique)  Chaque objet, instance d’une classe, donne des valeurs particulières à tous les attributs définis dans sa classe sauf les attributs statiques ce qui détermine son état Attributs de la classe Employé 7 Champs de classe (variable de classe) : Employé code =1 nom ="jamil" : Employé code =2 nom ="alami " 2 objets de la classe Employé Un attribut statique d’une classe est un attribut qui appartient à la classe et qui est partagé par tous les objets de cette classe. Un attribut statique est considéré comme étant une variable globale à tous les objets. Les attributs statiques ne sont pas instanciés dans les objets. Employé code : int nom : String nbEmployés : static int
  8. 8. 8 Une variable de classe (précédée du mot clef static) est partagée par tous les objets de la même classe. Au début lors de la création des 3 objets chacun des champs x vaut -58 et des champs y vaut 20, l'affichage par System.out.println(...) donne les résultats suivants qui démontrent le partage de la variable x par tous les objets. Après exécution : obj1.x = 101 obj1.y = 100 obj2.x = 101 obj2.y = 20 obj3.x = 101 obj3.y = 20 AppliStatic.x = 99
  9. 9. Variables de classe Variable de classe public class UneClasse { public static int compteur = 0; public UneClasse () { compteur++; } } class AutreClasse { public void uneMethode() { int i = UneClasse.compteur; } } Utilisation de la variable de classe compteur dans le constructeur de la classe Utilisation de la variable de classe compteur dans une autre classe 9
  10. 10. Exécution ??? class Obj { private static long nb=0 ; public Obj() { System.out.print ("++creation objet Obj ; ") ; nb ++ ; System.out.println ("il y en a maintenant " + nb) ; } } public class TstObj { public static void main (String args[]) { Obj a ; System.out.println ("Main 1") ; a = new Obj() ; System.out.println ("Main 2") ; Obj b ; System.out.println ("Main 3") ; b = new Obj() ; Obj c = new Obj() ; System.out.println ("Main 4") ; } } Exécution Main 1 ++ creation objet Obj ; il y en a maintenant 1 Main 2 Main 3 ++ creation objet Obj ; il y en a maintenant 2 ++ creation objet Obj ; il y en a maintenant 3 Main 4 Exemple 1 d’utilisation d’un champ de classe 10
  11. 11. 2. Méthodes de classe Ce sont des méthodes qui ont un rôle indépendant d’un objet spécifique. Elles exécutent une action indépendante d’une instance particulière de la classe. La déclaration d’une méthode de classe se fait à l’aide du mot clé static. L’appel d’une telle méthode ne nécessite que le nom de la classe correspondante. Une méthode de classe ne peut utiliser que des variables de classe et jamais des variables d'instance. Par contre, une méthode d'instance peut accéder aux deux catégories de variables. Une méthode de classe ne peut avoir la même signature qu’une méthode d’instance 11
  12. 12. Exemple class Test{ … private static int n; // champs de classe private float x; // champs usuel … //ici, on ne peut pas accéder au champs x car champs usuel … // ici on peut accéder au champs statique n } } ……… Test obj ; Test.f() ; // appel la méthode de classe f de la classe Test obj.f() ; // reste autorisé, mais déconseillé public static void f() { // méthode de classe 12
  13. 13. Exécution class Obj { private static long nb=0 ; public Obj() { System.out.print ("++ creation objet Obj ; ") ; nb ++ ; System.out.println ("il y en a maintenant " + nb) ; } public static long nbObj () { return nb ; } } public class TstObj2 { public static void main (String args[]) { Obj a ; System.out.println ("Main 1 : nb objets = " + Obj.nbObj() ) ; a = new Obj() ; System.out.println ("Main 2 : nb objets = " + Obj.nbObj() ) ; Obj b ; System.out.println ("Main 3 : nb objets = " + Obj.nbObj() ) ; b = new Obj() ; Obj c = new Obj() ; System.out.println ("Main 4 : nb objets = " + Obj.nbObj() ) ; } } Exécution Main 1 : nb objets = 0 ++ creation objet Obj ; il y en a maintenant 1 Main 2 : nb objets = 1 Main 3 : nb objets = 1 ++ creation objet Obj ; il y en a maintenant 2 ++ creation objet Obj ; il y en a maintenant 3 Main 4 : nb objets = 3 Exemple d’utilisation d’une méthode de classe 13
  14. 14. VII. Le mot clé final L’attribut final indique que la valeur de la variable ne peut être modifiée : on pourra lui donner une valeur une seule fois dans le programme. Variable d’instance final • Une variable d’instance final est une constante pour chaque objet. • Une variable d'instance final peut ne pas être initialisée à sa déclaration mais elle doit avoir une valeur à la sortie de tous les constructeurs 14
  15. 15. Constantes de classe • Usage – – – – Ce sont des variables de classes déclarées avec le mot-clé final Ce sont des constantes liées à une classe Elles sont écrites en MAJUSCULES Pour y accéder, il faut utiliser non pas un identificateur d’objet mais le nom de la classe Exemple: public class Galerie { public static final int MASSE_MAX = 150; } if (maVoiture.getWeightLimite() <= Galerie.MASSE_MAX) {...} 15
  16. 16. Le mot réservé final  Une classe est déclarée final lorsqu'on ne souhaite pas qu'elle puisse être sous-classée. Par conséquent, ses méthodes ne peuvent pas être redéfinies.  Une méthode est déclarée final lorsqu'on ne souhaite pas qu'elle puisse être redéfinie dans les classes dérivées.  Une variable déclarée final est une constante. 16
  17. 17. Classe java type Une classe java types contient trois grands types de membres : toujours déclarer les constructeurs après les attributs et avant les autres méthodes. Les constructeurs sont des méthodes particulières, vous devez public class Rectangle { // ( 1 ) A ttributs private double L , l ; // ( 2 ) Constructeurs public Rectangle (double L , double l ) { . . . } // ( 3 ) Méthodes public double surface (double L , double l) { . . . } } Remarque 17

×