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