SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Université Constantine 2
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
– Cours 4 –
Chapitre 4 : Langage Java (1/2)
Programmation orienté objet
Développement d’applications mobiles
2018/2019. Semestre 1
Université Constantine 2
Etudiants concernés
Faculté/Institut Département Niveau Spécialité
2018/2019. Semestre 1
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
Développement d’applications mobiles
Licence 3 Technologies de l’information (TI)Nouvelles technologies IFA
Licence 3 Science de l’informatique (SCI)Nouvelles technologies IFA
– Cours 4 –
Chapitre 4 : Langage Java (1/2)
Programmation orienté objet
Université Constantine 2 3
Prérequis
Maîtrise de l’algorithmique
Langage JAVA
Objectifs du cours
Comprendre le paradigme orienté objet
Assimiler la syntaxe du langage Java
Résumé
© Dr. Chaouche A.-C.
Université Constantine 2 4
Classement des langages de programmation
© Dr. Chaouche A.-C.
Classement TIOBE (Septembre 2018)
N° Langages Types Ratio Evolution (2017)
- 1 Java 17,436% +4.75%
- 2 C 15,447% +8.06%
+1 3 Python 7,653% +4.67%
-1 4 C++ 7,394% +1.83%
+1 5 VB .Net 5,308% +3.33%
-1 6 C# 3,295% -1.48%
-1 7 PHP 2,775% +0.57%
-1 8 JavaScript 2,131% +0,11%
+18 9 SQL 2,062% +2,06%
Université Constantine 2 5
Kit de développement SDK Java (JDK)
Compilateur : javac
Décompilateur (Parser) : javap
Générateur de documentation : javadoc
Archiveur : jar
Machine virtuelle Java (JVM)
Interpréteur : java
En utilisant le JRE (runtime)
Integrated Development Environment (IDE)
NetBeans, Eclipse, IntelliJ IDEA, ...
Langage Java (1/2)
© Dr. Chaouche A.-C.
Université Constantine 2 6
Java existe en plusieurs éditions
Java SE (standard edition) pour les applications Desktop
Java ME (Micro edition) pour les applications mobiles ou embarquées
Java EE (Entreprise edition) pour les applications Web
Java FX, pour un environnement client riche
JavaCard (OS) pour carte à puce
Langage Java (2/2)
© Dr. Chaouche A.-C.
Université Constantine 2 7
JSE est l'édition maitresse de la plateforme Java d'Oracle,
JSE contient les APIs de base :
JFC, Swing, AWT (pour les interfaces graphiques)
JAXP (pour le parsing XML)
JDBC (pour la gestion des bases de données)
JSE est composée de :
Java Specification Requests (JSR), constituant les spécifications de la
version considérée
Java Development Kit (JDK) contenant les bibliothèques logicielles ;
Java Runtime Environment (JRE) contenant le seul environnement
d'exécution (compris de base dans le JDK)
JSE : Java™ Platform, Standard Edition 8
© Dr. Chaouche A.-C.
Université Constantine 2 8
JSE : Java™ Platform, Standard Edition 8
© Dr. Chaouche A.-C.
Université Constantine 2 9
PascalCase MonExemple
camelCase monExemple
hyphen-lowercase mon-exemple
HYPHEN-UPPERCASE MON-EXEMPLE
snake_case mon_exemple
SCREAMING_SNAKE_CASE MON_EXEMPLE
dot.case mon.exemple
words lowercase mon exemple
Words Capitalized Mon Exemple
Programmation : Convention de nommage
© Dr. Chaouche A.-C.
Université Constantine 2 10
https://en.wikipedia.org/wiki/Naming_convention_(programming)#Java
http://www.jmdoudoux.fr/java/dej/chap-normes-dev.htm
package.name (dot.case)
ntic.licence.dam, com.google.maps
ClassName (PascalCase)
Activity, HttpSession
methodName (camlCase)
run(), getBackground()
instanceVariable / localVariable (camlCase)
i, myWidth, currentUser, threadList
CONSTANT_NAME (SCREAMING_SNAKE_CASE)
LENGTH_SHORT, DEFAULT_CONTEXT
Java : Convention de nommage
© Dr. Chaouche A.-C.
Université Constantine 2 11
1. Objet et classe
2. Classe abstraite et interface
3. Héritage
4. Encapsulation
5. Surcharge
6. Redéfinition
7. Polymorphisme
8. Associations
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Université Constantine 2 12
Objet (Etat + Comportement) :
Personnes, lieux, …
Composés d’un état (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
Classe :
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
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Objet et Classe
Voiture v = new Voiture();
Université Constantine 2 13
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Classe et classe abstraite
public class A {
public String a1;
package String a2;
protected String a3;
private String a4;
public void op1() { ... }
public void op2() { ... }
}
public abstract class A {
...
public abstract void op1();
}
Université Constantine 2 14
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Réalisation d'une interface
public interface Ia {
...
public int add(int op1, int op2);
}
public class A implements Ia {
...
public int add(int op1, int op2) { ... }
}
Interface :
Définitions de méthodes (sans implémentation) et de valeurs constantes (classe
abstraite/héritage multiple …)
Université Constantine 2 15
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Héritage simple de classe
public class A {
public int add(int op1, int op2) { ... }
}
public class B extends A {
public int substract(int op1, int op2) { ... }
}
Université Constantine 2 16
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Encapsulation
Accesseurs :
protéger l'information contenue dans un objet
ne proposer que des méthodes de manipulation de cet objet (getters et setters)
Modificateur Classe Package Sous-classe Partout
public
protected
no modifier
private
Université Constantine 2 17
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Surcharge d’une méthode
public class A {
...
public int add(int op1, int op2) { ... }
public float add(float op1, float op2) { ... }
...
}
même nom de méthodes avec différents paramètres : type et/ou nombre
la surcharge des operateur n’existe pas sous java
Université Constantine 2 18
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Redéfinition d’une méthode
public class A {
public int add(int op1, int op2) { ... }
}
public class B extends A {
@Override
public int add(int op1, int op2) { ... }
}
Ecraser dans la sous classe la définition d’une méthode de la superclasse
L’annotation (mot clé spécial) : @Override
Université Constantine 2 19
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Polymorphisme (1/3)
public class A {
public int add(int op1, int op2) { ... }
}
A a = new B(); ok (upcasting)
Attribuer à un objet d’une super-classe A une instance de la sous-classe B
Cela permet de manipuler des objets sans vraiment connaître leur type
Appel des méthodes polymorphiques (les méthodes redéfinis)
public class B extends A {
public int substract(int op1, int op2) { ... }
}
Université Constantine 2 20
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Polymorphisme (2/3)
public class A {
public int add(int op1, int op2) { ... }
}
A a = new B(); ok (upcasting)
int res1 = a.add(2,3);
int res2 = a.substract(5,4); Erreur syntaxique
Attribuer à un objet d’une super-classe A une instance de la sous-classe B
Cela permet de manipuler des objets sans vraiment connaître leur type
Appel des méthodes polymorphiques (les méthodes redéfinis)
public class B extends A {
public int substract(int op1, int op2) { ... }
}
Université Constantine 2 21
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Polymorphisme (3/3)
public class A {
public int add(int op1, int op2) { ... }
}
A a = new B(); ok (upcasting)
int res1 = a.add(2,3);
int res2 = a.substract(5,4); Erreur syntaxique
if (a instanceof B)
int res3 = ((B)a).substract(5,4); ok (downcasting)
Attribuer à un objet d’une super-classe A une instance de la sous-classe B
Cela permet de manipuler des objets sans vraiment connaître leur type
Appel des méthodes polymorphiques (les méthodes redéfinis)
public class B extends A {
public int substract(int op1, int op2) { ... }
}
Université Constantine 2 22
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Associations, cardinalités et navigabilité (1/2)
Associations
Simple
Agrégation
Composition
Cardinaltés
one-to-one
one-to-many
many-to-many
Navigabilité
Unidirectionnelle
Bidirectionnelle
1 1
1 *
* *
ou
Université Constantine 2 23
Programmation Orienté Objet
© Dr. Chaouche A.-C.
Associations, cardinalités et navigabilité (2/2)
public class A {
private B rb;
public void addB(B b) {
this.setB(b);
}
public B getB() { return rb; }
public void setB(B b) { this.rb = b; }
}
public class B {
...
// La classe B ne connaît pas
l'existence de la classe A
}
Aller plus loin : Consulter le chapitre 6 du module BDA1 de la formation STIC – Master 1
Université Constantine 2 24
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 : classe qui ne peut être instanciée (méthodes à définir dans les sous
classes)
instantceof : vérifie le type de l’objet
getClass() : permet de découvrir le type de l’objet
Mots clés spéciaux en Java
© Dr. Chaouche A.-C.
Université Constantine 2 25
Javadoc JSE 8 :
https://docs.oracle.com/javase/8/docs/api/
Outils et JDK (Java SE) :
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Java et paradigme orienté objet :
http://java.developpez.com/cours/
Associations sous Java
http://laurent-audibert.developpez.com/Cours-UML/?page=diagramme-classes#L3-3
Quelques liens utiles
© Dr. Chaouche A.-C.
Université Constantine 2 26
A. Crochet-Damais, «Le Go de Google, sacré langage de l'année par Tiobe,» 10
Janvier 2017. Lien : www.journaldunet.com/solutions/dsi/1190145-go-sacre-
langage-de-l-annee-par-tiobe/.
The Eclipse Foundatio, «Eclipse Oxygen,» Juin 2017. Lien :
http://www.eclipse.org/.
Oracle Corporation, «NetBeans IDE - The Smarter and Faster Way to Code,» 2017.
Lien : https://netbeans.org/features/index.html.
JetBrains, «Intellij IDEA,» 2017. Lien : https://www.jetbrains.com/idea/.
J.-M. Doudoux, «Développons en Java - Des normes de développement,» 2016.
Lien : https://www.jmdoudoux.fr/java/dej/chap-normes-dev.htm.
P. Valicov, «Bases de la conception orientée objet - Concepts objet (Diagrammes
de Classes),» 2017. Lien : http://pageperso.lif.univ-
mrs.fr/~petru.valicov/Cours/M2104/Diagrammes_classes_x4.pdf.
S. Laporte, «Les relations entre classes,» 2017. Lien :
http://stephanie.laporte.pagesperso-
orange.fr/Pdf/LES%20RELATIONS%20ENTRE%20OBJETS.htm.
Références
© Dr. Chaouche A.-C.

Contenu connexe

Tendances

Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesAhmed-Chawki Chaouche
 
Applications Android - cours 10 : Vues à adaptateur
Applications Android - cours 10 : Vues à adaptateurApplications Android - cours 10 : Vues à adaptateur
Applications Android - cours 10 : Vues à adaptateurAhmed-Chawki Chaouche
 
Applications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteApplications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteAhmed-Chawki Chaouche
 
Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Ahmed-Chawki Chaouche
 
Applications Android - Cours 1 : Vers une informatique mobile et ambiante
Applications Android - Cours 1 : Vers une informatique mobile et ambianteApplications Android - Cours 1 : Vers une informatique mobile et ambiante
Applications Android - Cours 1 : Vers une informatique mobile et ambianteAhmed-Chawki Chaouche
 
Formation POO & Java (2ème séance)
Formation POO & Java (2ème séance)Formation POO & Java (2ème séance)
Formation POO & Java (2ème séance)G²FOSS ENIT
 
Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5Laurent BUNIET
 

Tendances (11)

Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobiles
 
Applications Android - cours 10 : Vues à adaptateur
Applications Android - cours 10 : Vues à adaptateurApplications Android - cours 10 : Vues à adaptateur
Applications Android - cours 10 : Vues à adaptateur
 
Applications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteApplications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLite
 
Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)
 
Applications Android - Cours 1 : Vers une informatique mobile et ambiante
Applications Android - Cours 1 : Vers une informatique mobile et ambianteApplications Android - Cours 1 : Vers une informatique mobile et ambiante
Applications Android - Cours 1 : Vers une informatique mobile et ambiante
 
Formation POO & Java (2ème séance)
Formation POO & Java (2ème séance)Formation POO & Java (2ème séance)
Formation POO & Java (2ème séance)
 
Cours de Génie Logiciel / ESIEA 2013-2014
Cours de Génie Logiciel / ESIEA 2013-2014 Cours de Génie Logiciel / ESIEA 2013-2014
Cours de Génie Logiciel / ESIEA 2013-2014
 
Cours Android
Cours AndroidCours Android
Cours Android
 
Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 

Similaire à Applications Android - cours 4 : Langage Java

Programmation Android - 09 - Web services
Programmation Android - 09 - Web servicesProgrammation Android - 09 - Web services
Programmation Android - 09 - Web servicesYann Caron
 
Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2Laurent BUNIET
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
Java version 11 - les 9 nouveautes
Java version 11 -  les 9 nouveautesJava version 11 -  les 9 nouveautes
Java version 11 - les 9 nouveautesAbdenour Bouateli
 
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
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfacesAziz Darouichi
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07haythem_2015
 
Chap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdfChap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdframadanmahdi
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 
POO - Chapitre6.pptx
POO - Chapitre6.pptxPOO - Chapitre6.pptx
POO - Chapitre6.pptxRAYENBOUAFIF1
 
chapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfchapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfMoez Moezm
 
Lecture_1_Concepts-fondamentaux_P01.pptx
Lecture_1_Concepts-fondamentaux_P01.pptxLecture_1_Concepts-fondamentaux_P01.pptx
Lecture_1_Concepts-fondamentaux_P01.pptxBtnPrinciiIsral
 

Similaire à Applications Android - cours 4 : Langage Java (20)

Programmation Android - 09 - Web services
Programmation Android - 09 - Web servicesProgrammation Android - 09 - Web services
Programmation Android - 09 - Web services
 
Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Java version 11 - les 9 nouveautes
Java version 11 -  les 9 nouveautesJava version 11 -  les 9 nouveautes
Java version 11 - les 9 nouveautes
 
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
 
Qc mcorrige
Qc mcorrigeQc mcorrige
Qc mcorrige
 
POO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdfPOO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdf
 
cours1.ppt
cours1.pptcours1.ppt
cours1.ppt
 
cours1.ppt
cours1.pptcours1.ppt
cours1.ppt
 
cours2.ppt
cours2.pptcours2.ppt
cours2.ppt
 
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
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07
 
Chap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdfChap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdf
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
 
POO - Chapitre6.pptx
POO - Chapitre6.pptxPOO - Chapitre6.pptx
POO - Chapitre6.pptx
 
chapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfchapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdf
 
Cours c++
Cours c++Cours c++
Cours c++
 
Lecture_1_Concepts-fondamentaux_P01.pptx
Lecture_1_Concepts-fondamentaux_P01.pptxLecture_1_Concepts-fondamentaux_P01.pptx
Lecture_1_Concepts-fondamentaux_P01.pptx
 

Dernier

Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeBenamraneMarwa
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 

Dernier (15)

Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étude
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 

Applications Android - cours 4 : Langage Java

  • 1. Université Constantine 2 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz – Cours 4 – Chapitre 4 : Langage Java (1/2) Programmation orienté objet Développement d’applications mobiles 2018/2019. Semestre 1
  • 2. Université Constantine 2 Etudiants concernés Faculté/Institut Département Niveau Spécialité 2018/2019. Semestre 1 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz Développement d’applications mobiles Licence 3 Technologies de l’information (TI)Nouvelles technologies IFA Licence 3 Science de l’informatique (SCI)Nouvelles technologies IFA – Cours 4 – Chapitre 4 : Langage Java (1/2) Programmation orienté objet
  • 3. Université Constantine 2 3 Prérequis Maîtrise de l’algorithmique Langage JAVA Objectifs du cours Comprendre le paradigme orienté objet Assimiler la syntaxe du langage Java Résumé © Dr. Chaouche A.-C.
  • 4. Université Constantine 2 4 Classement des langages de programmation © Dr. Chaouche A.-C. Classement TIOBE (Septembre 2018) N° Langages Types Ratio Evolution (2017) - 1 Java 17,436% +4.75% - 2 C 15,447% +8.06% +1 3 Python 7,653% +4.67% -1 4 C++ 7,394% +1.83% +1 5 VB .Net 5,308% +3.33% -1 6 C# 3,295% -1.48% -1 7 PHP 2,775% +0.57% -1 8 JavaScript 2,131% +0,11% +18 9 SQL 2,062% +2,06%
  • 5. Université Constantine 2 5 Kit de développement SDK Java (JDK) Compilateur : javac Décompilateur (Parser) : javap Générateur de documentation : javadoc Archiveur : jar Machine virtuelle Java (JVM) Interpréteur : java En utilisant le JRE (runtime) Integrated Development Environment (IDE) NetBeans, Eclipse, IntelliJ IDEA, ... Langage Java (1/2) © Dr. Chaouche A.-C.
  • 6. Université Constantine 2 6 Java existe en plusieurs éditions Java SE (standard edition) pour les applications Desktop Java ME (Micro edition) pour les applications mobiles ou embarquées Java EE (Entreprise edition) pour les applications Web Java FX, pour un environnement client riche JavaCard (OS) pour carte à puce Langage Java (2/2) © Dr. Chaouche A.-C.
  • 7. Université Constantine 2 7 JSE est l'édition maitresse de la plateforme Java d'Oracle, JSE contient les APIs de base : JFC, Swing, AWT (pour les interfaces graphiques) JAXP (pour le parsing XML) JDBC (pour la gestion des bases de données) JSE est composée de : Java Specification Requests (JSR), constituant les spécifications de la version considérée Java Development Kit (JDK) contenant les bibliothèques logicielles ; Java Runtime Environment (JRE) contenant le seul environnement d'exécution (compris de base dans le JDK) JSE : Java™ Platform, Standard Edition 8 © Dr. Chaouche A.-C.
  • 8. Université Constantine 2 8 JSE : Java™ Platform, Standard Edition 8 © Dr. Chaouche A.-C.
  • 9. Université Constantine 2 9 PascalCase MonExemple camelCase monExemple hyphen-lowercase mon-exemple HYPHEN-UPPERCASE MON-EXEMPLE snake_case mon_exemple SCREAMING_SNAKE_CASE MON_EXEMPLE dot.case mon.exemple words lowercase mon exemple Words Capitalized Mon Exemple Programmation : Convention de nommage © Dr. Chaouche A.-C.
  • 10. Université Constantine 2 10 https://en.wikipedia.org/wiki/Naming_convention_(programming)#Java http://www.jmdoudoux.fr/java/dej/chap-normes-dev.htm package.name (dot.case) ntic.licence.dam, com.google.maps ClassName (PascalCase) Activity, HttpSession methodName (camlCase) run(), getBackground() instanceVariable / localVariable (camlCase) i, myWidth, currentUser, threadList CONSTANT_NAME (SCREAMING_SNAKE_CASE) LENGTH_SHORT, DEFAULT_CONTEXT Java : Convention de nommage © Dr. Chaouche A.-C.
  • 11. Université Constantine 2 11 1. Objet et classe 2. Classe abstraite et interface 3. Héritage 4. Encapsulation 5. Surcharge 6. Redéfinition 7. Polymorphisme 8. Associations Programmation Orienté Objet © Dr. Chaouche A.-C.
  • 12. Université Constantine 2 12 Objet (Etat + Comportement) : Personnes, lieux, … Composés d’un état (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 Classe : 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 Programmation Orienté Objet © Dr. Chaouche A.-C. Objet et Classe Voiture v = new Voiture();
  • 13. Université Constantine 2 13 Programmation Orienté Objet © Dr. Chaouche A.-C. Classe et classe abstraite public class A { public String a1; package String a2; protected String a3; private String a4; public void op1() { ... } public void op2() { ... } } public abstract class A { ... public abstract void op1(); }
  • 14. Université Constantine 2 14 Programmation Orienté Objet © Dr. Chaouche A.-C. Réalisation d'une interface public interface Ia { ... public int add(int op1, int op2); } public class A implements Ia { ... public int add(int op1, int op2) { ... } } Interface : Définitions de méthodes (sans implémentation) et de valeurs constantes (classe abstraite/héritage multiple …)
  • 15. Université Constantine 2 15 Programmation Orienté Objet © Dr. Chaouche A.-C. Héritage simple de classe public class A { public int add(int op1, int op2) { ... } } public class B extends A { public int substract(int op1, int op2) { ... } }
  • 16. Université Constantine 2 16 Programmation Orienté Objet © Dr. Chaouche A.-C. Encapsulation Accesseurs : protéger l'information contenue dans un objet ne proposer que des méthodes de manipulation de cet objet (getters et setters) Modificateur Classe Package Sous-classe Partout public protected no modifier private
  • 17. Université Constantine 2 17 Programmation Orienté Objet © Dr. Chaouche A.-C. Surcharge d’une méthode public class A { ... public int add(int op1, int op2) { ... } public float add(float op1, float op2) { ... } ... } même nom de méthodes avec différents paramètres : type et/ou nombre la surcharge des operateur n’existe pas sous java
  • 18. Université Constantine 2 18 Programmation Orienté Objet © Dr. Chaouche A.-C. Redéfinition d’une méthode public class A { public int add(int op1, int op2) { ... } } public class B extends A { @Override public int add(int op1, int op2) { ... } } Ecraser dans la sous classe la définition d’une méthode de la superclasse L’annotation (mot clé spécial) : @Override
  • 19. Université Constantine 2 19 Programmation Orienté Objet © Dr. Chaouche A.-C. Polymorphisme (1/3) public class A { public int add(int op1, int op2) { ... } } A a = new B(); ok (upcasting) Attribuer à un objet d’une super-classe A une instance de la sous-classe B Cela permet de manipuler des objets sans vraiment connaître leur type Appel des méthodes polymorphiques (les méthodes redéfinis) public class B extends A { public int substract(int op1, int op2) { ... } }
  • 20. Université Constantine 2 20 Programmation Orienté Objet © Dr. Chaouche A.-C. Polymorphisme (2/3) public class A { public int add(int op1, int op2) { ... } } A a = new B(); ok (upcasting) int res1 = a.add(2,3); int res2 = a.substract(5,4); Erreur syntaxique Attribuer à un objet d’une super-classe A une instance de la sous-classe B Cela permet de manipuler des objets sans vraiment connaître leur type Appel des méthodes polymorphiques (les méthodes redéfinis) public class B extends A { public int substract(int op1, int op2) { ... } }
  • 21. Université Constantine 2 21 Programmation Orienté Objet © Dr. Chaouche A.-C. Polymorphisme (3/3) public class A { public int add(int op1, int op2) { ... } } A a = new B(); ok (upcasting) int res1 = a.add(2,3); int res2 = a.substract(5,4); Erreur syntaxique if (a instanceof B) int res3 = ((B)a).substract(5,4); ok (downcasting) Attribuer à un objet d’une super-classe A une instance de la sous-classe B Cela permet de manipuler des objets sans vraiment connaître leur type Appel des méthodes polymorphiques (les méthodes redéfinis) public class B extends A { public int substract(int op1, int op2) { ... } }
  • 22. Université Constantine 2 22 Programmation Orienté Objet © Dr. Chaouche A.-C. Associations, cardinalités et navigabilité (1/2) Associations Simple Agrégation Composition Cardinaltés one-to-one one-to-many many-to-many Navigabilité Unidirectionnelle Bidirectionnelle 1 1 1 * * * ou
  • 23. Université Constantine 2 23 Programmation Orienté Objet © Dr. Chaouche A.-C. Associations, cardinalités et navigabilité (2/2) public class A { private B rb; public void addB(B b) { this.setB(b); } public B getB() { return rb; } public void setB(B b) { this.rb = b; } } public class B { ... // La classe B ne connaît pas l'existence de la classe A } Aller plus loin : Consulter le chapitre 6 du module BDA1 de la formation STIC – Master 1
  • 24. Université Constantine 2 24 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 : classe qui ne peut être instanciée (méthodes à définir dans les sous classes) instantceof : vérifie le type de l’objet getClass() : permet de découvrir le type de l’objet Mots clés spéciaux en Java © Dr. Chaouche A.-C.
  • 25. Université Constantine 2 25 Javadoc JSE 8 : https://docs.oracle.com/javase/8/docs/api/ Outils et JDK (Java SE) : http://www.oracle.com/technetwork/java/javase/downloads/index.html Java et paradigme orienté objet : http://java.developpez.com/cours/ Associations sous Java http://laurent-audibert.developpez.com/Cours-UML/?page=diagramme-classes#L3-3 Quelques liens utiles © Dr. Chaouche A.-C.
  • 26. Université Constantine 2 26 A. Crochet-Damais, «Le Go de Google, sacré langage de l'année par Tiobe,» 10 Janvier 2017. Lien : www.journaldunet.com/solutions/dsi/1190145-go-sacre- langage-de-l-annee-par-tiobe/. The Eclipse Foundatio, «Eclipse Oxygen,» Juin 2017. Lien : http://www.eclipse.org/. Oracle Corporation, «NetBeans IDE - The Smarter and Faster Way to Code,» 2017. Lien : https://netbeans.org/features/index.html. JetBrains, «Intellij IDEA,» 2017. Lien : https://www.jetbrains.com/idea/. J.-M. Doudoux, «Développons en Java - Des normes de développement,» 2016. Lien : https://www.jmdoudoux.fr/java/dej/chap-normes-dev.htm. P. Valicov, «Bases de la conception orientée objet - Concepts objet (Diagrammes de Classes),» 2017. Lien : http://pageperso.lif.univ- mrs.fr/~petru.valicov/Cours/M2104/Diagrammes_classes_x4.pdf. S. Laporte, «Les relations entre classes,» 2017. Lien : http://stephanie.laporte.pagesperso- orange.fr/Pdf/LES%20RELATIONS%20ENTRE%20OBJETS.htm. Références © Dr. Chaouche A.-C.