formation poo & java (2ème séance)
TRANSCRIPT
GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile
Faite par Ahmed MAALEJ
Formation (2ème séance)
POO ET JAVA
Samedi 08/05/2015
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
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
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
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
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(
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;
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 !");}
}
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.
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]
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;
}}
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
}
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:
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--;
}
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
}}
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);
}
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(); }
GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile
1. Rappel2. Classes
abstraites3. Interfaces4. Exceptions
Préparé par Ahmed MAALEJ
Diagramme de classes
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 {...} }
GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile
1. Rappel2. Classes
abstraites3. Interfaces4. Exceptions
Préparé par Ahmed MAALEJ
Diagramme de classe (classe Object)
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 …}
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();}
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:
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");
}
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);}}
GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWAREAtelier Mobile
Préparé par Ahmed MAALEJ
Merci pour votre attention !