Sunteți pe pagina 1din 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

15/10/2014

I Les objets, la programmation oriente objet, les langages orients objet. __________________ 2
1.1

Quest-ce quun objet ? __________________________________________________________ 2

1.2

La Programmation Oriente Objet (POO). ____________________________________________ 3

1.3

Les Langages Orients Objets. _____________________________________________________ 3

II Les classes. _____________________________________________________________________ 3


2.1 Quest-ce quune classe ? ____________________________________________________________ 3
2.2 Les lments dune classe. ___________________________________________________________ 3
2.3 Les rles dune classe._______________________________________________________________ 4

III Les constructeurs. _______________________________________________________________ 5


IV Les mthodes.__________________________________________________________________ 6
4.1 Les accesseurs. ____________________________________________________________________ 6
4.2 Autres types de mthodes. __________________________________________________________ 7
4.3 La surcharge. ______________________________________________________________________ 7

V les variables. ___________________________________________________________________ 8


5.1 Variables dinstances vs variables locales. ______________________________________________ 8
5.2 Les types de donnes._______________________________________________________________ 8
5.3 La mmoire. ______________________________________________________________________ 8
5.4 Dclaration et cration dinstances. __________________________________________________ 11
5.4 Accs aux membres dune classe. ____________________________________________________ 12

VI Le mot-cl This . ____________________________________________________________ 12


VII Mthodes et variables de classes. ________________________________________________ 12
7.1 Variable de classe. ________________________________________________________________ 12
7.2 Mthodes de classe. _______________________________________________________________ 13
7.3 Classe static. _____________________________________________________________________ 13

SI 4: thme 2 : Notions de base sur la POO

Page 1 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

15/10/2014

I Les objets, la programmation oriente objet, les langages orients objet.


1.1 Quest-ce quun objet ?
Un objet est une entit identifiable, concrte ou abstraite.
Un objet va ragir certains messages quon lui envoie de lextrieur : la faon dont il ragit
dtermine le comportement de lobjet.
Un objet a :
o Une adresse en mmoire, qui identifie lobjet.
o Un comportement,
o Un tat interne.
Ltat interne de lobjet est donn par des valeurs de variables.
Le comportement est donn par des fonctions ou procdures, appeles mthodes.
Par consquent, dans un objet, les donnes sont regroupes avec les traitements qui les utilisent.

Les mthodes de la classe dun objet correspondent aux messages quon peut lui envoyer : quand un
objet reoit un message, il excute la mthode correspondante.
Exemples :
o
o
o
o
o

objet1.decrisToi();
employe.setSalaire(20000);
voiture.demarre();
voiture.vaAVitesse(50) ;
monProduit.afficher() ;

SI 4: thme 2 : Notions de base sur la POO

Page 2 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

15/10/2014

1.2 La Programmation Oriente Objet (POO).


La programmation objet est un paradigme, une manire de modliser le monde : des objets ayant
un tat interne et un comportement, ils collaborent en schangeant des messages (pour fournir les
fonctionnalits que lon demande lapplication)
La Programmation Oriente Objet est dirige par trois fondamentaux :
encapsulation, hritage et polymorphisme.
1.3 Les Langages Orients Objets.
Ce sont des langages adapt la programmation par objets, et qui respectent les trois fondamentaux cidessus.
II Les classe.
2.1 Quest-ce quune classe ?
Les objets qui collaborent dans une application sont souvent trs nombreux. Mais on peut le plus souvent
dgager des types dobjets : des objets ont une structure et un comportement trs proches, sinon identiques.
Par exemple, tous les livres dans une application de gestion dune bibliothque. La notion de classe
correspond cette notion de types dobjets.
Dfinition de classe, par Microsoft :
Classe, dfinition : les classes sont des constructions de base du systme de type commun dans le
.NET Framework. Une classe est essentiellement une structure de donnes qui encapsule un groupe
de donnes et des comportements qui ensemble constituent une unit logique. Les donnes et
comportements sont les membres de la classe. Source : MSDN.
2.2 Les lments dune classe.
Les constructeurs (il peut y en avoir plusieurs) servent crer les instances de la classe. Quand une instance
est cre, son tat est conserv dans les variables dinstance. Les mthodes dterminent le comportement des
instances de la classe quand elles reoivent un message. Les variables et les mthodes sappellent les
membres de la classe.
Un objet est une instance dune classe.

SI 4: thme 2 : Notions de base sur la POO

Page 3 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

15/10/2014

EXEMPLE : CLASSE LIVRE

public class Livre


{
private String titre, auteur;
private Int32 nbPages;

VARIABLES
DINSTANCE
CONSTRUCTEUR

//Constructeur
public Livre(String unTitre, String unAuteur)
{
titre = unTitre;
auteur = unAuteur;
}
ACCESSEURS
/Accesseur
public String getAuteur()
{
return auteur;
}
//Modificateur
public void setNbPages(Int32 nb)
{
nbPages = nb;
}
}

2.3 Les rles dune classe.


Une classe est :
-

un type qui dcrit une structure (variables dinstances) et un comportement (mthodes).


un module pour dcomposer une application en entits plus petites.
un gnrateur dobjets (par ses constructeurs)

Une classe permet dencapsuler les objets : les membres public sont vus de lextrieur mais les
membres private sont cachs.

SI 4: thme 2 : Notions de base sur la POO

Page 4 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

15/10/2014

III Les constructeurs.


Une instance dune classe est cre par un des constructeurs de la classe. Une fois quelle est cre,
linstance :
-

a son propre tat interne (les valeurs des variables dinstance),


partage le code qui dtermine son comportement (les mthodes) avec les autres instances de la classe

Chaque classe a un ou plusieurs constructeurs qui servent :


-

crer les instances,


initialiser ltat de ces instances,

Un constructeur :
-

a le mme nom que la classe,


na pas de type retour.

CREATION DUNE INSTANCE.

Linstance est cre avec


class Program
{
le mot-cl new .
static void Main(string[] args)
{
Livre monLivre;
monLivre = new Livre("La reine dans le palais des courants d'air", "Stieg
Larsson");
monLivre.setNbPages(710);
..
}
}

PLUSIEURS CONSTRUCTEURS DANS LA CLASSE.


public class Livre
{
private String titre, auteur;
private Int32 nbPages;
//Constructeurs
public Livre(String unTitre, String unAuteur)
{
titre = unTitre;
auteur = unAuteur;
}
public Livre(String unTitre, String unAuteur, Int32 unNbPages)
{
titre = unTitre;
auteur = unAuteur;
nbPages = unNbPages;
}

SI 4: thme 2 : Notions de base sur la POO

Page 5 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

15/10/2014

PLUSIEURS CONSTRUCTEURS DANS LA CLASSE.


class Program
{
static void Main(string[] args)
{
Livre monLivre1, monLivre2;
monLivre1 = new Livre("Les hommes qui n'aimaient pas les femmes", "Stieg
Larsson");
monLivre2 = new Livre("La reine dans le palais des courants d'air", "Stieg
Larsson",710);
}
}

DESIGNER UN CONSTRUCTEUR PAR THIS.


//Constructeurs
public Livre(String unTitre, String unAuteur):this(unTitre, unAuteur,0)
{
}
public Livre(String unTitre, String unAuteur, Int32 unNbPages)
{
titre = unTitre;
auteur = unAuteur;
nbPages = unNbPages;
}

Vous avez dj appel un constructeur, celui de la classe Random


static void Main(string[] args)
{
Int32 nbu,nbo;
Random nbaleea = new Random();
nbo = nbaleea.Next(0, 10);

IV Les mthodes.
4.1 Les accesseurs.
Deux types de mthodes servent donner accs aux variables depuis lextrieur de la classe :
- les accesseurs en lecture pour lire les valeurs des variables ; accesseur en lecture est souvent
abrg en accesseur ; getter en anglais.
- les accesseurs en criture, ou modificateurs, ou mutateurs, pour modifier leur valeur ; setter en anglais

SI 4: thme 2 : Notions de base sur la POO

Page 6 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

15/10/2014

4.2 Autres types de mthodes.


La plupart des mthodes permettent aux instances de la classe doffrir des services plus complexes aux
autres instances
Enfin, des mthodes (private) servent de sous-programmes utilitaires aux autres mthodes de la classe.

EXEMPLE de METHODES.
public class Employe
{
..
/Accesseur
public Double getSalaire()
{
return salaire;
}
//Modificateur
public void setSalaire(Double unSalaire)
{
Salaire=unSalaire;
}
//Mthodes
public Double calculerSalaire(Int32 indice, Double prime)
{

}
.
}

4.3 La surcharge.
La surcharge, cest ajouter une mthode qui a le mme nom mais pas la mme signature quune autre
mthode :
Exemple :
public Double calculerSalaire(Int32 indice)
{

}
public Double calculerSalaire(Int32 indice, Double prime)
{

SI 4: thme 2 : Notions de base sur la POO

Page 7 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

15/10/2014

Note importante :
Il est interdit de surcharger une mthode en changeant seulement le type de retour ; autrement dit, on ne peut
diffrencier deux mthodes par leur type retour.
Par exemple, il est interdit davoir ces 2 mthodes dans une classe :
public int calculerSalaire(Int32 indice, Double prime)
{

}
public Double calculerSalaire(Int32 indice, Double prime)
{

V les variables.
5.1 Variables dinstances vs variables locales.
On distingue les variables dinstance et les variables locales.
Les variables dinstances :
-

sont dclares en dehors de toute mthode


conservent ltat dun objet, instance de la classe
sont accessibles et partages par toutes les mthodes de la classe

Les variables locales :


-

sont dclares lintrieur dune mthode,


conservent une valeur utilise pendant lexcution de la mthode,
ne sont accessibles que dans le bloc dans lequel elles ont t dclares.
5.2 Les types de donnes.

Il existe 2 grands groupes de types de donnes :


-

Les types primitifs : caractre, chaine de caractres, entier, rel, boolen.


Et les objets qui sont des instances de classe.
5.3 La mmoire.

La mmoire est spare en deux zones : la pile et le tas.


Lespace mmoire allou une variable locale est situ dans la pile.
Si la variable est dun type primitif, sa valeur est place dans la pile
Si la variable contient une rfrence un objet ; la valeur de la rfrence est place dans la pile mais
lobjet rfrenc est plac dans le tas
Lorsque lobjet nest plus rfrenc, un ramasse-miettes (garbage collector, GC) libre la mmoire qui lui a
t alloue.

SI 4: thme 2 : Notions de base sur la POO

Page 8 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

SI 4: thme 2 : Notions de base sur la POO

15/10/2014

Page 9 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

SI 4: thme 2 : Notions de base sur la POO

15/10/2014

Page 10 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

15/10/2014

5.4 Dclaration et cration dinstances.

Que faut-il crire pour que ce soit correct ?

SI 4: thme 2 : Notions de base sur la POO

Page 11 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

15/10/2014

5.4 Accs aux membres dune classe.


Il existe diffrent niveau dencapsulation :
-

private : seule la classe dans laquelle il est dclar a accs ce membre.


public : toutes les classes sans exception y ont accs.
protected sera tudi dans le cours sur lhritage.

Ltat dun objet (les variables dinstance) doit tre private. Si on veut autoriser la lecture dune
variable depuis lextrieur de la classe, on lui associe un accesseur, avec le niveau daccessibilit que
lon veut. Si on veut autoriser la modification dune variable, on lui associe un modificateur, qui
permet la modification tout en contrlant la validit de la modification.

VI Le mot-cl This .
Le mot-cl this est utilis surtout dans 2 occasions :
- pour distinguer une variable dinstance et un paramtre qui ont le mme nom : exemple :
public void setSalaire(double salaire)
{
this.salaire = salaire;
}
un objet passe une rfrence de lui-mme un autre objet :
public class Document {
...
public void imprimer(Imprimante imprimante) {
imprimante.ajouterRequete(this);
- }
- ...
public class Imprimante {
...
public void ajouterRequete(Document doc) {
// Ajoute le fichier associ au document
// dans la file dattente dimpression
fileAttente.ajouter(doc.getFichier());
...
VII Mthodes et variables de classes.
7.1 Variable de classe.
Certaines variables sont partages par toutes les instances dune classe. Ce sont les variables de classe
(modificateur static)
Si une variable de classe est initialise dans sa dclaration, cette initialisation est excute une seule fois quand
la classe est charge en mmoire.

SI 4: thme 2 : Notions de base sur la POO

Page 12 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

15/10/2014

Exemple :
public class Employe {
private String nom, prenom;
private double salaire;
private static int nbEmployes = 0;
// Constructeur
public Employe(String n, String p) {
nom = n;
prenom = p;
nbEmployes++;
}
...
}
7.2 Mthodes de classe.
Une mthode de classe (modificateur static en C#) excute une action indpendante dune instance
particulire de la classe.
Une mthode de classe peut tre considre comme un message envoy une classe.
Exemple :
public static int getNbEmployes() {
return nbEmployes;
}
Depuis une autre classe, on la prfixe par le nom de la classe :
int n = Employe.getNbEmploye();
Depuis sa classe, le nom de la mthode suffit.
Une mthode de classe ne peut avoir la mme signature quune mthode dinstance.
7.3 Classe static.
Elle sert crer un module de code. Cest un utilitaire .
IMPORTANT : on ne peut pas crer dinstance dune classe static.

SI 4: thme 2 : Notions de base sur la POO

Page 13 sur 14

BTS SIO 1 / SI 4

Thme 2 : Notions de base sur la POO

15/10/2014

Notions Importantes de ce chapitre :

SI 4: thme 2 : Notions de base sur la POO

Page 14 sur 14

S-ar putea să vă placă și