cours notion de base sur la poo

Upload: alex

Post on 23-Feb-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 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 :