SlideShare ist ein Scribd-Unternehmen logo
1 von 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
GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. Exceptions
Préparé par Ahmed MAALEJ
Elements de base de Java
• Variables :
type variable1, variable2, variable3, …, variableN;
variable1=valeur1
où bien
type 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. Exceptions
Préparé par Ahmed MAALEJ
GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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); // Hello
String 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. Exceptions
Préparé par Ahmed MAALEJ
Elements de base de Java (Suite)
• Transtypage:
Byte  short  int  long  float  double
char  int
Implicite:
Explicite:
(type)expression;
Exemple: double dd=5.0;
float ff;
ff=(float)dd;
GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. Exceptions
Préparé par Ahmed MAALEJ
Définition d’une classe
Package 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. Exceptions
Préparé par Ahmed MAALEJ
Les membres statiques
Un 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;
//Constructeurs
public 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. Exceptions
Préparé par Ahmed MAALEJ
Les membres statiques (Suite)
public class Personne {
//Attributs
private static int nbPersonnes = 0;
//méthodes
public 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(); //ok
Personne. afficherNb(); //ok
}
}
GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. Exceptions
Préparé par Ahmed MAALEJ
Héritage et polymorphisme
classeMère cm = new classeFille(); //ok
classeFille 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. Exceptions
Préparé par Ahmed MAALEJ
Diagramme de classes
GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. Exceptions
Préparé par Ahmed MAALEJ
Classe Object
public 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. Exceptions
Préparé par Ahmed MAALEJ
Diagramme de classe (classe Object)
GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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 SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. Exceptions
Préparé par Ahmed MAALEJ
Gestion des exceptions
Une 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 ErreurAge
Throw new ErreurAge("Age
incorrect");
}
GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE
Atelier Mobile
1. Rappel
2. Classes
abstraites
3. Interfaces
4. 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 SOFTWARE
Atelier Mobile
Préparé par Ahmed MAALEJ
Merci pour votre attention !

Weitere ähnliche Inhalte

Was ist angesagt?

Java uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaJava uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaAmel Morchdi
 
Introduction java
Introduction javaIntroduction java
Introduction javaFouad Root
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
Programmation orientee aspect 201401 - Ensim
Programmation orientee aspect 201401 - EnsimProgrammation orientee aspect 201401 - Ensim
Programmation orientee aspect 201401 - EnsimLaurent Broudoux
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework springAntoine Rey
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Eric SIBER
 
Java & Etat de l'art
Java & Etat de l'artJava & Etat de l'art
Java & Etat de l'artInes Ouaz
 
Programmation orienté aspect
Programmation orienté aspectProgrammation orienté aspect
Programmation orienté aspectmeriem sari
 
Ces outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsCes outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsAntoine Rey
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationAntoine Rey
 
Java 2015 2016_zied_elleuch
Java 2015 2016_zied_elleuchJava 2015 2016_zied_elleuch
Java 2015 2016_zied_elleuchTarek Halloul
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemeStéphane Traumat
 

Was ist angesagt? (20)

Java uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaJava uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 java
 
Introduction java
Introduction javaIntroduction java
Introduction java
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Programmation orientee aspect 201401 - Ensim
Programmation orientee aspect 201401 - EnsimProgrammation orientee aspect 201401 - Ensim
Programmation orientee aspect 201401 - Ensim
 
Introduction àJava
Introduction àJavaIntroduction àJava
Introduction àJava
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework spring
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)
 
Tutoriel java
Tutoriel javaTutoriel java
Tutoriel java
 
Java & Etat de l'art
Java & Etat de l'artJava & Etat de l'art
Java & Etat de l'art
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Programmation orienté aspect
Programmation orienté aspectProgrammation orienté aspect
Programmation orienté aspect
 
Ces outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsCes outils qui vous font gagner du temps
Ces outils qui vous font gagner du temps
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring Integration
 
Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
 
J2EE vs .NET
J2EE vs .NETJ2EE vs .NET
J2EE vs .NET
 
Java 2015 2016_zied_elleuch
Java 2015 2016_zied_elleuchJava 2015 2016_zied_elleuch
Java 2015 2016_zied_elleuch
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
 

Andere mochten auch

Formation BD & SQL
Formation BD & SQLFormation BD & SQL
Formation BD & SQLG²FOSS ENIT
 
API et Mobile / Académies du Tourisme Numérique
API et Mobile / Académies du Tourisme NumériqueAPI et Mobile / Académies du Tourisme Numérique
API et Mobile / Académies du Tourisme NumériqueAlexandre Jubien
 
Java rappels e-s
Java rappels e-sJava rappels e-s
Java rappels e-somarsaid
 
Java - Exceptions
Java - ExceptionsJava - Exceptions
Java - ExceptionsNoël
 
[FR] C'est quoi une API ?
[FR] C'est quoi une API ?[FR] C'est quoi une API ?
[FR] C'est quoi une API ?OVHcloud
 
Configuring asa site to-site vp ns
Configuring asa site to-site vp nsConfiguring asa site to-site vp ns
Configuring asa site to-site vp nschiensy
 
Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...
Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...
Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...Jakob Østergaard Nielsen
 
Desafíos en la enseñanza del Markerting
Desafíos en la enseñanza del MarkertingDesafíos en la enseñanza del Markerting
Desafíos en la enseñanza del Markertingrperezllanes
 
Fq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico Fagor
Fq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico FagorFq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico Fagor
Fq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico Fagorserviciotecnicofagor
 
Workshop Proceedings (Full Document)
Workshop Proceedings (Full Document)Workshop Proceedings (Full Document)
Workshop Proceedings (Full Document)Nawsheen Hosenally
 
Hosting Personalizado SMweb
Hosting Personalizado SMwebHosting Personalizado SMweb
Hosting Personalizado SMwebSMweb.es
 
Water painting-techniques
Water painting-techniquesWater painting-techniques
Water painting-techniquesEmilia Lima
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1Yassine Badri
 

Andere mochten auch (20)

Formation BD & SQL
Formation BD & SQLFormation BD & SQL
Formation BD & SQL
 
Présentation Conférence des TechTrends
Présentation Conférence des TechTrendsPrésentation Conférence des TechTrends
Présentation Conférence des TechTrends
 
API et Mobile / Académies du Tourisme Numérique
API et Mobile / Académies du Tourisme NumériqueAPI et Mobile / Académies du Tourisme Numérique
API et Mobile / Académies du Tourisme Numérique
 
Java rappels e-s
Java rappels e-sJava rappels e-s
Java rappels e-s
 
Java - Exceptions
Java - ExceptionsJava - Exceptions
Java - Exceptions
 
Exceptions
ExceptionsExceptions
Exceptions
 
POO
POOPOO
POO
 
API pour les nuls
API pour les nulsAPI pour les nuls
API pour les nuls
 
[FR] C'est quoi une API ?
[FR] C'est quoi une API ?[FR] C'est quoi une API ?
[FR] C'est quoi une API ?
 
Mobile CI
Mobile CIMobile CI
Mobile CI
 
Configuring asa site to-site vp ns
Configuring asa site to-site vp nsConfiguring asa site to-site vp ns
Configuring asa site to-site vp ns
 
Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...
Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...
Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...
 
Desafíos en la enseñanza del Markerting
Desafíos en la enseñanza del MarkertingDesafíos en la enseñanza del Markerting
Desafíos en la enseñanza del Markerting
 
Fq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico Fagor
Fq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico FagorFq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico Fagor
Fq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico Fagor
 
Workshop Proceedings (Full Document)
Workshop Proceedings (Full Document)Workshop Proceedings (Full Document)
Workshop Proceedings (Full Document)
 
Verano deportivo 2016
Verano deportivo 2016Verano deportivo 2016
Verano deportivo 2016
 
Hosting Personalizado SMweb
Hosting Personalizado SMwebHosting Personalizado SMweb
Hosting Personalizado SMweb
 
Water painting-techniques
Water painting-techniquesWater painting-techniques
Water painting-techniques
 
Seminario ISO 19600
Seminario ISO 19600Seminario ISO 19600
Seminario ISO 19600
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1
 

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

POO - Chapitre6.pptx
POO - Chapitre6.pptxPOO - Chapitre6.pptx
POO - Chapitre6.pptxRAYENBOUAFIF1
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHPjulien pauli
 
Comment écrire du code testable ?
Comment écrire du code testable ?Comment écrire du code testable ?
Comment écrire du code testable ?Fou Cha
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfacesAziz Darouichi
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationECAM Brussels Engineering School
 
Patterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScriptPatterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScriptMicrosoft Technet France
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDidier Plaindoux
 
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Loic Yon
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech daysJean-Pierre Vincent
 
Partie1 TypeScript
Partie1 TypeScriptPartie1 TypeScript
Partie1 TypeScriptHabib Ayad
 
Chap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdfChap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdframadanmahdi
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application javaAntoine Rey
 
Android Optimisations Greendroid
Android Optimisations GreendroidAndroid Optimisations Greendroid
Android Optimisations GreendroidGDG Nantes
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07haythem_2015
 
C# et .NET : Enigmes et puzzles
C# et .NET : Enigmes  et puzzlesC# et .NET : Enigmes  et puzzles
C# et .NET : Enigmes et puzzlesMicrosoft
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptMicrosoft
 

Ähnlich wie Formation POO & Java (2ème séance) (20)

POO - Chapitre6.pptx
POO - Chapitre6.pptxPOO - Chapitre6.pptx
POO - Chapitre6.pptx
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHP
 
Comment écrire du code testable ?
Comment écrire du code testable ?Comment écrire du code testable ?
Comment écrire du code testable ?
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
Part1
Part1Part1
Part1
 
Patterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScriptPatterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScript
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvements
 
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech days
 
Partie1 TypeScript
Partie1 TypeScriptPartie1 TypeScript
Partie1 TypeScript
 
Chap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdfChap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdf
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application java
 
POO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdfPOO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdf
 
Android Optimisations Greendroid
Android Optimisations GreendroidAndroid Optimisations Greendroid
Android Optimisations Greendroid
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07
 
Go
GoGo
Go
 
C# et .NET : Enigmes et puzzles
C# et .NET : Enigmes  et puzzlesC# et .NET : Enigmes  et puzzles
C# et .NET : Enigmes et puzzles
 
Cours de Génie Logiciel / ESIEA 2016-17
Cours de Génie Logiciel / ESIEA 2016-17Cours de Génie Logiciel / ESIEA 2016-17
Cours de Génie Logiciel / ESIEA 2016-17
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 

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

  • 1. 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
  • 2. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. 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
  • 3. Notion objet/classe Instanciation Méthodes attributs Classe Objet Objet GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ
  • 4. Elements de base de Java • Variables : type variable1, variable2, variable3, …, variableN; variable1=valeur1 où bien type 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 SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ
  • 5. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. 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
  • 6. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. 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); // Hello String 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(
  • 7. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ Elements de base de Java (Suite) • Transtypage: Byte  short  int  long  float  double char  int Implicite: Explicite: (type)expression; Exemple: double dd=5.0; float ff; ff=(float)dd;
  • 8. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ Programme 0 en Java public class HelloMain { public static void main (String [] args) { System.out.println("Hello World !"); } }
  • 9. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ Définition d’une classe Package 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.
  • 10. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. 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]
  • 11. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. 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; } }
  • 12. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ Déstrcuteur Protected void finalize() throws Throwable { super.finalize(); //code propre aux objets de cette classe }
  • 13. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. 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:
  • 14. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ Les membres statiques Un 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; //Constructeurs public 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--; }
  • 15. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ Les membres statiques (Suite) public class Personne { //Attributs private static int nbPersonnes = 0; //méthodes public 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(); //ok Personne. afficherNb(); //ok } }
  • 16. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. 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); }
  • 17. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ Héritage et polymorphisme classeMère cm = new classeFille(); //ok classeFille 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(); }
  • 18. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ Diagramme de classes
  • 19. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ Classe Object public 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 {...} }
  • 20. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ Diagramme de classe (classe Object)
  • 21. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. 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 … }
  • 22. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. 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(); }
  • 23. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. 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:
  • 24. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. Exceptions Préparé par Ahmed MAALEJ Gestion des exceptions Une 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 ErreurAge Throw new ErreurAge("Age incorrect"); }
  • 25. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile 1. Rappel 2. Classes abstraites 3. Interfaces 4. 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); } }
  • 26. GENERAL AND GEOGRAPHIC FREE OPEN SOURCE SOFTWARE Atelier Mobile Préparé par Ahmed MAALEJ Merci pour votre attention !