La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

IUT du limousin L.U.P Michel Vergnaud 2005-2006 Programmation Objet - Java.

Présentations similaires


Présentation au sujet: "IUT du limousin L.U.P Michel Vergnaud 2005-2006 Programmation Objet - Java."— Transcription de la présentation:

1 IUT du limousin L.U.P Michel Vergnaud 2005-2006 Programmation Objet - Java

2 Méthodes : exemples public class Cercle { // Constructeurs... // Déplacer le cercle void déplacer(double dx, double dy) { xCentre = xCentre + dx; yCentre = yCentre + dy; } // Calculer l'aire du cercle double aire() { return rayon * rayon * 3.14159; }... // Définition des attributs double xCentre; double yCentre; double rayon; }

3 Créer et utiliser des objets public class UneApplication { static public void main(String args[]) { Cercle c1; // déclaration d'une référence sur un objet de classe Cercle Cercle c2; // idem c1 = new Cercle(); // création de l'objet référencé par c1 c2 = new Cercle(12.0, 5.0, 2.5); // création de l'objet référencé par c2 System.out.println("Premier cercle"); System.out.print(" x = "); System.out.print(c1.xCentre); System.out.print(" y = "); System.out.print(c1.yCentre); System.out.print(" rayon = "); System.out.print(c1.rayon); System.out.println("\n"); System.out.println("Second cercle "); System.out.print(" x = " + c2.xCentre); System.out.print(" y = " + c2.yCentre); System.out.println(" rayon = " + c2.rayon); c2.déplacer(8.0,15.0); System.out.println("Second cercle "); System.out.print(" x = " + c2.xCentre); System.out.print(" y = " + c2.yCentre); System.out.println(" rayon = " + c2.rayon); }

4 Arguments de la ligne de commande public class UneApplication { static public void main(String args[]) { // args fait référence au tableau d'arguments // passés en ligne de commande // On peut connaître le nombre d'arguments : int nbArgs = args.length; // et utiliser ces arguments for(int i=0; i < nbArgs; i++) { System.out.println("Argument " + i + " : " + args[i] ); }

5 Encapsulation des données - 1 L'accès aux champs de l'objet peut être interdit par le mot-clé private. Seules les méthodes membres de la classe pourront alors accéder aux champs. public class Cercle { // Constructeurs Cercle() { xCentre = 0.0; yCentre = 0.0; rayon = 1.0; }... // Définition des attributs private double xCentre ; private double yCentre ; private double rayon; }

6 Encapsulation des données - 2 Les lignes suivantes sont alors erronées : Cercle c = new Cercle(); System.out.println(c.rayon):// Le champ rayon est déclaré private c.rayon = 3.5; // on ne peut pas connaître sa valeur // ni la modifier depuis l'extérieur L'accès aux champs private ne peut se faire que par l'intermédiaire de méthodes membres, par exemple : class Cercle {... double getRayon() { return rayon; } void setRayon(double r) { if (r > 0.0) rayon = r; }... } On peut ainsi définir des données "en lecture seule" ou n'autoriser la modification des données qu'à certaines conditions.

7 Encapsulation des données - 3 Exemple : On veut représenter un article dans un magasin. Un article est défini par sa désignation, qui ne peut pas varier, et son prix, qui peut changer. public class Article { Article(String d, double p) { désignation = d; prix = p; } public String getDésignation() {return désignation ;} public double getPrix() {return prix ;} public void modifPrix(double pourCent) { prix = prix * (1.0 + pourCent / 100.0); } // Champs privés private String désignation ; private double prix; }

8 Héritage et références n Une référence sur une classe peut référencer un objet d'une classe dérivée. n Elle ne peut pas référencer un objet d'une classe parente. Cercle c1; Cercle c2; Disque d1; Disque d2; c1 = new Cercle(12.0, 5.0, 40.0); c2 = new Disque(6.0, 5.0, 20.0); d1 = new Cercle(12.0, 5.0, 40.0); // erreur System.out.print(c2.getCouleur() ); // erreur UneApplication2.java:14: incompatible types found : Cercle required: Disque d1 = new Cercle(12.0, 5.0, 40.0); UneApplication2.java:17: cannot resolve symbol symbol : method getCouleur () location: class Cercle ur() );

9 La classe Vector Tableau « à taille variable » Contient uniquement des références sur des objets de classe « Object » On doit donc transtyper ces références pour les utiliser. int size() // nombre d’éléments du vecteur. add(Object o) // ajoute un élément au vecteur. remove(int index ) // supprime l’élément à la position index Object elementAt(int index) // l’élément à la position index import java.util.Vector; Vector personnel = new Vector(); Manager m = new Manager(...); personnel.add( m ); personnel.add ( new Secrétaire(…) ); for(int i = 0; i < personnel.size(); i++) { Employé e = (Employé)personnel.elementAt(i); e.augmenterSalaire(5.0); }


Télécharger ppt "IUT du limousin L.U.P Michel Vergnaud 2005-2006 Programmation Objet - Java."

Présentations similaires


Annonces Google