Vous êtes sur la page 1sur 29

Les bases de la POO

⚫ 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()
{…}

A l’intérieur d’une classe, tous les membres sont


accessibles entre-eux.
Les bases de la POO

⚫ 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

⚫ Valeurs & références


– Types valeurs : int, float, double, char, etc.
(sauf string)
⚫ Réservation d’espace en mémoire lors de la déclaration
– Types références : classes
⚫ Pas de réservation en mémoire lors de la compilation
(uniquement pour l’adresse)
Les bases de la POO

⚫ Valeurs & références


– Types valeurs : stocké dans la pile (stack)
⚫ Accessible directement
– Types références : stocké dans le tas (heap)
⚫ Accessible uniquement par leur référence (comme les
pointeurs)
⚫ Une variable « référence » est stockée dans la pile et
contient l’adresse de l’objet dans le tas
Les bases de la POO

⚫ Valeurs & références


– Application aux paramètres d’une méthode
⚫ Par défaut : passage par valeur
⚫ Mot clé « ref » et « out » : passage par référence
⚫ Attention : si on passe la référence d’un objet, l’adresse
est copiée mais pas l’objet !!!!
Les bases de la POO

⚫ Valeurs & références


– Valeurs null et type « nullable »
⚫ Utile pour initialiser les type références
⚫ Int? I = null; !!!! // valide
Les bases de la POO

⚫ Valeurs & références


– boxing
⚫ Passage d’un type valeur à un type référence (o=i)
⚫ Int? I = null; !!!! // valide
– Unboxing
– Opérateur is
– Opérateur as
Les bases de la POO

⚫ Valeurs & références


– Lecture et exercices :
⚫ Chapitre 8
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

⚫ Enumérations & structures


– Lecture et exercices :
⚫ Chapitre 9
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 = new int[10];

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}

– Type des éléments :


⚫ Type simple
⚫ Structure
⚫ Objets
Les bases de la POO

⚫ 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 »

Vous aimerez peut-être aussi