Programmation Orientée Objet
sous le langage JAVA
Java
Compilation
Interprétation
Compilation vs Interprétation
Compilation
• Non portable
• Exécution rapide
(simulation, jeux …)
Interprétation
• Portabilité
• Lenteur
• Décompilation
(obfuscation)
Outils
• IDE : NetBeans, Eclipse, Jbuilder, Jboss …
• Le kit de developpement SDK java (jdk) :
– Compilateur : javac
– Parser (decompiler) : javap
– Générateur de documentation ; javadoc
• La machine virtuelle java (runtime) JRE (JVM) :
– Interpréteur : java
Note: java existe en plusieurs éditions
– SE (standard edition) pour les applications desktop
– EE (Entreprise edition) pour les applications web
– ME (Micro edition) pour les applications mobiles ou embarquées
La syntaxe
public class firstSample
{
public static void main(String[] args)
{
System.out.println(“’");
}
}
La syntaxe : types
La syntaxe : opérations
La syntaxe :Contrôle
La syntaxe :Contrôle
La syntaxe :Contrôle
POO : Les concepts
• Objet
• Classe
• Héritage
• Encapsulation
• Surcharge
• Redéfinition
• Polymorphisme
Les Objets
• Personnes, lieux, concepts …
• Composés de caractéristiques (propriété, données) et
dotés de comportements (opérations, méthodes …)
• Peuvent opérer directement sur leurs données
• Peuvent envoyer des messages les uns aux autres
Les Classe
• class
• Une structure contenant les données et les
comportements communs à un ensemble d’objets
qu’elle décrit
• Chaque objet est une instance d’une classe
Voiture v= new Voiture();
L’héritage
Le mécanisme qui permet à une classe de partager
ses attributs et méthodes définies à une ou plusieurs
classes
• Extends
• Sous classe (classe fille)
– La classe qui hérite des caractéristiques de la
classe mère
• Super classe (classe mère)
– Classe depuis laquelle une autre classe a hérité
des comportements
• Héritage multiple
– Une classe qui hérite de plusieurs autres classes
L’encapsulation
• Private / protected / package / public
• protéger l'information contenue dans un objet et de ne
proposer que des méthodes de manipulation de cet
objet
• intégrité des données
• Cacher l’implémentation
La surcharge
• Surcharge de méthode : même nom de méthodes
avec différents paramètres (type et/ou nombre)
• La surcharge des operateur n’existe pas sous java
La Redéfinition
• @override
• Ecraser dans la sous classe la définition d’une
méthode de la superclasse
Le Polymorphisme
• Attribuer à un objet d’une super classe A une instance
de la sous classe B
• Appel des méthodes polymorphiques (les méthodes
redéfinis)
Notions
• package : conteneur avec un ensemble de classes
• this : référence l’objet courant dans la classe
• super : référence la superclasse
• final : définit une constante, une méthode non
redéfinissable, une classe non héritable.
• static : variable ou méthode de classe
• Abstract : méthode à définir dans les sous classes /
classe qui ne peut être instanciée
Notions
• Les interfaces : une collection de définitions de
méthodes (sans implémentation) et de valeur
constantes (classe abstraite / héritage multiple …)
• Classe interne: classe définit à l’intérieur d’une autre
classe
• Classe anonyme: classe interne sans nom, crée par
dérivation d’une superclasse ou par implémentation
d’une interface
Les exceptions
• Exception
• Ne plus prévoir l’erreur
• Laisser l’erreur survenir puis ramasser les dégâts
try {
//code douteux
}
Catch(TypeAException varAExp){
//réaction à l’exception A
}
..
Catch(TypeBException varBExp){
//réaction à l’exception A
}
Finally{
//code toujours executable
}
Les Threads
• Thread ≠ Processus
• S’exécute dans un processus en parallèle à d’autres
traitements
• Classe hérite de la classe Thread ou implémente
l’interface Runnable
• Définir la méthode run()
• Appeler la méthode start() depuis l’objet de la classe
Les Threads

Langage Java et Programmation Orienté Objet

  • 1.
  • 2.
  • 3.
    Compilation vs Interprétation Compilation •Non portable • Exécution rapide (simulation, jeux …) Interprétation • Portabilité • Lenteur • Décompilation (obfuscation)
  • 4.
    Outils • IDE :NetBeans, Eclipse, Jbuilder, Jboss … • Le kit de developpement SDK java (jdk) : – Compilateur : javac – Parser (decompiler) : javap – Générateur de documentation ; javadoc • La machine virtuelle java (runtime) JRE (JVM) : – Interpréteur : java Note: java existe en plusieurs éditions – SE (standard edition) pour les applications desktop – EE (Entreprise edition) pour les applications web – ME (Micro edition) pour les applications mobiles ou embarquées
  • 5.
    La syntaxe public classfirstSample { public static void main(String[] args) { System.out.println(“’"); } }
  • 6.
  • 7.
    La syntaxe :opérations
  • 8.
  • 9.
  • 10.
  • 11.
    POO : Lesconcepts • Objet • Classe • Héritage • Encapsulation • Surcharge • Redéfinition • Polymorphisme
  • 12.
    Les Objets • Personnes,lieux, concepts … • Composés de caractéristiques (propriété, données) et dotés de comportements (opérations, méthodes …) • Peuvent opérer directement sur leurs données • Peuvent envoyer des messages les uns aux autres
  • 13.
    Les Classe • class •Une structure contenant les données et les comportements communs à un ensemble d’objets qu’elle décrit • Chaque objet est une instance d’une classe Voiture v= new Voiture();
  • 14.
    L’héritage Le mécanisme quipermet à une classe de partager ses attributs et méthodes définies à une ou plusieurs classes • Extends • Sous classe (classe fille) – La classe qui hérite des caractéristiques de la classe mère • Super classe (classe mère) – Classe depuis laquelle une autre classe a hérité des comportements • Héritage multiple – Une classe qui hérite de plusieurs autres classes
  • 15.
    L’encapsulation • Private /protected / package / public • protéger l'information contenue dans un objet et de ne proposer que des méthodes de manipulation de cet objet • intégrité des données • Cacher l’implémentation
  • 16.
    La surcharge • Surchargede méthode : même nom de méthodes avec différents paramètres (type et/ou nombre) • La surcharge des operateur n’existe pas sous java
  • 17.
    La Redéfinition • @override •Ecraser dans la sous classe la définition d’une méthode de la superclasse
  • 18.
    Le Polymorphisme • Attribuerà un objet d’une super classe A une instance de la sous classe B • Appel des méthodes polymorphiques (les méthodes redéfinis)
  • 19.
    Notions • package :conteneur avec un ensemble de classes • this : référence l’objet courant dans la classe • super : référence la superclasse • final : définit une constante, une méthode non redéfinissable, une classe non héritable. • static : variable ou méthode de classe • Abstract : méthode à définir dans les sous classes / classe qui ne peut être instanciée
  • 20.
    Notions • Les interfaces: une collection de définitions de méthodes (sans implémentation) et de valeur constantes (classe abstraite / héritage multiple …) • Classe interne: classe définit à l’intérieur d’une autre classe • Classe anonyme: classe interne sans nom, crée par dérivation d’une superclasse ou par implémentation d’une interface
  • 21.
    Les exceptions • Exception •Ne plus prévoir l’erreur • Laisser l’erreur survenir puis ramasser les dégâts try { //code douteux } Catch(TypeAException varAExp){ //réaction à l’exception A } .. Catch(TypeBException varBExp){ //réaction à l’exception A } Finally{ //code toujours executable }
  • 22.
    Les Threads • Thread≠ Processus • S’exécute dans un processus en parallèle à d’autres traitements • Classe hérite de la classe Thread ou implémente l’interface Runnable • Définir la méthode run() • Appeler la méthode start() depuis l’objet de la classe
  • 23.