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 (2/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
Utiliser la bibliothèque de Java SE
Etendre la classe Object
Manipuler les collections en Java
Résumé
© Dr. Chaouche A.-C.
Université Constantine 2 4
En Java, toutes les classes héritent de la classe Object
Méthodes de la classe Object
Classe Object en Java
© Dr. Chaouche A.-C.
String toString() // représente l’objet en String
boolean equals(Object obj) // compare deux objets
Object clone() // duplique l’objet
int hashCode() // calcule un code unique
void finalize() // sert au garbage collector
Class<?>getClass() // retourne le nom de la classe
void wait() //
void notify() // servent à la concurrence des threads
void notifyAll() //
Université Constantine 2 5
Classe Object en Java
© Dr. Chaouche A.-C.
Redéfinition de la méthode toString()
A obj1 = new A("a1", "a2", "a3", "a4");
System.out.println(obj1);
Université Constantine 2 6
Classe Object en Java
© Dr. Chaouche A.-C.
Redéfinition de la méthode toString()
A obj1 = new A("a1", "a2", "a3", "a4");
System.out.println(obj1); // -> example.com.A@659e0bfd
Université Constantine 2 7
Classe Object en Java
© Dr. Chaouche A.-C.
Redéfinition de la méthode toString()
A obj1 = new A("a1", "a2", "a3", "a4");
System.out.println(obj1); // -> example.com.A@659e0bfd
System.out.println(obj1); // -> (a1,a2,a3,a4)
public class A {
...
@Override
public String toString() {
return "(" + a1 + "," + a2 + "," + a3 + "," + a4
+ ")";
}
}
Université Constantine 2 8
Classe Object en Java
© Dr. Chaouche A.-C.
Redéfinition de la méthode equals()
A obj1 = new A("a1", "a2", "a3", "a4");
A obj2 = new A("a1", "a2", "a3", "a4");
obj1.equals(obj2);
Université Constantine 2 9
Classe Object en Java
© Dr. Chaouche A.-C.
Redéfinition de la méthode equals()
A obj1 = new A("a1", "a2", "a3", "a4");
A obj2 = new A("a1", "a2", "a3", "a4");
obj1.equals(obj2); // -> false
Université Constantine 2 10
Classe Object en Java
© Dr. Chaouche A.-C.
Redéfinition de la méthode equals()
A obj1 = new A("a1", "a2", "a3", "a4");
A obj2 = new A("a1", "a2", "a3", "a4");
obj1.equals(obj2); // -> false
obj1.equals(obj2); // -> true
public class A {
@Override
public boolean equals(Object o) {
A obj = (A) o;
return (a1.equals(obj.a1) && a2.equals(obj.a2)
&& a3.equals(obj.a3) && a4.equals(obj.a4));
}
}
Université Constantine 2 11
Classe Object en Java
© Dr. Chaouche A.-C.
Redéfinition de la méthode clone()
A obj1 = new A("a1", "a2", "a3", "a4");
A obj2 = obj1;
obj2.a1 = "b1";
System.out.println(obj1);
System.out.println(obj2);
Université Constantine 2 12
Classe Object en Java
© Dr. Chaouche A.-C.
Redéfinition de la méthode clone()
A obj1 = new A("a1", "a2", "a3", "a4");
A obj2 = obj1;
obj2.a1 = "b1";
System.out.println(obj1); // -> (b1,a2,a3,a4)
System.out.println(obj2); // -> (b1,a2,a3,a4)
Université Constantine 2 13
Classe Object en Java
© Dr. Chaouche A.-C.
Redéfinition de la méthode clone()
A obj1 = new A("a1", "a2", "a3", "a4");
A obj2 = obj1;
obj2.a1 = "b1";
System.out.println(obj1);
System.out.println(obj2);
A obj2 = obj1.clone();
obj2.a1 = "b1";
System.out.println(obj1); // -> (a1,a2,a3,a4)
System.out.println(obj2); // -> (b1,a2,a3,a4)
public class A {
@Override
public Object clone() {
return new A(a1, a2, a3, a4);
}
}
Université Constantine 2 14
Structure de données permettant de regrouper un ensemble d’objets
Peut être typée ou non typée
Types de collections :
Interface java.util.Set<T> :
Collection non ordonnée
Pas de doublons
Classes : HashSet<T>, TreeSet<T>
Interface java.util.List<T> :
Collection ordonnée/séquences
L’accès par indice
Autorisation des doublons
Classes : Vector<T>, ArrayList<T>, LinkedList<T>
Les collections en Java
© Dr. Chaouche A.-C.
Université Constantine 2 15
Type de collection qui associe une clé unique K à une valeur V
Chaque clé ne peut correspondre qu’à une valeur au plus
Interface java.util.Map<K,V>
Classes : HashMap<K,V>, TreeMap<K,V>
Les dictionnaires en Java
© Dr. Chaouche A.-C.
Université Constantine 2 16
Hiérarchie des collections
© Dr. Chaouche A.-C.
Université Constantine 2 17
Méthodes de la classe ArrayList<T> (1/2)
© Dr. Chaouche A.-C.
boolean add(T e)
void add(int index, T element)
boolean addAll(Collection<? extends T> c)
T remove(int index)
boolean remove(Object o)
boolean removeAll(Collection<?> c)
T get(int index)
T set(int index, T element)
int indexOf(Object o)
void clear()
boolean contains(Object o)
int size()
boolean isEmpty()
Université Constantine 2 18
Méthodes de la classe ArrayList<T> (2/2)
© Dr. Chaouche A.-C.
boolean addAll(int index, Collection<? extends T> c)
void removeRange(int fromIndex, int toIndex)
void ensureCapacity(int minCapacity)
int lastIndexOf(Object o)
Iterator<T> iterator()
ListIterator<T> listIterator()
boolean retainAll(Collection<?> c)
List<T> subList(int fromIndex, int toIndex)
Object[] toArray()
T[] toArray(T[] a)
void trimToSize()
...
Université Constantine 2 19
La classe Object :
http://blog.paumard.org/cours/java/chap03-object-string-object.html
Les collections :
https://www.jmdoudoux.fr/java/dej/chap-collections.htm#collections-3
Quelques liens utiles
© Dr. Chaouche A.-C.
Université Constantine 2 20
Oracle, «Javadoc - Class Object,» Lien :
https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html.
J. Paumard, «Java en ligne - Chapitre 3 : La classe Object,» 2016. Lien :
http://blog.paumard.org/cours/java/chap03-object-string-object.html.
Oracle, «Javadoc - Interface Collection<E>,» Lien :
https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html.
Oracle, «Javadoc - Interface Map<K,V>,» Lien :
https://docs.oracle.com/javase/7/docs/api/java/util/Map.html.
Oracle, «Javadoc - Class ArrayList<E>,» Lien :
https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html.
Nitin, «Java Interview Reference Guide – Collection Framework,» 18 Juillet 2014.
Lien : https://tutorials.techmytalk.com/2014/07/18/java-interview-reference-
guide-collection-framework/.
Références
© Dr. Chaouche A.-C.
Université Constantine 2 21
Chapitre 5 : Structure d’un projet
Objectifs :
Savoir organiser une application
Comprendre le cycle de vie d’une activité
Associer une vue à l’activité en gérant ses ressources (tailles des écrans
et internationalisation)
Prochain chapitre
© Dr. Chaouche A.-C.

Contenu connexe

Tendances

Applications Android - cours 8 : Gestion des évènements
Applications Android - cours 8 : Gestion des évènementsApplications Android - cours 8 : Gestion des évènements
Applications Android - cours 8 : Gestion des évènements
Ahmed-Chawki Chaouche
 
Applications Android (Planning)
Applications Android (Planning)Applications Android (Planning)
Applications Android (Planning)
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 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 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
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
Maya Medjdoub
 
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
 
In01 - Programmation Android - 03 - HMI
In01 - Programmation Android - 03 - HMIIn01 - Programmation Android - 03 - HMI
In01 - Programmation Android - 03 - HMI
Yann Caron
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
coursuniv
 
Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5
Laurent BUNIET
 
Trivial Java Second
Trivial Java SecondTrivial Java Second
Trivial Java Second
Katia Aresti
 
Td serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritageTd serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritageAmel Morchdi
 
L’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacketL’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacket
Stéphane Legrand
 
Programmation Android - 09 - Web services
Programmation Android - 09 - Web servicesProgrammation Android - 09 - Web services
Programmation Android - 09 - Web services
Yann Caron
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
Yassine Badri
 
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
 

Tendances (16)

Applications Android - cours 8 : Gestion des évènements
Applications Android - cours 8 : Gestion des évènementsApplications Android - cours 8 : Gestion des évènements
Applications Android - cours 8 : Gestion des évènements
 
Applications Android (Planning)
Applications Android (Planning)Applications Android (Planning)
Applications Android (Planning)
 
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 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobiles
 
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
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
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)
 
In01 - Programmation Android - 03 - HMI
In01 - Programmation Android - 03 - HMIIn01 - Programmation Android - 03 - HMI
In01 - Programmation Android - 03 - HMI
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5
 
Trivial Java Second
Trivial Java SecondTrivial Java Second
Trivial Java Second
 
Td serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritageTd serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritage
 
L’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacketL’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacket
 
Programmation Android - 09 - Web services
Programmation Android - 09 - Web servicesProgrammation Android - 09 - Web services
Programmation Android - 09 - Web services
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
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
 

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
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Formation
 
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
 
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
 
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
 
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
 
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
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
IES Turina/Rodrigo/Itaca/Palomeras
 
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
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
Txaruka
 

Dernier (13)

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
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
 
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
 
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...
 
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
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
 
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
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
 
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
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
 

Applications Android - cours 5 : Classe Object et Collections en Java

  • 1. Université Constantine 2 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz – Cours 4 – Chapitre 4 : Langage Java (2/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 Utiliser la bibliothèque de Java SE Etendre la classe Object Manipuler les collections en Java Résumé © Dr. Chaouche A.-C.
  • 4. Université Constantine 2 4 En Java, toutes les classes héritent de la classe Object Méthodes de la classe Object Classe Object en Java © Dr. Chaouche A.-C. String toString() // représente l’objet en String boolean equals(Object obj) // compare deux objets Object clone() // duplique l’objet int hashCode() // calcule un code unique void finalize() // sert au garbage collector Class<?>getClass() // retourne le nom de la classe void wait() // void notify() // servent à la concurrence des threads void notifyAll() //
  • 5. Université Constantine 2 5 Classe Object en Java © Dr. Chaouche A.-C. Redéfinition de la méthode toString() A obj1 = new A("a1", "a2", "a3", "a4"); System.out.println(obj1);
  • 6. Université Constantine 2 6 Classe Object en Java © Dr. Chaouche A.-C. Redéfinition de la méthode toString() A obj1 = new A("a1", "a2", "a3", "a4"); System.out.println(obj1); // -> example.com.A@659e0bfd
  • 7. Université Constantine 2 7 Classe Object en Java © Dr. Chaouche A.-C. Redéfinition de la méthode toString() A obj1 = new A("a1", "a2", "a3", "a4"); System.out.println(obj1); // -> example.com.A@659e0bfd System.out.println(obj1); // -> (a1,a2,a3,a4) public class A { ... @Override public String toString() { return "(" + a1 + "," + a2 + "," + a3 + "," + a4 + ")"; } }
  • 8. Université Constantine 2 8 Classe Object en Java © Dr. Chaouche A.-C. Redéfinition de la méthode equals() A obj1 = new A("a1", "a2", "a3", "a4"); A obj2 = new A("a1", "a2", "a3", "a4"); obj1.equals(obj2);
  • 9. Université Constantine 2 9 Classe Object en Java © Dr. Chaouche A.-C. Redéfinition de la méthode equals() A obj1 = new A("a1", "a2", "a3", "a4"); A obj2 = new A("a1", "a2", "a3", "a4"); obj1.equals(obj2); // -> false
  • 10. Université Constantine 2 10 Classe Object en Java © Dr. Chaouche A.-C. Redéfinition de la méthode equals() A obj1 = new A("a1", "a2", "a3", "a4"); A obj2 = new A("a1", "a2", "a3", "a4"); obj1.equals(obj2); // -> false obj1.equals(obj2); // -> true public class A { @Override public boolean equals(Object o) { A obj = (A) o; return (a1.equals(obj.a1) && a2.equals(obj.a2) && a3.equals(obj.a3) && a4.equals(obj.a4)); } }
  • 11. Université Constantine 2 11 Classe Object en Java © Dr. Chaouche A.-C. Redéfinition de la méthode clone() A obj1 = new A("a1", "a2", "a3", "a4"); A obj2 = obj1; obj2.a1 = "b1"; System.out.println(obj1); System.out.println(obj2);
  • 12. Université Constantine 2 12 Classe Object en Java © Dr. Chaouche A.-C. Redéfinition de la méthode clone() A obj1 = new A("a1", "a2", "a3", "a4"); A obj2 = obj1; obj2.a1 = "b1"; System.out.println(obj1); // -> (b1,a2,a3,a4) System.out.println(obj2); // -> (b1,a2,a3,a4)
  • 13. Université Constantine 2 13 Classe Object en Java © Dr. Chaouche A.-C. Redéfinition de la méthode clone() A obj1 = new A("a1", "a2", "a3", "a4"); A obj2 = obj1; obj2.a1 = "b1"; System.out.println(obj1); System.out.println(obj2); A obj2 = obj1.clone(); obj2.a1 = "b1"; System.out.println(obj1); // -> (a1,a2,a3,a4) System.out.println(obj2); // -> (b1,a2,a3,a4) public class A { @Override public Object clone() { return new A(a1, a2, a3, a4); } }
  • 14. Université Constantine 2 14 Structure de données permettant de regrouper un ensemble d’objets Peut être typée ou non typée Types de collections : Interface java.util.Set<T> : Collection non ordonnée Pas de doublons Classes : HashSet<T>, TreeSet<T> Interface java.util.List<T> : Collection ordonnée/séquences L’accès par indice Autorisation des doublons Classes : Vector<T>, ArrayList<T>, LinkedList<T> Les collections en Java © Dr. Chaouche A.-C.
  • 15. Université Constantine 2 15 Type de collection qui associe une clé unique K à une valeur V Chaque clé ne peut correspondre qu’à une valeur au plus Interface java.util.Map<K,V> Classes : HashMap<K,V>, TreeMap<K,V> Les dictionnaires en Java © Dr. Chaouche A.-C.
  • 16. Université Constantine 2 16 Hiérarchie des collections © Dr. Chaouche A.-C.
  • 17. Université Constantine 2 17 Méthodes de la classe ArrayList<T> (1/2) © Dr. Chaouche A.-C. boolean add(T e) void add(int index, T element) boolean addAll(Collection<? extends T> c) T remove(int index) boolean remove(Object o) boolean removeAll(Collection<?> c) T get(int index) T set(int index, T element) int indexOf(Object o) void clear() boolean contains(Object o) int size() boolean isEmpty()
  • 18. Université Constantine 2 18 Méthodes de la classe ArrayList<T> (2/2) © Dr. Chaouche A.-C. boolean addAll(int index, Collection<? extends T> c) void removeRange(int fromIndex, int toIndex) void ensureCapacity(int minCapacity) int lastIndexOf(Object o) Iterator<T> iterator() ListIterator<T> listIterator() boolean retainAll(Collection<?> c) List<T> subList(int fromIndex, int toIndex) Object[] toArray() T[] toArray(T[] a) void trimToSize() ...
  • 19. Université Constantine 2 19 La classe Object : http://blog.paumard.org/cours/java/chap03-object-string-object.html Les collections : https://www.jmdoudoux.fr/java/dej/chap-collections.htm#collections-3 Quelques liens utiles © Dr. Chaouche A.-C.
  • 20. Université Constantine 2 20 Oracle, «Javadoc - Class Object,» Lien : https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. J. Paumard, «Java en ligne - Chapitre 3 : La classe Object,» 2016. Lien : http://blog.paumard.org/cours/java/chap03-object-string-object.html. Oracle, «Javadoc - Interface Collection<E>,» Lien : https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html. Oracle, «Javadoc - Interface Map<K,V>,» Lien : https://docs.oracle.com/javase/7/docs/api/java/util/Map.html. Oracle, «Javadoc - Class ArrayList<E>,» Lien : https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html. Nitin, «Java Interview Reference Guide – Collection Framework,» 18 Juillet 2014. Lien : https://tutorials.techmytalk.com/2014/07/18/java-interview-reference- guide-collection-framework/. Références © Dr. Chaouche A.-C.
  • 21. Université Constantine 2 21 Chapitre 5 : Structure d’un projet Objectifs : Savoir organiser une application Comprendre le cycle de vie d’une activité Associer une vue à l’activité en gérant ses ressources (tailles des écrans et internationalisation) Prochain chapitre © Dr. Chaouche A.-C.