Académique Documents
Professionnel Documents
Culture Documents
1.1. Gnralits Nous abordons maintenant, par l'exemple, la programmation objet. Un objet est une entit qui contient des donnes qui dfinissent son tat (on les appelle des attributs ou proprits) et des fonctions (on les appelle des mthodes). Un objet est cr selon un modle qu'on appelle une classe : public class C1{ type1 p1; // proprit p1 type2 p2; // proprit p2 type3 m1(){ // mthode m3} type4 m2(){ // mthode m4} } A partir de la classe C1 prcdente, on peut crer de nombreux objets O1, O2, Tous auront les proprits p1, p2, et les mthodes m1(..), m2(..), Ils auront des valeurs diffrentes pour leurs proprits pi ayant ainsi chacun un tat qui leur est propre. Si O1 est un objet de type C1, O1.p1 dsigne la proprit p1 de O1 et O1.m1(..) la mthode m1 de O1. Considrons un premier modle d'objet : la classe personne.
public class personne{ // attributs private String prenom; private String nom; private int age; // mthode public void initialise(String P, String N, int age){ this.prenom=P; this.nom=N; this.age=age; } // mthode public void identifie(){ System.out.println(prenom+","+nom+","+age); } }
En gnral, les donnes d'une classe sont dclares prives alors que ses mthodes sont dclares publiques. La syntaxe de dclaration est la suivante :
public class nomClasse{ private donne ou mthode prive public donne ou mthode publique protected donne ou mthode protge
} Remarques L'ordre de dclaration des attributs private, protected et public est quelconque.
} L'instruction this.prenom=P signifie que l'attribut prenom de l'objet courant (this) reoit la valeur P. Le mot cl this dsigne l'objet courant : celui qui fait appel la mthode excute.
Voici un programme de test : public class test1{ public static void main(String arg[]){ personne p1=new personne("Jean","Dupont",30); System.out.print("p1="); p1.identifie(); personne p2=new personne(p1); System.out.print("p2="); p2.identifie(); } }
Dans une classe Java, on peut dfinir des attributs qui seront partag par tous les objets de la mme classe. Ces attributs sont qualifi par static Exemple : Supposons qu'on veuille compter le nombre d'objets personne cres dans une application. On peut soi-mme grer un compteur mais on risque d'oublier les objets temporaires qui sont crs ici ou l. Il semblerait plus sr d'inclure dans les constructeurs de la classe personne, une instruction incrmentant un compteur. On le dclare avec le mot cl static : private static long nbPersonnes; // nombre de personnes cres
On voit qu'il n'y a construction que d'un objet : celui de la personne p1 de la fonction main et que l'objet a bien t modifi par la fonction modifie.
La classe prcdente a un constructeur permettant d'initialiser un entier et deux mthodes permettant de lire et modifier la valeur de cet entier. On teste cette classe avec le programme suivant : public class test2{ public static void main(String[] arg){ entieres I=new entieres(12); System.out.println("I="+I.getValue()); change(I); System.out.println("I="+I.getValue()); } private static void change(entieres entier){ entier.setValue(15); } } et on obtient les rsultats suivants : I=12 I=15