Langage Java et Programmation Orienté Objet

Preview:

Citation preview

Programmation Orientée Objetsous 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

Recommended