Initiation au langage Java avec eclipse vidéo 01

Transcription

Initiation au langage Java avec eclipse vidéo 01
Initiation au langage Java
avec eclipse
vidéo 09 : Classe et Objet
Stéfan MAURER
Classe et Objet
• La notion de classe généralise la notion de type.
Exemple: La classe String (chaîne de caractères)
• La notion d'objet (ou instance de classe) généralise la notion de variable.
Exemple: Pour créer un objet "nom" de la classe String, on écrit :
String nom = new String() ;
Une classe comporte des champs (ou variables d'instance) et des méthodes.
Pour accéder aux champs et méthodes utilisables par un objet, on utilise le point.
Exemple: nom.length() // longueur de la chaine nom
Par convention, le nom d'une classe commence par une lettre majuscule.
Création d'une Classe
Exemple: Création d'une classe nommée Corpulence qui possède :
- 2 champs taille et poids.
- 2 méthodes calculImc et analyseImc.
// Déclaration des champs (variables de la classe Corpulence)
private int taille; // taille exprimée en cm
private int poids; // poids exprimé en kg
Le mot clé private indique que ces variables ne sont accessibles qu'à l'intérieur de la
classe Corpulence.
Pour créer une instance de classe (objet), on utilise le mot clé new.
Cela a pour effet d'appeler un constructeur de la classe (méthode particulière qui
indique la structure de l'objet créé afin de réserver l'espace mémoire nécessaire).
Ces méthodes sont précédées du mot clé public pour une utilisation hors de la classe.
// Constructeur par défaut (crée une instance de la classe sans paramètres)
public Corpulence () { // Méthode sans type de retour qui a le nom de la classe
taille = 0;
poids = 0;
}
// Constructeur d'initialisation (crée une instance de la classe avec paramètres)
public Corpulence (int pTaille, int pPoids) {
taille = pTaille;
poids = pPoids;
}
Programme
Les champs de la classe ne sont accessibles qu'à l'intérieur de la classe (private).
On crée donc des méthodes appelées getters qui permettent d'accéder à ces champs.
Ces méthodes sont précédées du mot clé public pour une utilisation hors de la classe.
// Getters
public int getTaille() {
return taille; // Renvoie la taille de l'objet Corpulence considéré
}
public int getPoids() {
return poids; // Renvoie le poids de l'objet Corpulence considéré
}
De même, on crée donc des méthodes appelées setters qui permettent de modifier les
valeurs de ces champs, également précédées du mot clé public pour une utilisation hors
de la classe.
//Setters
public void setTaille(int pTaille) {
if(pTaille>=0){
taille = pTaille;
}else{
System.out.println("La valeur proposée est incorrecte.");
}
}
public void setPoids(int pPoids) {
if(pPoids>=0){
poids = pPoids;
}else{
System.out.println("La valeur proposée est incorrecte.");
}
}
Ajout au programme précédent
// Ajout d'une méthode qui calcule l'imc de l'objet courant
private int calculImc(){
int imc = 0; // variable locale
if (poids<=0 || taille<=0){// les champs sont accessibles partout dans la classe
imc = 0;
}else{
imc = (int) ( 10000 * poids/(double)(taille * taille));
}
return imc;
}
Cette méthode est déclarée private si on veut qu'elle ne soit accessible qu'à l'intérieur de la classe
Corpulence (il faut qu'une autre méthode de la classe l'utilise), sinon on la déclare public.
// Ajout d'une méthode qui utilise calculImc pour analyser la corpulence de l'objet courant
public String analyseImc(){ // méthode public accessible hors de la classe Corpulence
int imc = this.calculImc(); // le mot clé this indique l'utilisation de l'objet courant
String str = new String();
if(imc < 16){
str = "Anorexie";
}else if(imc >= 16 && imc < 20){
str = "maigreur";
}else if(imc >= 20 && imc < 26){
str = "corpulence normale";
}else if(imc >= 26 && imc < 30){
str = "surpoids";
}else{
str = "obésité";
}
return str;
}
Exercice :
1 - Créer une classe Ville avec les variables d'instance suivantes :
nom de la ville nom
nombre d'habitants nbreHabitants
superficie de la ville superficie (en km²)
2 - Créer un constructeur par défaut et un constructeur d'initialisation.
3 - Créer les getters et les setters.
4 - Créer une méthode qui calcule la densité de population :
(densite = nbreHabitants/superficie)
5 - Tester la classe construite avec les villes Anglet, Bayonne et Biarritz de façon à
obtenir l'affichage suivant.
Console

Documents pareils