You are on page 1of 14

BTS SIO 1 / SI 4

Thème 2 : Notions de base sur la POO

15/10/2014

I Les objets, la programmation orientée objet, les langages orientés objet. __________________ 2
1.1

Qu’est-ce qu’un objet ? __________________________________________________________ 2

1.2

La Programmation Orientée Objet (POO). ____________________________________________ 3

1.3

Les Langages Orientés Objets. _____________________________________________________ 3

II Les classes. _____________________________________________________________________ 3
2.1 Qu’est-ce qu’une classe ? ____________________________________________________________ 3
2.2 Les éléments d’une classe. ___________________________________________________________ 3
2.3 Les rôles d’une classe._______________________________________________________________ 4

III Les constructeurs. _______________________________________________________________ 5
IV Les méthodes.__________________________________________________________________ 6
4.1 Les accesseurs. ____________________________________________________________________ 6
4.2 Autres types de méthodes. __________________________________________________________ 7
4.3 La surcharge. ______________________________________________________________________ 7

V les variables. ___________________________________________________________________ 8
5.1 Variables d’instances vs variables locales. ______________________________________________ 8
5.2 Les types de données._______________________________________________________________ 8
5.3 La mémoire. ______________________________________________________________________ 8
5.4 Déclaration et création d’instances. __________________________________________________ 11
5.4 Accès aux membres d’une classe. ____________________________________________________ 12

VI Le mot-clé « This ». ____________________________________________________________ 12
VII Méthodes et variables de classes. ________________________________________________ 12
7.1 Variable de classe. ________________________________________________________________ 12
7.2 Méthodes de classe. _______________________________________________________________ 13
7.3 Classe static. _____________________________________________________________________ 13

SI 4: thème 2 : Notions de base sur la POO

Page 1 sur 14

dans un objet.1 Qu’est-ce qu’un objet ?  Un objet est une entité identifiable. concrète ou abstraite. qui identifie l’objet. appelées méthodes.BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO 15/10/2014 I Les objets. il exécute la méthode correspondante. o Un état interne. 1. voiture.  „ Exemples : o o o o o objet1.  Un objet va réagir à certains messages qu’on lui envoie de l’extérieur : la façon dont il réagit détermine le comportement de l’objet.demarre(). voiture.setSalaire(20000). les données sont regroupées avec les traitements qui les utilisent.  Par conséquent.  L’état interne de l’objet est donné par des valeurs de variables. monProduit. SI 4: thème 2 : Notions de base sur la POO Page 2 sur 14 . o Un comportement.afficher() .  „ Les méthodes de la classe d’un objet correspondent aux messages qu’on peut lui envoyer : quand un objet reçoit un message.  Un objet a : o Une adresse en mémoire. la programmation orientée objet.decrisToi(). employe.vaAVitesse(50) .  Le comportement est donné par des fonctions ou procédures. les langages orientés objet.

2 Les éléments d’une classe. Mais on peut le plus souvent dégager des types d’objets : des objets ont une structure et un comportement très proches. son état est conservé dans les variables d’instance.BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO 15/10/2014 1. » Source : MSDN. tous les livres dans une application de gestion d’une bibliothèque. héritage et polymorphisme. 1. Les constructeurs (il peut y en avoir plusieurs) servent à créer les instances de la classe. Les variables et les méthodes s’appellent les membres de la classe. Les méthodes déterminent le comportement des instances de la classe quand elles reçoivent un message. Une classe est essentiellement une structure de données qui encapsule un groupe de données et des comportements qui ensemble constituent une unité logique. Par exemple. Les données et comportements sont les membres de la classe. ils collaborent en s’échangeant des messages (pour fournir les fonctionnalités que l’on demande à l’application)  La Programmation Orientée Objet est dirigée par trois fondamentaux : encapsulation. SI 4: thème 2 : Notions de base sur la POO Page 3 sur 14 . et qui respectent les trois fondamentaux cidessus. 2. Quand une instance est créée. une manière de « modéliser le monde » : des objets ayant un état interne et un comportement. Ce sont des langages adapté à la programmation par objets. II Les classe. par Microsoft :  Classe.  La programmation objet est un paradigme.NET Framework. sinon identiques. La notion de classe correspond à cette notion de types d’objets. définition : « les classes sont des constructions de base du système de type commun dans le .1 Qu’est-ce qu’une classe ? Les objets qui collaborent dans une application sont souvent très nombreux. Définition de classe.3 Les Langages Orientés Objets.2 La Programmation Orientée Objet (POO). Un objet est une instance d’une classe. 2.

} } 2.3 Les rôles d’une classe. auteur. SI 4: thème 2 : Notions de base sur la POO Page 4 sur 14 . VARIABLES D’INSTANCE CONSTRUCTEUR //Constructeur public Livre(String unTitre. } ACCESSEURS /Accesseur public String getAuteur() { return auteur. private Int32 nbPages. } //Modificateur public void setNbPages(Int32 nb) { nbPages = nb. un module pour décomposer une application en entités plus petites. String unAuteur) { titre = unTitre. auteur = unAuteur. un générateur d’objets (par ses constructeurs)  Une classe permet d’encapsuler les objets : les membres « public » sont vus de l’extérieur mais les membres « private » sont cachés.  Une classe est : - un type qui décrit une structure (variables d’instances) et un comportement (méthodes).BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO 15/10/2014 EXEMPLE : CLASSE LIVRE public class Livre { private String titre.

initialiser l’état de ces instances. auteur = unAuteur. Int32 unNbPages) { titre = unTitre. monLivre = new Livre("La reine dans le palais des courants d'air".  Un constructeur : - a le même nom que la classe.  Une instance d’une classe est créée par un des constructeurs de la classe. //Constructeurs public Livre(String unTitre. String unAuteur) { titre = unTitre. CREATION D’UNE INSTANCE. auteur = unAuteur. L’instance est créée avec class Program { le mot-clé « new ». n’a pas de type retour. String unAuteur. "Stieg Larsson"). nbPages = unNbPages.. Une fois qu’elle est créée. …………………………. monLivre. partage le code qui détermine son comportement (les méthodes) avec les autres instances de la classe  Chaque classe a un ou plusieurs constructeurs qui servent à : - créer les instances. static void Main(string[] args) { Livre monLivre. } } PLUSIEURS CONSTRUCTEURS DANS LA CLASSE. } SI 4: thème 2 : Notions de base sur la POO Page 5 sur 14 . auteur. } public Livre(String unTitre. l’instance : - a son propre état interne (les valeurs des variables d’instance). public class Livre { private String titre. private Int32 nbPages.setNbPages(710).BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO 15/10/2014 III Les constructeurs.

0) { } public Livre(String unTitre. class Program { static void Main(string[] args) { Livre monLivre1. nbo = nbaleea. auteur = unAuteur.nbo. 4.Next(0. nbPages = unNbPages. Int32 unNbPages) { titre = unTitre. . pour modifier leur valeur .BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO 15/10/2014 PLUSIEURS CONSTRUCTEURS DANS LA CLASSE. 10). getter en anglais. } Vous avez déjà appelé un constructeur. "Stieg Larsson".les accesseurs en écriture. monLivre2 = new Livre("La reine dans le palais des courants d'air". String unAuteur):this(unTitre. "Stieg Larsson"). unAuteur. monLivre1 = new Livre("Les hommes qui n'aimaient pas les femmes".1 Les accesseurs. Random nbaleea = new Random(). monLivre2. ou modificateurs. celui de la classe Random… static void Main(string[] args) { Int32 nbu. //Constructeurs public Livre(String unTitre. « accesseur en lecture » est souvent abrégé en « accesseur » . Deux types de méthodes servent à donner accès aux variables depuis l’extérieur de la classe : .les accesseurs en lecture pour lire les valeurs des variables . } } DESIGNER UN CONSTRUCTEUR PAR THIS.710). ou mutateurs. String unAuteur. setter en anglais SI 4: thème 2 : Notions de base sur la POO Page 6 sur 14 . …… IV Les méthodes.

Double prime) { …… } …………. EXEMPLE de METHODES. public class Employe { …. } 4. Double prime) { …… } SI 4: thème 2 : Notions de base sur la POO Page 7 sur 14 . } //Modificateur public void setSalaire(Double unSalaire) { Salaire=unSalaire..BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO 15/10/2014 4. c’est ajouter une méthode qui a le même nom mais pas la même signature qu’une autre méthode : Exemple : public Double calculerSalaire(Int32 indice) { …… } public Double calculerSalaire(Int32 indice. /Accesseur public Double getSalaire() { return salaire.3 La surcharge.2 Autres types de méthodes.  La surcharge. des méthodes (private) servent de « sous-programmes » utilitaires aux autres méthodes de la classe. } //Méthodes public Double calculerSalaire(Int32 indice.  La plupart des méthodes permettent aux instances de la classe d’offrir des services plus complexes aux autres instances  Enfin.

sa valeur est placée dans la pile  Si la variable contient une référence à un objet . ne sont accessibles que dans le bloc dans lequel elles ont été déclarées. un « ramasse-miettes » (garbage collector. il est interdit d’avoir ces 2 méthodes dans une classe : public int calculerSalaire(Int32 indice. réel. Double prime) { …… } V les variables. la valeur de la référence est placée dans la pile mais l’objet référencé est placé dans le tas Lorsque l’objet n’est plus référencé. autrement dit. On distingue les variables d’instance et les variables locales. conservent une valeur utilisée pendant l’exécution de la méthode.1 Variables d’instances vs variables locales. entier. chaine de caractères. 5.2 Les types de données. booléen. Par exemple. SI 4: thème 2 : Notions de base sur la POO Page 8 sur 14 . on ne peut différencier deux méthodes par leur type retour. Les variables d’instances : - sont déclarées en dehors de toute méthode conservent l’état d’un objet. La mémoire est séparée en deux zones : la pile et le tas. Il existe 2 grands groupes de types de données : - Les types primitifs : caractère.  L’espace mémoire alloué à une variable locale est situé dans la pile.  Si la variable est d’un type primitif.3 La mémoire.BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO 15/10/2014 Note importante : Il est interdit de surcharger une méthode en changeant seulement le type de retour . GC) libère la mémoire qui lui a été allouée. 5. Et les objets qui sont des instances de classe. Double prime) { …… } public Double calculerSalaire(Int32 indice. instance de la classe sont accessibles et partagées par toutes les méthodes de la classe Les variables locales : - sont déclarées à l’intérieur d’une méthode. 5.

BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO SI 4: thème 2 : Notions de base sur la POO 15/10/2014 Page 9 sur 14 .

BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO SI 4: thème 2 : Notions de base sur la POO 15/10/2014 Page 10 sur 14 .

4 Déclaration et création d’instances. Que faut-il écrire pour que ce soit correct ? SI 4: thème 2 : Notions de base sur la POO Page 11 sur 14 .BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO 15/10/2014 5.

protected sera étudié dans le cours sur l’héritage.. public class Imprimante { .1 Variable de classe. on lui associe un modificateur. public : toutes les classes sans exception y ont accès.BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO 15/10/2014 5. Le mot-clé « this » est utilisé surtout dans 2 occasions : . Si on veut autoriser la lecture d’une variable depuis l’extérieur de la classe.pour distinguer une variable d’instance et un paramètre qui ont le même nom : exemple : public void setSalaire(double salaire) { this. qui permet la modification tout en contrôlant la validité de la modification.ajouter(doc. } un objet passe une référence de lui-même à un autre objet : public class Document { .getFichier()).ajouterRequete(this).salaire = salaire. on lui associe un accesseur... VII Méthodes et variables de classes. public void imprimer(Imprimante imprimante) { imprimante. cette initialisation est exécutée une seule fois quand la classe est chargée en mémoire.4 Accès aux membres d’une classe. . Il existe différent niveau d’encapsulation : - private : seule la classe dans laquelle il est déclaré a accès à ce membre... 7.....} . . VI Le mot-clé « This ». Ce sont les variables de classe (modificateur static) Si une variable de classe est initialisée dans sa déclaration. SI 4: thème 2 : Notions de base sur la POO Page 12 sur 14 . Certaines variables sont partagées par toutes les instances d’une classe. public void ajouterRequete(Document doc) { // Ajoute le fichier associé au document // dans la file d’attente d’impression fileAttente. avec le niveau d’accessibilité que l’on veut. L’état d’un objet (les variables d’instance) doit être private. Si on veut autoriser la modification d’une variable.

.BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO 15/10/2014 Exemple : public class Employe { private String nom.  Une méthode de classe peut être considérée comme un message envoyé à une classe.getNbEmploye(). String p) { nom = n. } .3 Classe static.  Depuis sa classe.  Une méthode de classe (modificateur static en C#) exécute une action indépendante d’une instance particulière de la classe. le nom de la méthode suffit. Elle sert à créer un module de code. C’est un « utilitaire ». prenom. 7. } 7.. private double salaire. SI 4: thème 2 : Notions de base sur la POO Page 13 sur 14 .2 Méthodes de classe. Exemple : public static int getNbEmployes() { return nbEmployes. }  Depuis une autre classe. IMPORTANT : on ne peut pas créer d’instance d’une classe static. nbEmployes++. // Constructeur public Employe(String n.  Une méthode de classe ne peut avoir la même signature qu’une méthode d’instance. on la préfixe par le nom de la classe : int n = Employe. private static int nbEmployes = 0. prenom = p.

BTS SIO 1 / SI 4 Thème 2 : Notions de base sur la POO 15/10/2014 Notions Importantes de ce chapitre : SI 4: thème 2 : Notions de base sur la POO Page 14 sur 14 .