24
6 6 Utilisation des classes et des objets

66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

Embed Size (px)

Citation preview

Page 1: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6666

Utilisation des classes et des objetsUtilisation des classes et des objets

Page 2: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-22

ObjectifsObjectifs

A la fin de ce cours, vous serez capables de :

• Créer de nouvelles classes à l’aide de Eclipse

• Utiliser les packages pour regrouper les classes connexes

• Définir les variables et les méthodes d’instance

• Créer des objets et des appels de méthode

• Utiliser les mots-clés public, private et protected

A la fin de ce cours, vous serez capables de :

• Créer de nouvelles classes à l’aide de Eclipse

• Utiliser les packages pour regrouper les classes connexes

• Définir les variables et les méthodes d’instance

• Créer des objets et des appels de méthode

• Utiliser les mots-clés public, private et protected

Page 3: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-33

Vue d’ensembleVue d’ensemble

• Les classes définissent les caractéristiques, les attributs et le comportement des objets.

• L’intégralité du code Java est contenue dans des classes.

• Toutes les données relatives à un objet sont stockées dans des variables.

• Les packages permettent un contrôle des accès.

• Les assistants Eclipse contribuent à la création des définitions de classe.

• Les classes définissent les caractéristiques, les attributs et le comportement des objets.

• L’intégralité du code Java est contenue dans des classes.

• Toutes les données relatives à un objet sont stockées dans des variables.

• Les packages permettent un contrôle des accès.

• Les assistants Eclipse contribuent à la création des définitions de classe.

Page 4: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-44

Classes JavaClasses Java

Package

MéthodesObjets

Références d’objet

Attributs

Page 5: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-55

PackagesPackages

AcmeVideo

Copy Title Rental

Game Member Movie

Page 6: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-66

Modificateurs d’accèsModificateurs d’accès

AcmeVideo AcmeTools

private

protected

public

public

Page 7: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-77

Etude de la nouvelle classeEtude de la nouvelle classe

Nom du Nom du packagepackageNom du Nom du packagepackage

Public Public Public Public

main()main()main()main()

Constructeur Constructeur Constructeur Constructeur

Commentaires Commentaires d’en-têted’en-tête

Commentaires Commentaires d’en-têted’en-tête

Page 8: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-88

Classes et objetsClasses et objets

Chaque objet est uneChaque objet est uneinstance d’une classeinstance d’une classe

donnée.donnée.

Chaque objet est uneChaque objet est uneinstance d’une classeinstance d’une classe

donnée.donnée.

public void displayDetails()

private String title;

private String rating;

public void setRating()

title: “Gone with…”rating: “PG”

title: “Last Action…”rating: “PG-13”

Movie

Page 9: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-99

Création d’objetsCréation d’objets

• Les objets sont créés au moyen de

l’opérateur new :

• Par exemple, pour créer deux objets Movie :

• Les objets sont créés au moyen de

l’opérateur new :

• Par exemple, pour créer deux objets Movie :Movie mov1 = new Movie("Gone ...");

Movie mov2 = new Movie("Last ...");

objectRef = new ClassName();

title: “Gone with…”rating: “PG”

title: “Last Action…”rating: “PG-13”

Page 10: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-1010

L’opérateur new de plus prèsL’opérateur new de plus près

L’opérateur new effectue les actions suivantes :

• Allocation de mémoire pour le nouvel objet

• Appel d’une méthode d’initialisation spéciale dans la classe, appelée constructeur

• Renvoi d’une référence pour le nouvel objet

L’opérateur new effectue les actions suivantes :

• Allocation de mémoire pour le nouvel objet

• Appel d’une méthode d’initialisation spéciale dans la classe, appelée constructeur

• Renvoi d’une référence pour le nouvel objet

Movie mov1 =

new Movie("Gone..."); title: “Gone...”rating: PGmov1

Page 11: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-1111

Primitives et objetsPrimitives et objets

Les variables primitivescontiennent une valeur.Les variables primitivescontiennent une valeur.

int i;

int j = 3; Movie mov1 = new Movie();

Les variables d’objetcontiennent desréférences.

Les variables d’objetcontiennent desréférences.

title: nullrating: null

mov1

null

Movie mov1;

mov10

3

i

j

Page 12: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-1212

La référence nullLa référence null

• Les références d’objet sont null tant qu’elles n’ont pas été initialisées.

• Il est possible de comparer les références d’objet à null.

• On peut “oublier” un objet en lui attribuant la référence null.

• Les références d’objet sont null tant qu’elles n’ont pas été initialisées.

• Il est possible de comparer les références d’objet à null.

• On peut “oublier” un objet en lui attribuant la référence null.

Movie mov1 = null; //Declare object reference

if (mov1 == null) //Ref not initialized?

mov1 = new Movie(); //Create a Movie object

mov1 = null; //Forget the Movie object

Page 13: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-1313

Affectation de référencesAffectation de références

En affectant une référence à une autre, on obtientdeux références au même objet :En affectant une référence à une autre, on obtientdeux références au même objet :

Movie mov1 = new Movie("Gone...");

mov1

Movie mov2 = mov1;

mov2

title: “Gone ...”rating: PG

Page 14: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-1414

Variables d’instanceVariables d’instance

Les variables d’instance sont déclarées dans la classe :Les variables d’instance sont déclarées dans la classe :

public class Movie {

public String title;

public String rating;

}

Movie mov1 = new Movie();

Movie mov2 = new Movie();

title: nullrating: null

mov2

title: nullrating: null

mov1

Création de movies:Création de movies:

Page 15: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-1515

Accès aux variables d’instanceAccès aux variables d’instance

Les variables d’instance publiques sont accessibles à l’aide de l’opérateur point "." :Les variables d’instance publiques sont accessibles à l’aide de l’opérateur point "." :

public class Movie {

public String title;

public String rating;

}Movie mov1 = new Movie();

mov1.title = "Gone ...";

if ( mov1.title.equals("Gone ... ") )

mov1.rating = "PG";

Voulez-vous vraiment faire cela ?Voulez-vous vraiment faire cela ?Voulez-vous vraiment faire cela ?Voulez-vous vraiment faire cela ?

Page 16: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-1616

Exercice pratique :Création et utilisation d’objets

Exercice pratique :Création et utilisation d’objets

public class MovieTest {

public static void main(String[] args) {

Movie mov1, mov2;

mov1.title = "Gone with the Wind";

mov2 = mov1;

mov2.title = "Last Action Hero";

System.out.println("Movie 1 is " + );

System.out.println("Movie 2 is " + );

}

}

public class Movie {

public String title;

}

Page 17: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-1717

MéthodesMéthodes

• Une méthode est équivalente à une fonction ou à un sous-programme dans les autres langages :

• Une méthode ne peut être définie que dans le cadre de la définition d’une classe.

• Une méthode est équivalente à une fonction ou à un sous-programme dans les autres langages :

• Une méthode ne peut être définie que dans le cadre de la définition d’une classe.

modifier returnType methodName (argumentList) {

// method body

}

Page 18: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-1818

• Spécifiez le nombre et le type de clauses dans la définition de la méthode :

• Si la méthode ne comporte aucune clause, laissez les parenthèses vides :

• Spécifiez le nombre et le type de clauses dans la définition de la méthode :

• Si la méthode ne comporte aucune clause, laissez les parenthèses vides :

Spécification des clauses deméthode : Exemples

Spécification des clauses deméthode : Exemples

public void displayDetails() {

System.out.println("Title is " + title);

System.out.println("Rating is " + rating);

}

public void setRating(String newRating) {

rating = newRating;

}

Page 19: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-1919

Renvoi d’une valeur depuis une méthodeRenvoi d’une valeur depuis une méthode

• Utilisez l’instruction return pour quitter une méthode et retourner une valeur issue d’une méthode :

• L’instruction return n’est pas nécessaire si la méthode retourne void.

• Utilisez l’instruction return pour quitter une méthode et retourner une valeur issue d’une méthode :

• L’instruction return n’est pas nécessaire si la méthode retourne void.

public class Movie {

private String rating;

public String getRating () {

return rating;

}

}

Page 20: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-2020

Appel de méthodes d’instanceAppel de méthodes d’instance

public class Movie {

private String title, rating;

public String getRating(){

return rating;

}

public void setRating(String newRating){

rating = newRating;

}

}Movie mov1 = new Movie();

if (mov1.getRating().equals("G"))

… Utilisez

l’opérateur "." :Utilisez

l’opérateur "." :

Page 21: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-2121

EncapsulationEncapsulation

• Les variables d’instance doivent être déclarées comme private.

• Seules les méthodes d’instance peuvent accéder aux variables d’instance private.

• private dissocie l’interface de la classe de son opération interne.

• Les variables d’instance doivent être déclarées comme private.

• Seules les méthodes d’instance peuvent accéder aux variables d’instance private.

• private dissocie l’interface de la classe de son opération interne.

Movie mov1 = new Movie();

if ( mov1.rating.equals("PG") ) // Error

mov1.setRating("PG"); // OK

Page 22: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-2222

Passage de primitives aux méthodesPassage de primitives aux méthodes

Lorsqu’une valeur de type primitif est passée à uneméthode, une copie de la valeur est générée :Lorsqu’une valeur de type primitif est passée à uneméthode, une copie de la valeur est générée :

public void aMethod(int arg) {

if (arg < 0 || arg > 100)

arg = 0;

System.out.println("arg: " + arg);

}

int num = 150;

anObj.aMethod(num);

System.out.println("num: " + num);

num150

arg150

Page 23: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-2323

Passage de références d’objet aux méthodes

Passage de références d’objet aux méthodes

Lorsqu’une référence d’objet est passée à uneméthode, la clause fait référence à l’objetd’origine :

Lorsqu’une référence d’objet est passée à uneméthode, la clause fait référence à l’objetd’origine :

public void aMethod(Movie ref2) {

ref2.setRating("R");

}

title: "Gone…"rating: "R"

mov1

ref2

Movie mov1 =

new Movie("Gone…");

mov1.setRating("PG");

anObj.aMethod(mov1);

Page 24: 66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser

6-6-2424

RésuméRésumé

Au cours de cette leçon, vous devriez avoir retenu que :

• Une définition de classe spécifie un modèle pour la création d’objets ayant des caractéristiques identiques, telles que des variables et des méthodes d’instance.

• Un objet est une instance d’une classe donnée :

– Créez un objet à l’aide de new.

– Manipulez un objet en utilisant ses méthodes d’instance public.

Au cours de cette leçon, vous devriez avoir retenu que :

• Une définition de classe spécifie un modèle pour la création d’objets ayant des caractéristiques identiques, telles que des variables et des méthodes d’instance.

• Un objet est une instance d’une classe donnée :

– Créez un objet à l’aide de new.

– Manipulez un objet en utilisant ses méthodes d’instance public.