View
218
Download
0
Category
Preview:
Citation preview
7/24/2019 Cours Notion de Base Sur La POO
1/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 1sur 14
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
7/24/2019 Cours Notion de Base Sur La POO
2/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 2sur 14
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 objet1.decrisToi();
o employe.setSalaire(20000);
o voiture.demarre();
o voiture.vaAVitesse(50) ;
o monProduit.afficher() ;
7/24/2019 Cours Notion de Base Sur La POO
3/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 3sur 14
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 londemande lapplication)
La Programmation Oriente Objet est dirige par trois fondamentaux :
encapsulation, hritageet polymorphisme.
1.3
Les Langages Orients Objets.
Ce sont des langages adapt la programmation par objets, et qui respectent les trois fondamentaux ci-
dessus.
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 souventdgager 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.
7/24/2019 Cours Notion de Base Sur La POO
4/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 4sur 14
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.
EXEMPLE : CLASSE LIVRE
publicclassLivre
{
privateStringtitre, auteur;privateInt32nbPages;
//Constructeur
publicLivre(StringunTitre, StringunAuteur)
{
titre = unTitre;
auteur = unAuteur;
}
/AccesseurpublicStringgetAuteur()
{
returnauteur;
}
//Modificateur
publicvoidsetNbPages(Int32nb){
nbPages = nb;
}}
CONSTRUCTEUR
ACCESSEURS
VARIABLES
DINSTANCE
7/24/2019 Cours Notion de Base Sur La POO
5/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 5sur 14
III Les constructeurs.
Une instance dune classe est cre par un des constructeursde 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.
classProgram{
staticvoidMain(string[] args)
{LivremonLivre;
monLivre = newLivre("La reine dans le palais des courants d'air", "Stieg
Larsson");
monLivre.setNbPages(710);..
Linstance est cre avec
le mot-cl new.
PLUSIEURS CONSTRUCTEURS DANS LA CLASSE.
publicclassLivre
{
privateStringtitre, auteur;
privateInt32nbPages;
//Constructeurs
publicLivre(StringunTitre, StringunAuteur)
{
titre = unTitre;
auteur = unAuteur;
}
publicLivre(StringunTitre, StringunAuteur, Int32unNbPages)
{
titre = unTitre;
auteur = unAuteur;
nbPages = unNbPages;
}
7/24/2019 Cours Notion de Base Sur La POO
6/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 6sur 14
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
PLUSIEURS CONSTRUCTEURS DANS LA CLASSE.
classProgram
{
staticvoidMain(string[] args)
{
LivremonLivre1, monLivre2;
monLivre1 = newLivre("Les hommes qui n'aimaient pas les femmes", "Stieg
Larsson");monLivre2 = newLivre("La reine dans le palais des courants d'air", "Stieg
Larsson",710);
}
}
DESIGNER UN CONSTRUCTEUR PAR THIS.
//ConstructeurspublicLivre(StringunTitre, StringunAuteur):this(unTitre, unAuteur,0)
{
}
publicLivre(StringunTitre, StringunAuteur, Int32unNbPages){
titre = unTitre;
auteur = unAuteur;
nbPages = unNbPages;
}
Vous avez dj appel un constructeur, celui de la classe Random
staticvoidMain(string[] args)
{
Int32nbu,nbo;
Randomnbaleea = newRandom();
nbo = nbaleea.Next(0, 10);
7/24/2019 Cours Notion de Base Sur La POO
7/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 7sur 14
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.
4.3 La surcharge.
La surcharge, cest ajouter une mthode qui a le mme nom mais pas la mme signature quune autre
mthode :
Exemple :
publicDoublecalculerSalaire(Int32indice)
{
}
publicDoublecalculerSalaire(Int32indice, Double prime)
{
}
EXEMPLE de METHODES.
publicclassEmploye
{
..
/Accesseur
publicDoublegetSalaire()
{
returnsalaire;
}
//ModificateurpublicvoidsetSalaire(DoubleunSalaire)
{
Salaire=unSalaire;
}
//Mthodes
publicDoublecalculerSalaire(Int32indice, Double prime)
{
}
.
}
7/24/2019 Cours Notion de Base Sur La POO
8/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 8sur 14
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 :
publicintcalculerSalaire(Int32indice, Double prime){
}
publicDoublecalculerSalaire(Int32indice, 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 localeest 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.
7/24/2019 Cours Notion de Base Sur La POO
9/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 9sur 14
7/24/2019 Cours Notion de Base Sur La POO
10/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 10sur 14
7/24/2019 Cours Notion de Base Sur La POO
11/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 11sur 14
5.4 Dclaration et cration dinstances.
Que faut-il crire pour que ce soit correct ?
7/24/2019 Cours Notion de Base Sur La POO
12/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 12sur 14
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.
7/24/2019 Cours Notion de Base Sur La POO
13/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 13sur 14
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 indpendanteduneinstance
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.
7/24/2019 Cours Notion de Base Sur La POO
14/14
BTS SIO 1 / SI 4 Thme 2 : Notions de base sur la POO 15/10/2014
SI 4: thme 2 : Notions de base sur la POO Page 14sur 14
Notions Importantes de ce chapitre :
Recommended