26
GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile Faite par Ahmed MAALEJ Formation (2 ème séance) POO ET JAVA Samedi 08/05/2015

Formation POO & Java (2ème séance)

Embed Size (px)

Citation preview

Page 1: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

Faite par Ahmed MAALEJ

Formation (2ème séance)

POO ET JAVA

Samedi 08/05/2015

Page 2: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Langage JAVA• Langage open source (GNU GPL)• Basé essentiellement du langage C++• Java est un langage purement orienté objet• Indépendant de la plateforme matérielle/logicielle• A la base de plusieurs autres langages: Python, Scala, C#, J#, Ada 2005, Groovy, Javascript, PHP, etc.• Utilisations:

• Mobile: Java ME, Android• Desktop: JavaFX• Web:

• Coté client: Applet• Coté Serveur: Architecture Java EE

Page 3: Formation POO & Java (2ème séance)

Notion objet/classe

Instanciation

Méthodes

attributs

Classe

Objet

Objet

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Page 4: Formation POO & Java (2ème séance)

Elements de base de Java

• Variables : type variable1, variable2, variable3, …, variableN;variable1=valeur1

où bientype variable1=valeur1;…

int a=2,b=3,c;String c;C="test";

Exemple:

• Constantes : final type nomConst=valeurCst;

final float PI=3,14F;

Exemple:

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Page 5: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Elements de base de Java (Suite)

• Types:• Types primitifs:

• Types référence: String / Tableaux / toute variable dont le type associé n’est pas un type primitif

Type Taille mémoire Valeur par défaut

boolean 1 bit false

byte 1 octet (byte)0

char 2 octet ‘\u0000’ ou null

short 2 octet (short)0

int 4 octet 0

long 8 octet 0L ou 0l

float 4 octet 0.0F ou 0.0f

double 8 octet 0.0D ou 0.0d

Page 6: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Elements de base de Java (Suite)

• Types référence: String / Tableaux / toute variable dont le type associé n’est pas un type primitif

String ch;ch="Hello";System.out.println(ch); // HelloString ch2=ch+" World !"; // ch2 = concat(ch," World !");char c=ch.charAt(0); // c=‘H’int l=ch.size(); Int l2=ch.length();if (l==l2) //true System.out.println("Ok!");

Exemple (String): Exemple (Tableaux):

int [5] tab int tab [5]

Int tab[5]={1,2,3,4,5};for (int i=0;i<5;i++) System.out.println(tab[i]);

System.out.println(

Page 7: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Elements de base de Java (Suite)

• Transtypage:

Byte short int long float doublechar int

Implicite:

Explicite:

(type)expression;

Exemple: double dd=5.0;float ff;

ff=(float)dd;

Page 8: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Programme 0 en Java

public class HelloMain {public static void main (String [] args)

{System.out.println("Hello World !");}

}

Page 9: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Définition d’une classePackage exemple;

public [abstract] class NomClasse extends NomClasseMère implements NomInterf1, NomInterf2 { // [liste des attributs] // [liste des méthodes]}

[private/public/protected] [static] [final] type nomAttribut [=valeur];*Par défaut: accessible par la classe elle-même et les autres classes du même paquetages.

[private/public/protected] [abstract] [static] [final] void/type nomMethode ([paramètres]){…}*Par défaut: peut être invoquée par la classe elle-même et les autres classes du même paquetages.

Page 10: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Package exemple;

public class Personne {private int cin;private String nom;private String prenom;private int age;public void afficher (){System.out.println(cin+" "+nom+" "+prenom+" "+age);}

}

Définition d’une classe [Classe Personne]

Page 11: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Constructeur

• Constructeur par défaut• Constructeur avec paramètres• Constructeur par recopie

Package exemple;

public class Personne {…public Personne(){

cin=0;nom="";prenom="";age=18;

}

public Personne(int c, String ch1, String ch2, int a){

cin=c;nom=ch1;prenom=ch2;age=a;

}public Personne(Personne p2){

cin=p2.cin;nom=p2.nom;prenom=p2.prenom;age=p2.age;

}}

Page 12: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Déstrcuteur

Protected void finalize() throws Throwable{

super.finalize();//code propre aux objets de cette classe

}

Page 13: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Getter/Setter

public String getNom() {return nom;}public void setNom(String n){nom=n;}

public int getCin(){return cin;}public void setCin(int c){cin=c;}

Get: typeAttribut getNomAttribut(){ return nomAttribut;}

Set: void setNomAttribut(typeAttribut aux){nomAttribut = aux;}

Exemple:

Page 14: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Les membres statiquesUn membre est dit statique lorsqu’il est partagé par l’ensemble des instances de la classe à laquelle il appartient.

• Attribut statique: doit être initialisé dès sa déclaration..

public class Personne { //Attributs private static int nbPersonnes = 0;//Constructeurspublic Personne(){

cin=0;nom="";prenom="";age=18;nbPersonnes++;

}

public void afficherNb() {System.out.println("Nombre de personnes : "+nbPersonnes);

}

Protected void finalize() throws Throwable{

super.finalize();nbPersonnes--;

}

Page 15: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Les membres statiques (Suite)

public class Personne { //Attributs private static int nbPersonnes = 0;//méthodespublic static void afficherNb() {

System.out.println("Nombre de personnes : "+nbPersonnes);

}}

• Methode statique: N’utilise que les méthodes et les attributs statiques de sa classe

public class Main{public static void main(String [] args){

Personne. p(5,"ch1", "ch2",3);p. afficherNb(); //okPersonne. afficherNb(); //ok

}}

Page 16: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Héritage et polymorphisme

public class Etudiant extends Personne {private int num;public Etudiant() {

super();num=0;

}public Etudiant(int c,String ch1,String ch2, int a, int nu){

super(c,ch1,ch2,a);num=nu;

}public Etudiant(Etudiant e){

Syntaxe:

super(e);num=e.num;

}

public void afficher (){

super.afficher();System.out.println(num);

}

Page 17: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Héritage et polymorphisme

classeMère cm = new classeFille(); //okclasseFille cf = new classeMère (): //non opérateur de Cast (ClasseFille)(new classeMère())

Personne p = new Etudiant(11009811,"Maalej", "Ahmed",22,1525);

p.afficher(); // 11009811 Maalej Ahmed 22((Etudiant)p).afficher(); // 11009811 Maalej Ahmed 22 1525

Etudiant e = new Personne(); //Erreur

Exemple:

Instanceof: permet de contrôler le type d’un objet

Exemple: if (p instanceof Etudiant) //true{((Etudiant)p).afficher(); }

Page 18: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Diagramme de classes

Page 19: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Classe Objectpublic class Object { public Object() {...} // contructeur public String toString() {...} protected native Object clone() throws CloneNotSupportedException {...} public equals(java.lang.Object) {...} public native int hashCode() {...} protected void finalize() throws Throwable {...} public final native Class getClass() {...} // méthodes utilisées dans la gestion des threads public final native void notify() {...} public final native void notifyAll() {...} public final void wait(long) throws InterruptedException {...} public final void wait(long, int) throws InterruptedException {...} }

Page 20: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Diagramme de classe (classe Object)

Page 21: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Classes et méthodes abstraites

• Méthode abstraite: méthode qui n’a pas de corps d’instructions (contrairement à concrète)

public abstract type nomMéthode ([paramètres]);

• Classe abstraite: Si une classe contient au moins une méthode abstraite doit être alors définie abstraite

public abstract class NomClasse { classe abstraite public abstract type nomMethode1([paramètres]); méthode abstraite …}

Page 22: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Classes et méthodes abstraites

• Exemple:

public abstract Personne {//attributs…//méthodes…public abstract void afficher();}

public Etudiant extends Personne{//attributs…//méthodes…public void afficher(){System.out.println(….}}Sinon:

public abstract Etudiant extends Personne {//attributs…//méthodes…Public abstract void afficher();}

Page 23: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Interfaces

Généralisation du concept de classe abstraite. L’interface définit en quelque sorte un contrat que certaines classes s’engagent à respecter… Les interfaces ne contiennent que :

• Définition des constantes• Des prototypes des méthodes abstraites (sans préciser le terme abstraite : elles sont

implicitement..)

interface NomInterface {[listeConstantes;][listeDéclarationsMéthodes;]

}

interface Visualisation{void afficher2();

}

public class Personne implements Visualisation {……Public void afficher2(){System.out.println("….....");}}

Exemple:

Page 24: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Gestion des exceptionsUne exception est une demande de traitement particulier qui peut arriver à n’importe quel moment d’un programme. Cette demande se traduit par un arrêt du programme, soit par l’exécution d’une action spéciale qui devra gérer l’exception.L’exemple le plus connu: Division par 0..

• Définition d’une exception

Public class ErreurAge extends Exception {public ErreurAge (String msg){

super(msg);}

}

• Lever une exception

public class Personne {public verifierAge() throws ErreurAgeThrow new ErreurAge("Age incorrect");

}

Page 25: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

1. Rappel2. Classes

abstraites3. Interfaces4. Exceptions

Préparé par Ahmed MAALEJ

Gestion des exceptions (Suite)• Traitement d’une exception

public class Main {Personne p(11009811, "Maalej", "Ahmed",22);try{p.verifierAge();}catch (ErreurAge er){System.err.println(err);}finally {p.setAge(18);}}

Page 26: Formation POO & Java (2ème séance)

GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile

Préparé par Ahmed MAALEJ

Merci pour votre attention !