Programmationorientéeobjet
appliquéeaveclelangageJava
IUTd'Aix‐Marseille
RéseauxetTélécommunications
Novembre2013
IvanMadjarov
IvMad, 2008-2013 2
Laprogrammationorientéeobjet
LelangageJava–Partie1
2
IvMad, 2008-2013 3
Lesnotionsdel'Objet
3
•IntroductionaumodèleJava
•LaProgrammationOrientéeObjet
•ObjetsetClasses
•PropriétésetMéthodes
•Encapsulation
•ConstructeursetDestructeurs
•SurchargeetRedéfinition
•Héritage
•Polymorphisme
3IvMad, 2008-2013 4
LemodèleJava
44
IvMad, 2008-2013 5
Java‐ Introduction
5IvMad, 2008-2013 6
Java‐ Modèle VM
6
•LaportabilitédeJava
Système d'exploitation
JVM (Machine virtuelle)
Java Source File
Bonjour.java
java Bonjour
Java Class File
Bonjour.class
(byte-code portable)
javac Bonjour.java
IvMad, 2008-2013 7
Java‐ exemples
7
•L'exempledebase:
class Bonjour {
public static void main (String args[]) {
System.out.println("Bonjour tout le monde!");
}
}
–CodesourcesauvegardédansBonjour.java
–Compilationetexécution:
IvMad, 2008-2013 8
Java‐ exemple
8
•Undeuxièmeexemple:
•CodesourcesauvegardédansBonjour.java
•Compilationetexécutionavecparamètre:
class Bonjour {
public static void main(String args[]) {
System.out.println("Bonjour " + args[0]);
}
}
IvMad, 2008-2013 9
Java‐ programme
9
•Ledéroulementduprogramme:
•main :méthode(fonction)principaledelaclasse.
–C'estlaméthodeappeléeparlacommande
>java Bonjour.
–void :caractériselesfonctionsquinerenvoientrien
doncvoid enanglais.
–LeparamètreString[]argv correspondauxparamètres
éventuellementpassésenlignedecommande:
>java Bonjour Pierre
IvMad, 2008-2013 10
Java‐ exemple
10
•Leplusgranddetroisnombredonnésauclavier:
class comparerTrois {
public static void main(String argv[]) { // chaîne de c.
int a = Integer.parseInt(argv[0]); // Conversion vers int
int b = Integer.parseInt(argv[1]); // Conversion vers int
int c = Integer.parseInt(argv[2]); // Conversion vers int
if (a>b && a>c)
System.out.println("Le plus grand est a="+a);
if (b>a && b>c)
System.out.println("Le plus grand est b="+b);
if (c>a && c>b)
System.out.println("Le plus grand est c="+c);
}
}
IvMad, 2008-2013 11
Laprogrammationorientéeobjet
•LemodèleObjet:
–Considèrequelemondeestcomposéd’objets
–Lesobjetssontidentifiablesindividuellement.
–Lesobjetssontenrelationavecd’autresobjets
–Lesobjetspeuventêtreabstraitssouslaformede
"types"quel’onappelleclasses
–Lesclassessontorganiséessouslaformed'hiérarchies
–Penserentermesd'abstractionsconceptuelles
–Penserentermesd'entitésrelativementautonomes
–Penserentermesdecadres(frameworks)etde
composantsréutilisables
11 IvMad, 2008-2013 12
Laprogrammationorientéeobjet
•LesobjectifsdelaPOO
–Faciliterlaréutilisation decode,encapsulation et
abstraction.
–Faciliterl’évolution etl’extension ducode.
–Améliorerlaconception etlamaintenance desgrands
systèmes.
–Programmationpar"composants".
•Conceptiond’unlogicielàlamanièredelafabrication
d’unevoitureparmodulesfabriquéspardessous‐
traitants.
12
IvMad, 2008-2013 13
Laprogrammationorientéeobjet
•Objet etClasse
•Laclasse représenteunedescriptionouunedéfinition
d’untype d’objet(données+méthodes)
•L'objet enlui‐mêmeestuneinstance declasse:
–instance:Unexemplaired'uneclasse;
–instance:Unecopiedelaclasse;
–instance:Sareprésentationenmémoire.
•Ondéclareuneclasse commetypecomplexe
•Ondéclaredesvariablesdecetypeappeléesdes
objets.
13 IvMad, 2008-2013 14
Laprogrammationorientéeobjet
•LesconceptsdelaPOO
–Conceptdemodélisation àtraverslanotiondeclasseet
d’instanciation decesclasses
–Conceptd’action àtraverslanotiond’envoidemessages
etdeméthodesàl’intérieurdesobjets
–Conceptdeconstructionpar réutilisation et amélioration
parl’utilisationdelanotiond’héritage
•Caractéristiquesessentiellesd'unlangagedePOO:
–Abstraction,
–Encapsulation,
–Héritage,
–Polymorphisme.
14
IvMad, 2008-2013 15
Laprogrammationorientéeobjet
•Uneclasse estconstituéededescriptionsde:
–données :quel’onnommeattributs.
–fonctions :quel’onnommeméthodes
•Uneclasseestunmodèlededéfinitionpourdesobjets
–lamêmestructure(mêmeensembled'attributs),
–lemêmecomportement(mêmesopérations,méthodes),
–unesémantiquecommune.
•Lesobjetssontdesreprésentationsdynamiques
–"vivantes"dumodèledéfiniàtraverslaclasse.
–Uneclassepermetd’instancier(créer)plusieursobjets
–Chaqueobjetestl’instanced’une(seule)classe
15 IvMad, 2008-2013 16
POO–Encapsulation
•Encapsulationc’estlefaitderéunir
àl'intérieurd'unemêmeentité
(objet)lecode(méthodes)+
données(champs).
–Ilestpossibledemasquerles
informationsd'unobjetauxautres
objets.
2niveauxd’encapsulation :
•Privé‐ leschampsetlesméthodes
masquéssontdanslapartieprivée
del’objet.
•Public‐ leschampsetlesméthodes
visiblessontdanslapartieinterface
del’objet.
16
IvMad, 2008-2013 17
Héritage
•L'héritage permetlacréationdesdescendants.
–Lesdescendantsbénéficientdescaractéristiquespropresde
leurancêtre(champs et méthodes).
–Lesdescendantsconserventlapossibilitédeposséderleur
propreschamps etméthodes.
17 IvMad, 2008-2013 18
Polymorphisme
•Lepolymorphisme traitedelacapacitédel'objetàposséder
plusieursformes.
•Cettecapacitédérivedirectementduprinciped'héritage.
•Unobjethéritedeschampsetméthodesdesesancêtres.
•L’objetgardetoujourslacapacitédepouvoirredéfinir une
méthode afindelaréécrire,oudelacompléter.
•C’estlacapacitéd'unobjetàmodifiersoncomportement
propreetceluidesesdescendantsaucoursdel'exécution.
•C’estlacapacitédusystèmeàchoisir
dynamiquementlaméthodequi
correspondautyperéelde
l'objetencours.
18
IvMad, 2008-2013 19
Laprogrammationorientéeobjet
19
•LastructuredelaclasseJava
IvMad, 2008-2013 20
Laprogrammationorientéeobjet
20
•Visibilitédesattributsdanslaclasse
1 / 49 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!