SlideShare une entreprise Scribd logo
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 mobiles
Ahmed-Chawki Chaouche
 
Applications Android - cours 10 : Vues à adaptateur
Applications Android - cours 10 : Vues à adaptateurApplications Android - cours 10 : Vues à adaptateur
Applications Android - cours 10 : Vues à adaptateur
Ahmed-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 SQLite
Ahmed-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 ambiante
Ahmed-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 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
Thierry Leriche-Dessirier
 
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
Laurent BUNIET
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
Yassine Badri
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
ENSET, Université Hassan II Casablanca
 

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 services
Yann 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.2
Laurent BUNIET
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
slimyaich3
 
Java version 11 - les 9 nouveautes
Java version 11 -  les 9 nouveautesJava version 11 -  les 9 nouveautes
Java version 11 - les 9 nouveautes
Abdenour Bouateli
 
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
ENSET, Université Hassan II Casablanca
 
POO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdfPOO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdf
YasushiTsubakik
 
cours1.ppt
cours1.pptcours1.ppt
cours1.ppt
RihabBENLAMINE
 
cours2.ppt
cours2.pptcours2.ppt
cours2.ppt
asmachehbi
 
cours1.ppt
cours1.pptcours1.ppt
cours1.ppt
ssuser07fc08
 
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
Didier Plaindoux
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
Aziz Darouichi
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07
haythem_2015
 
Chap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdfChap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdf
ramadanmahdi
 
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
ENSET, Université Hassan II Casablanca
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
Asmaa BENGUEDDACH
 
POO - Chapitre6.pptx
POO - Chapitre6.pptxPOO - Chapitre6.pptx
POO - Chapitre6.pptx
RAYENBOUAFIF1
 
chapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfchapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdf
Moez Moezm
 
Cours c++
Cours c++Cours c++
Cours c++
Nahla BelHaj
 
Lecture_1_Concepts-fondamentaux_P01.pptx
Lecture_1_Concepts-fondamentaux_P01.pptxLecture_1_Concepts-fondamentaux_P01.pptx
Lecture_1_Concepts-fondamentaux_P01.pptx
BtnPrinciiIsral
 

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
 
cours2.ppt
cours2.pptcours2.ppt
cours2.ppt
 
cours1.ppt
cours1.pptcours1.ppt
cours1.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

Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Oscar Smith
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
Friends of African Village Libraries
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
Moukagni Evrard
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
sewawillis
 
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Yuma91
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
MelDjobo
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
cristionobedi
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
mrelmejri
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
Txaruka
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
WarlockeTamagafk
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 

Dernier (12)

Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
 
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
 

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.