Académique Documents
Professionnel Documents
Culture Documents
⚫ Classes et objets
– But de la POO : réunir sous une même entité les
traitements et les données
Les bases de la POO
⚫ Classes et objets
– classe : moule à objet
– le développeur manipule et écrit des classes
– le programme durant l'exécution travaille avec
des objets
Les bases de la POO
⚫ Classes et objets
– Pour créer un objet on passe par une opération
appelée l'instanciation :
⚫ Exemple :
Voiture v; //v : variable de référence
v = new Voiture(); // new : opérateur
d'instanciation
Les bases de la POO
⚫ Classes et objets
– Variable de référence :
⚫ ne contient que l'adresse de l'objet
⚫ avant l'instanciation le contenu est indéterminé et peut
être initialisé à null
⚫ aucune variable ne peut contenir un objet !!!
Les bases de la POO
⚫ Classes et objets
– Instanciation :
⚫ 2 effets :
– la création de l'instance (objet) en
mémoire et l'inscription de l'adresse
mémoire dans la variable de
référence
– l'appel du constructeur de la classe
Les bases de la POO
⚫ Classes et objets
– Constructeur :
⚫ simple procédure qui porte le nom de la classe et qui est
appelée juste après l'instanciation
⚫ On peut faire de la surcharge de constructeur
(paramètres différents)
Les bases de la POO
⚫ Classes et objets
– Accessibilité :
⚫ Private
private string couleur;
⚫ Public
public int Calcul()
{…}
⚫ Classes et objets
– Méthodes et données statiques
⚫ Mot clé « static » devant la méthode ou l’attribut
⚫ Permet d’appeler la méthode sur la classe et non l’objet
⚫ Permet d’avoir une variable commune à tous les objets
d’une classe
⚫ Variante : attribut « const » : idem static mais dont la
valeur est immuable
⚫ Classe « static » : tous les membres sont statiques
Les bases de la POO
⚫ Lecture et exercices
– Livre chapitre 7
– Exercice 1 – application des objets
– Exercice 2 – compteur d’instances
– Exercice 3 – singleton
Les bases de la POO
⚫ Enumérations
– Type valeur (sur la pile)
enum Feu {rouge, orange, vert};
Class Test
{
public void Tester()
{
Feu f1 = Feu.rouge;
}
}
Les bases de la POO
⚫ Enumérations
– Console.WriteLine possible !
– .ToString possible
– Peux se « caster » en int (début à 0)
⚫ Redéfinition de la valeur de départ avec rouge=1 par
ex.)
– Peux se tester if (f1 == Feu.vert)
– Plusieurs littéraux possible : jaune=orange
– Opérateur ++ possible
Les bases de la POO
⚫ Structure
– Type valeur mais très similaire à une classe
– Int, long, float sont des structures :
⚫ System.Int32
⚫ System.Int64
⚫ System.Single
– Méthode ToString
– Méthode statique : Parse(s) conversion string en
int
– Voir page 212
Les bases de la POO
⚫ Structure
struct Mesure
{
public Mesure(int m) {…} //constructeur
public GetMesure(int no) {…}
private int hauteur;
private double rayon;
etc.
}
Les bases de la POO
⚫ Structure
– Constructeur par défaut interdit
⚫ Déjà un par défaut
– Obligation d’initialiser tous les champs dans le
constructeur personalisé
– Déclaration de variable structure :
Mesure m = new Mesure(64);
– Copie par valeur
Les bases de la POO
⚫ Tableaux
– Séquence d’éléments désordonnée
– Tous les éléments ont le même type
– Eléments accessibles par leur indice (int)
Les bases de la POO
⚫ Tableaux
– Déclaration et utilisation :
int[] monTableau;
monTableau[0] = 5;
Les bases de la POO
⚫ Tableaux
– Déclaration et utilisation
:
for (int i = 0; i < 10; i++)
{
monTableau[i] = i * 10;
}
OU
for (int i = 0; i < 10; i++) foreach (int k in monTableau)
{ {
Console.WriteLine(monTableau[i]); Console.WriteLine(k);
} }
Les bases de la POO
⚫ Tableaux
– Initialisation rapide:
int[] monTableau = new int[4]{25, 46, 89, 132}
⚫ Tableaux
– Tableau implicitement typé :
var voitures = new [2] {new Voiture(«rouge»), new Voiture(«Verte»)}
– Copie de tableaux :
⚫ Comme les tableaux sont des types références :
– Une boucle de copie des éléments (en utilisant la
propriétés Length)
– Ou : tabOriginal.CopyTo(tabCopie, 0); (tabCopie
doit avoir été instancié)
– Ou : int[] tabCopie = (int[])tabOriginal. Clone();
Les bases de la POO
⚫ Tableaux
– Tableau multi-dimensionnel:
int[,] tab2dim = new int[2,5];
tab2dim[1,3] = 45;
Les bases de la POO
⚫ Classes de collection
– Les tableaux sont de longueur fixe
– Classes pour gérer des collections :
⚫ ArrayList
⚫ Queue
⚫ Stack
⚫ HashTable
⚫ SortedList
– Les collections sont toujours des collections
d’Object (nécessité de transtyper à la lecture)
Les bases de la POO
⚫ Tableaux et collections
– Lecture et exercices :
⚫ Chapitre 10
⚫ Exercice « Echiquier »