Ceci est une ancienne révision du document !


A PCRE internal error occured. This might be caused by a faulty plugin

====== La Programmation Orientée Objet ====== ===== Objets ===== * [[Définition des objets]] * [[Utilisation des objets]] * Les méthodes communes utiles : * Equals : Pour comparer l'objet à un autre objet de type potentiellement différent, contrairement à l'opérateur == qui compare seulement des types identiques. * ToString() : Renvoi le type de l'objet qui appelle cette méthode mais peut être redéfinie dans la classe pour renvoyer d'autres informations (propriétés par exemple). ===== Collections ===== * [[Listes]] * [[Dictionnaires]] ===== Héritage ===== * Polymorphisme * Rédéfinition * Surcharge * [[Classes abstraites]] **Exemple d'héritage avec une ville (classe mère) et une capitale (classe fille)** <code> public class Ville { //************* VARIABLES D'INSTANCE ************* //Stocke le nom de notre ville private String nomVille; //Stocke le nom du pays de notre ville private String nomPays; //Stocke le nombre d'habitants de notre ville private int nbreHabitants; //************* CONSTRUCTEURS ************* //Constructeur par défaut public Ville(){ Console.WriteLine("Création d'une ville !"); nomVille = "Inconnu"; nomPays = "Inconnu"; nbreHabitants = 0; this.setCategorie(); } //Constructeur avec paramètres public Ville(String pNom, int pNbre, String pPays) { Console.WriteLine("Création d'une ville avec des paramètres !"); nomVille = pNom; nomPays = pPays; nbreHabitants = pNbre; this.setCategorie(); } //************* ACCESSEURS ************* //Retourne le nom de la ville public String getNom() { return nomVille; } //Retourne le nom du pays public String getNomPays() { return nomPays; } // Retourne le nombre d'habitants public int getNombreHabitants() { return nbreHabitants; } //Retourne la catégorie de la ville public char getCategorie() { return categorie; } //Retourne la description de la ville public String decrisToi(){ return this.nomVille+" est une ville de "+this.nomPays+ ", elle comporte : "+this.nbreHabitants+" habitant(s) => elle est donc de catégorie : "+this.categorie; } //Retourne une chaîne de caractères selon le résultat de la comparaison public String comparer(Ville v1){ String str = new String(); if (v1.getNombreHabitants() > this.nbreHabitants) str = v1.getNom()+" est une ville plus peuplée que "+this.nomVille; else str = this.nomVille+" est une ville plus peuplée que "+v1.getNom(); return str; //************* MUTATEURS ************* //Définit le nom de la ville public void setNom(String pNom) { nomVille = pNom; } //Définit le nom du pays public void setNomPays(String pPays) { nomPays = pPays; } //Définit le nombre d'habitants public void setNombreHabitants(int nbre) { nbreHabitants = nbre; } //Définit la catégorie de la ville private void setCategorie() { int bornesSuperieures[] = {0, 1000, 10000, 100000, 500000, 1000000, 5000000, 10000000}; char categories[] = {'?', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'}; int i = 0; //Tant que l'on ne dépasse pas le tableau (éviter d'être hors index) et que le nombre d'habitants de la ville est supérieur à la borne actuelle. while (i < bornesSuperieures.length && this.nbreHabitants > bornesSuperieures[i]) i++; this.categorie = categories[i]; } } </code> <code> class Capitale extends Ville { private String monument; public Capitale(){ //Ce mot clé appelle le constructeur de la classe mère super(); monument = "aucun"; } public String decrisToi(){ String str = super.decrisToi() + "\n \t ==>>" + this.monument+ " en est un monument"; Console.WriteLine("Invocation de super.decrisToi()"); return str; } } </code> ===== Classes ===== * [[Classes Passerelles]] * [[Classes abstraites]] * [[Interfaces]] ===== MVC (Modèle - Vue - Contrôleur) =====