Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
: Classes et Objets
2020/2021
Définition de classe:
Les méthodes sont des fonctions qui peuvent avoir une valeur de
retour et peuvent prendre des paramètres.
3
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe - Visibilité
Classes
Une classe peut avoir la visibilité publique (en précédant sa
déclaration avec le mot clé public) ou la visibilité par défaut
(package private)
●
class Personne : visible seulement par les classes du même
package (pour simplifier, se trouvant dans le même dossier)
●
public class Personne : visible et accessible par n’importe
quelle classe
4
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe - Visibilité
Méthodes et attributs
Une méthode ou un attribut peuvent être déclarés comme private, protected ou
public
●
private : les attributs et les méthodes privés ne sont accessibles qu’au sein de la
classe elle même.
●
protected : les attributs et les méthodes privés ne sont accessibles qu’au sein de
la classe elle même ou par ses classes filles (voir chap. 3 Héritage)
●
public : les attributs et les méthodes publiques sont visibles et accessibles par
n’importe quelle autre classe.
●
package private : c’est le niveau de visibilité par défaut. Il ne faut rien spécifier
lors de la déclaration. Les attributs et les méthodes sont accessibles par la classe
elle même et les classes se trouvant dans le même package.
5
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe – Attributs
• Les attributs représentent les propriétés des objets qui seront instanciés à partir
de la classe.
• Les attributs peuvent être des constantes, des variables de base ou des objets
• Les types de variables de base sont : short , int , long , char , float , double,
boolean.
public int x = 5;
public String s = "Bonjour";
6
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe – Méthodes
Syntaxe générale
<visibilité> <valeur de retour> nom_fonction (<paramètres>) {
code;
}
• visibilité : public, private, protected, ou rien de tout (package private)
• valeur de retour : type de base ou objet ou vide (void) ou rien de
tout (constructeur)
• nom_fonction : identificateur de la fonction, par convention
commence par une minuscule, s’il est un mot composé, chaque mot
qui le compose doit commencé par une majuscule.
• paramètres : une fonction peut prendre 0 ou plusieurs paramètres de
type de base et/ou objets)
7
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe – Méthodes
Fonction Principale main
code;
}
• Dans java, un programme exécutable est une classe comportant
obligatoirement une fonction principale « main ». C’est cette fonction qui
est exécutée quand on exécute la commande java.
• Une classe ne contenant pas de fonction main est une simple définition, elle
n’est pas exécutable.
• L’entête de la fonction main s’écrit comme ci-dessus. c’est une fonction qui
doit être publique (public), statique (static), son type de retour est void, et
prend un paramètre qui est un tableau de chaîne de caractères (String[]).
8
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe – Méthodes
Constructeurs
Constructeurs :
9
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe – Méthodes
Constructeurs
10
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe – Méthodes
Constructeurs
String nom ;
String prenom ;
int age ;
/*constructeur par recopie*/
public Personne(Personne a){
nom=a.nom ;
prenom=a.prenom ;
age=a.age
}
}
12
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe – Méthodes
Constructeurs
Constructeur par recopie ( p et a sont différents, mais ont les mêmes valeurs des
attributs)
p a
Dupont
@ @
Jean
prenom prenom
@ nom @
@ nom
@
age age @
24 24
13
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe – Méthodes
Accesseurs & Modifcateurs
14
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe – Méthodes
Accesseurs & Modifcateurs
Exemple :
return solde;
}
15
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe – Méthodes
Accesseurs & Modifcateurs
Exemple :
solde = x;
}
16
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
I- Classe – Méthodes
Accesseurs & Modifcateurs
public Personne(){
age=20 ;
}
public Personne(String a, String b, int x){
nom=a ; Modificateur : modifie la valeur
prenom=b ; de l’attribut par le paramètre
age=x ;
} donné. Retourne void.
17
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
II- Objet - Défnition
●
Un objet est une instance d’une classe.
●
Une classe est une définition ou un moule, les objets sont crées à partir de
ce moule.
●
Un objet est une entité dynamique alors qu’une classe est une entité
statique.
●
Un objet peut être déclaré sans qu’il ne soit crée (ou instancié).
●
L’instanciation d’un objet se fait par l’opérateur new suivi par l’un des
constructeurs de la classe à partir de laquelle l’objet sera instancié.
18
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
II- Objet
Déclaration & Instanciation
●
Déclaration : un objet peut être déclaré sans qu’il ne soit crée (ou
instancié).
Personne p;
●
Instanciation : se fait par l’opérateur new suivi par l’un des
constructeurs de la classe à partir de laquelle l’objet sera instancié.
Personne p;
p = new Personne("Jean", "Dupont", 24);
●
Déclaration & Instanciation : ces deux opérations peuvent être
effectuées dans une même instruction.
Personne p = new Personne("Jean", "Dupont", 24);
19
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
II- Objet
Déclaration & Instanciation
●
Après l’opérateur new, on choisi l’un des constructeurs (déclarés dans la classe
d’instanciation) selon l’initialisation des attributs qu’on veut faire.
Personne a = new Personne("Jean", "Dupont", 24);
Personne b = new Personne();
Personne c = new Personne(58);
●
Instancier un objet plusieurs fois : Il est possible d’instancier un objet autant
qu’on le veux dans un programme. Il suffit de réécrire l’instruction permettant
de la faire. Cela permettra de recréer et de réinitialiser l’objet.
Personne a = new Personne(32);
a = new Personne();
a = new Personne("Jean", "Dupont", 24);
a = new Personne("Jean", "Dupont", 32);
20
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
II- Objet
Déclaration & Instanciation
21
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
II- Objet
Déclaration & Instanciation
Personne p; p
null
●
L’identificateur p, qui désigne un
objet de type Personne, est censé
comporter une adresse d’un objet
de type Personne.
●
Lors d’une simple déclaration, p
contient null. Le compilateur java
n’acceptera pas une utilisation de p
sans qu’il ne soit initialisé.
22
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
II- Objet
Déclaration & Instanciation
@
●
new permet d’allouer un espace
mémoire pour un objet (dans notre
exemple de type Personne). L’adresse
de cet espace mémoire est enregistré prenom
dans l’identificateur de l’objet (p). null
nom
●
L’initialisation des attributs de l’objet age null
(Personne) est réalisée par le
constructeur appelé de l’objet. 20
23
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
II- Objet
Déclaration & Instanciation
p
Dupont
@
24
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
II- Objet
Accès aux éléments
25
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
II- Objet
Pointeur « this »
●
Chaque objet possède un attribut par défaut qui est l’attribut this.
●
this contient l’adresse de l’objet lui même.
Exemple d’utilisation 1 : Aucune contrainte n’interdit de
donner à des paramètres d’une
public class Personne { méthode les mêmes
private String nom ; identificateurs que des attributs.
private String prenom ;
private age ;
}
Il est recommandé d’utiliser le pointeur this à chaque fois qu’on
veut spécifier un attribut ou une méthode de l’objet lui même
27
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
II- Objet
Pointeur « this »
Exemple d’utilisation 2 :
public class Personne {
private String nom ;
private String prenom ;
private age ;
}
this (<paramètres>) désigne un appel à un constructeur de l’objet lui même.
Dans cet exemple lors de la construction d’un objet par le constructeur Personne
(String,String,int), l’objet fait appel à son constructeur Personne(String,String) qui
permet d’initialiser ses attributs nom et prenom.
28
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)
II- Objet - Défnition
●
Finalement, la classe Personne peut s’écrire comme suit :
public class Personne { public void setAge(int age){
this.age=age ;
private String nom ; }
private String prenom ;
private age ; public int getAge(){
return this.age ;
public Personne(){ }
this.age=20 ;
} public String getNom(){
return this.nom ;
public Personne(String nom, String prenom){ }
this.nom = nom ;
this.prenom = prenom ; public void setNom(String a){
} this.nom=a ;
}
public Personne(String a, String b, int x){
this(a , b) ; public String getPrenom(){
this.age=x ; return this.prenom ;
} }
public Personne(Personne a){ public void setPrenom(String a){
/*this(a.nom,a.prenom,a.age) ;*/ this.prenom=a ;
this.nom = a.nom ; }
this.prenom = a.prenom ; /*ajout d’une fonction main ici */
this.age=a.age ;
} }
29
Institut Supérieur d’Informatique de Mahdia Anis Haj Said (anishajsaid@isima.u-monastir.tn)