Cour Poo
Cour Poo
Cour Poo
Année : 2023/2024
Plan du Module
1.Introduction à la Programmation Orientée Objet
2.Classes et Objets
3.Héritage, polymorphisme et Abstraction
4.Interface, implémentation et Paquetage
5.Classes Courantes en Java
6.Gestion des Exceptions
7.Interfaces graphiques
2
A propos du cours
Ce cours est conçu comme une introduction à la programmation orientée objet.
http://www.ibiblio.org/pub/docs/books/eckel/
Idée
Génie logiciel
Paradigmes des langages de programmation
Il existe 4 principaux paradigmes de programmation:
La programmation impérative (procédurale): Pascal, C, Fortran.
(programme = algorithme + structure de données).
La programmation fonctionnelle : (adopte une approche beaucoup plus
mathématique de la programmation) Lisp, Scheme, Haskell.
La programmation logique : (la description d’un programme est sous
forme de prédicats) Prolog, GHC.
La programmation Orientée Objet : Python, C++, Java, C#
Paradigmes des langages de programmation
Comment
programmer ce
logiciel ? Procédure et fonction
Programmation
Orientée objet
Classe / objets
logiciel
Paradigmes des langages de programmation
Dans la programmation Dans La programmation
procédurale orientée objet
• On apprend à subdiviser un problème en • Un programme informatique est considéré
une série d’étapes simples (des fonctions) comme étant un ensemble d’objets
permettant de résoudre un problème. fonctionnant ensemble pour effectuer une
tâche.
• D’abord, on décide de la manière dont on
va manipuler les données, ensuite le type • On s’intéresse d’abord aux données, avant de
de structures de données les plus déterminer l’algorithme qui sera utilisé pour
appropriées pour faciliter cette opérer sur ces données.
manipulation.
• Les objets coopèrent par envois de messages
• Donne des logiciels difficiles à maintenir et (Appel de méthodes)
à réutiliser
Paradigmes des langages de programmation
Programmation Procédurale
Programme principal
- données
Fonction() Fonction()
- données
objet
objet
objet
données
données
données
Fonction()
Fonction()
Fonction()
objet
objet objet
données
données données
Fonction()
Fonction() Fonction()
La programmation Orienté objet
Définition:
La POO est une méthode d’implémentation dans laquelle les
programmes sont organisés sous formes de collections coopératives
d’objets, dont chacun représente une instance d’une classe
quelconque et dont toutes les classes sont membres d’une hiérarchie
de classes unis à travers des relations d’héritage.
La programmation Orienté objet
Un algorithme dans l’approche orienté objet sera
essentiellement vu comme un ensemble d’objets auxquels
l’utilisateur envoie des messages et qui s’en envoient pendent le
fonctionnement. Ces objets seront toujours pour l’utilisateur des boites
noires et qui contiendront des variables locales, inconnues de
l’environnement, et qui ne s’y intéressera d’ailleurs pas. Le seul moyen
d’accéder à ces objets sera l’envoie des messages qu’ils sont
capables de comprendre.
C’est quoi un Objet ?
L’objet est une entité logicielle qui représente la brique de base de la
POO:
L’objet se caractérise par :
1. Une identité (référence ou handle)
2. Un état.
3. Un comportement.
C’est quoi un Objet ?
Dans le monde réel, un objet peut être: un étudiant, un enseignant, un
téléphone, une voiture, etc.
Exemple: Une voiture
L’état = Nom, Marque, type, nombre de vitesses, Année, couleur,…
Le comportement = rouler, tourner, accélérer, changer de vitesse,
freiner,…
C’est quoi un Objet ?
Exemple: Un rectangle est défini par:
(X ,Y) Longueur
Largeur Couleur
Nom
Champs
Méthode
Classe et objet
La classe est la machine qui fabrique les objets. Elle peut être considérée
comme un moule ou un modèle à partir duquel on peut créer des objets.
Une classe est un modèle de définition pour des objets partageant des
caractéristiques communes, mais l'état de chaque objet est indépendant des
autres
Des objets créés à partir de la même classe auront des aspects semblables
(mêmes attributs et même méthodes).
Un objet d’une classe est aussi appelé instance de cette classe.
Classe et objet
Exemple
La classe
Les objets
(instances)
Classe et objet Etudiant
Boolean Etudier()
Boolean Transférer()
E3:Etudiant
E1:Etudiant E2:Etudiant
• Les objets d’une même classe ont toujours une identité distincte et
généralement un état distinct.
Concepts de base de la POO
La Programmation orienté Objet (POO) est basée sur les concepts
suivants:
• L’encapsulation
• L’héritage
• Le polymorphisme
L’encapsulation
L’encapsulation est un principe clé dans la POO.
Cela signifie qu’il n’est pas possible d’agir directement sur les données
d’un objet ; il est nécessaire de passer par ses méthodes.
La super-classe ou bien
la classe de base (mère)
En POO, cela peut s’appliquer aussi bien aux objets qu’aux méthodes.
Le Polymorphisme
Polymorphisme d’objets
Il permet une certaine flexibilité dans la manipulation des objets en exploitant la
relation d’héritage entre les classes.
Il applique la règle suivante :
Si la classe B est dérivée de la classe A
alors un objet de la classe B peut aussi être considéré comme étant un objet de la
classe A.
Le Polymorphisme
Polymorphisme de méthodes, Il exprime le fait que :
Des méthodes d’une même classe puissent avoir le même nom et des
signatures différentes (ceci est appelé surcharge ou surdéfinition de
méthodes)
La même méthode peut se comporter différemment sur différentes classes de
la hiérarchie. Autrement dit, des méthodes peuvent avoir des noms
similaires dans une hiérarchie de classes et être différentes. Ceci est
appelé redéfinition ou spécialisation de méthodes.
Le Polymorphisme
Exemple
Quel type de
polymorphisme?
Domaine: MI 2ième Année Licence Académique
Filière: Informatique Spécialité: systèmes Informatiques
Semestre: 5
Année : 2023/2024
Cours précédent
Présentation du paradigme de programmation orienté objet.
Quelques concepts de base:
• Encapsulation.
• Héritage.
• Polymorphisme.
Encapsulation
Encapsulation: est concept de base la POO. Elle consiste à regrouper des
données (attributs) et un comportement (méthodes) dans une même classe et à
réglementer l’accès aux données de l’extérieur (par d’autres objets).
+initialiser ()
+déplacer() Méthodes
+afficher()
La notion de classe (2)
• La classe peut être considérée comme un moule ou un modèle à partir duquel on peut
créer des objets.
• Un ensemble d’objets ayant les mêmes caractéristiques et les mêmes comportements
appartient à la même classe:
Tous les livres appartiennent à la classe livre.
Tous les étudiants appartiennent à la classe étudiant
• Une classe ne peut pas être utilisée pour exécuter des programmes. Pour cela il faut
l’instancier (créer des objets).
• La classe sert simplement à décrire la structure des objets (leurs attributs et leurs
méthodes)
La notion de classe (3)
Supposons qu’un point est représenté par deux coordonnées entières:
abscisse et ordonnée.
Nous devons donc définir deux attributs dans la classe Point: X et Y
Supposons que nous souhaitons pouvoir:
• Initialiser les coordonnées d’un point.
• Déplacer ce point dans le plan.
• Afficher les coordonnées de ce point.
Nous devons donc disposer de trois méthodes dans la classe Point :
• Initialiser . déplacer . afficher
La notion de classe (4)
Définition d’une classe Point (code en Java)
Le modèle général de définition d’une classe en Java est :
class Point
{
// instructions de définition des champs et des méthodes de la classe
}
La notion de classe (5)
Les Attributs
• Les attributs sont les données de la classe.
• Un attribut peut être:
• de type élémentaire: entier (byte, short, int, long), réel (float, double), booléen,
caractère.
• de type objet:
• Les déclarations des attributs peuvent se faire n’importe où à l’intérieur de la classe,
mais en général on les déclare au début ou à la fin de la classe.
Point Cercle
-X:int
Composition - centre:Point
-Y:int - rayon:double
+initialiser ()
+déplacer() +déplacer()
+afficher() +afficher()
La notion de classe (6)
Définition des attributs de la classe Point (code en Java)
class Point {
private int x; // abscisse
private int y; // ordonnée
// définition des méthodes
}
Le mot clé private précise que les champs x et y ne sont pas accessibles de l’extérieur de
la classe (c à d en dehors de ses propres méthodes). A l’opposé on utilise le mot clé public.
La notion de classe (7)
Les méthodes(1)
• Une méthode est un regroupement d’instructions semblable aux fonctions et procédures sauf
qu’elle s’exécute toujours sur un objet précis.
• Seules les méthodes de la classe ont droit à l’accès aux attributs (privés) de cette classe.
• Une méthode peut être:
• publique: accessible en dehors de la classe (les autres objets)
c.à.d. visible dans l’interface.
• privée: nécessaire à l’implémentation interne de la classe mais n’est pas visible dans
l’interface.
La notion de classe (8)
Les méthodes (2)
• Les méthodes ont toujours un type retourné « TypeRetourné ».
• Le TypeRetourné indique le type de la valeur que la méthode « retourne » quand on l’invoque.
• C’est le TypeRoutourné est void signifie que la méthode ne retourne rien (pas de return à la
fin, équivalent au procédure)
• Elle peut recevoir un ou plusieurs arguments entre parenthèses, qu’elle utilisera en cours de
son exécution.
• La signature d’une méthode:
• Le nom de la méthode.
• La liste des types de ses arguments.
•Pour invoquer une méthode, il faut toujours respecter
La notion de classe (9)
Définition des méthodes de la classe Point (code en Java)
Nom de la
Mode d’accès méthode
• Dans nos programmes Java nous allons définir des classes et instancier ces classes en des
objets qui vont interagir. Le fonctionnement du programme résultera de l’interaction entre ces
objets « instanciés ».
Nom_de_la_classe identificateur;
• L’objet obéira à la structure définie dans la classe, c’est-à- dire qu’il aura les attributs et le
comportement définis dans la classe. Cela nécessite la réservation d’un espace mémoire
pour la mémorisation de l’état.
Les constructeurs (2)
• Le constructeur sert souvent à initialiser les différents attributs de l’objet.
• Le constructeur est exécuté à la création de l’objet.
• C’est souvent la méthode la plus surchargée de la classe.
• Une version par défaut est toujours fournie par les langages de programmation (Si le
développeur ne définit aucun constructeur, c’est le constructeur par défaut qui est exécuté).
p1 = new Point ();
• Dès qu’une classe possède au moins un constructeur, le constructeur par défaut ne peut
plus être utilisé . Sauf si un constructeur sans arguments a été définit.
Les constructeurs (3)
Retour à l’exemple: Classe Point
Les constructeurs (4)
Retour à l’exemple: Classe Point
Les constructeurs (5)
Retour à l’exemple: Classe Point
Le Destructeur
Le destructeur est aussi une méthode spéciale de la classe mais qui est exécutée à la mort
de l’objet.
Pour libérer l'espace mémoire occupé par l'objet un destructeur est invoqué (finaliseurs :
finalizers en java).
Java assure la gestion automatique de la mémoire à travers le ramasse-miettes (Garbage
Collector en anglais) qui fonctionne selon le principe suivant:
A tout instant, on connait le nombre de références à un objet.
Lorsqu’un objet n’est plus référencé (il n’existe aucune référence sur lui), on est certain
que le programme ne pourra plus y accéder. Il est donc possible de libérer
l’emplacement correspondant
Le référent d’un objet (1)
Chaque objet doit avoir un nom (référent) « qui lui est propre » pour l’identifier.
La référence(handler) permet d’accéder à l’objet, mais n’est pas l’objet lui-même. Elle
contient l’adresse de l’emplacement mémoire dans lequel est stocké l’objet.
La référence est, en quelque sorte, un pointeur sur l’espace mémoire allouer pour stocker
l’état de l’objet.
Le référent d’un objet (2)
Premier exemple
Le référent d’un objet (3)
Premier exemple: Affectation d’objets
Le référent d’un objet (4)
Premier exemple: Affectation d’objets
Le référent d’un objet (5)
Premier exemple: Comparaison d’objets
L’auto-reférence
• Dans le traitement de l’une de ses méthodes un objet peut avoir à s’envoyer un message
(pour accéder à un de ses attributs ou invoquer une de ses méthodes).
Pour cela, il utilise le mot clé this.
• L’utilisation du mot clé this permet aussi d’éviter l’ambiguité.
• Si pas d’ambiguité, this peut être omis :
Exemple: le constructeur Point
Eléments de conception de classes (1)
Parmi les méthodes que comporte une classe, on distingue:
• Les constructeurs
• Les méthodes d’accès ou bien les accesseurs (Accessor, Getter): fournissent les valeurs de
certains champs privés sans les modifier.
Souvent on utilisent des noms de la forme getXXX
• Les méthodes d’altération ou bien les mutateurs (Mutator,Setter): Modifient les valeurs de
certains champs privés.
Souvent on utilise des noms de la forme setXXX .
Eléments de conception de classes (2)
Pour une bonne conception de vos classes, il existe quelques règles qui ne sont pas
obligatoires mais qu’il est vivement conseillé de suivre.
1. Respecter le principe d’encapsulation en déclarant tous les champs (attributs) privés.
2. S’appuyer sur la notion de contrat qui considère qu’une classe est caractérisée par :
1. Les entêtes de ses méthodes publiques (interface)
2. Les comportements de ces méthodes.
3. Le reste (champs, méthodes privées et corps ) est appelé implémentation et doit rester privé.
4. Le contrat définit ce que fait la classe, alors que l’implémentation décrit comment elle le fait.
Les modificateurs d’accès (1)
• La déclaration d'une classe, d'une méthode ou d'un attribut peut être précédée par un
modificateur d'accès (visibilité).
• Un modificateur indique si les autres classes de l'application pourront accéder ou non à l’item
qui peut être une classe, une méthode ou un attribut.
• L'utilisation des modificateurs permet au programmeur de contrôler la visibilité des différents
items et permet d'empêcher que des actions illégales soient effectuées sur les items.
Les modificateurs d’accès (2)
• Parmi les modificateurs :
• public : toutes les classes peuvent accéder à l'item. La déclaration de variables publiques est
contraire au principe d'encapsulation.
• protected : seules les classes dérivées et les classes du
même package peuvent accéder à l'item.
• private: un item private (privé) est accessible uniquement au sein de la classe dans laquelle il
est déclaré. Ces éléments ne peuvent être manipulés qu'à l'aide de méthode spécifiques
appelés accesseur et mutateur
• (par défaut) : sans modificateur d'accès, seules les classes du même package peuvent
accéder à l'item.
Champs et méthodes de classe
• À l’instanciation d’un objet, On lui crée un exemplaire de chaque champs.
• On peut définir des champs qui n’existent qu’en un seul exemplaire pour toutes les
instances d’une même classe (donnée globale partagée par tous les objets de la classe).
• Ces champs sont appelés champs de classe ou champs statiques
• De même, on peut définir des méthodes de classe (ou statiques) qui peuvent être appelée
indépendamment de tout objet
Champs et méthodes de classe
Champs de classe
Exercice: On désire utiliser la classe Point pour créer des points à volonté, mais on veut savoir
le nombre de points créés. Classe Point
X
Y
Que faut il faire ?
nbpoints
déplacer()
afficher()
Champs et méthodes de classe
Champs de classes: Solution
Champs et méthodes de classe
Méthodes de classe
• Une méthode de classe a un rôle indépendant d’un quelconque objet. C’est le cas par
exemple d’une méthode qui agit uniquement sur les champs de classe
• En java, on utilise là encore, le mot clé static.
• Une méthode de classe ne peut en aucun cas agir sur des champs usuels (non static)
puisqu’elle n’est liée à aucun objet en particulier
Champs et méthodes de classe
Méthodes de classe: retour à l’exemple Point
Champs et méthodes de classe
Méthodes de classe: retour à l’exemple Point
Champs et méthodes de classe
Exercice: Quelles erreurs ont été commises dans ce code ?
Champs et méthodes de classe
Solution
l’affectation q=n est incorrecte, car La méthode statique f de A ne peut pas agir
sur un champ non statique ;
Dans la méthode main, l’appel a.f(n) se réfère à un objet, ce qui est
inutile mais toléré. Il serait cependant préférable de l’écrire A.f(n).
l’appel f(n) est incorrect puisqu’il n’existe pas de méthode f dans la classe
EssaiA1. Il est probable que l’on a voulu écrire A.f(n).
Surcharge de méthode (1)
• On parle de surcharges (ou surdéfinition) lorsqu’un symbole possède plusieurs
significations entre lesquelles on choisit en fonction du contexte.
• En java, il est possible de surcharger les méthodes d’une classe y compris celles qui sont
statiques (méthode avec static). Plusieurs méthodes peuvent porter le même nom à
condition que le nombre et le type de leurs arguments permettent au compilateur d’effectuer
son choix,
Surcharge de méthode (2)
Règles générales
A la rencontre d’un appel de méthode, le compilateur cherche toutes les méthodes acceptables
et choisit la meilleure si elle existe.
Pour qu’une méthode soit acceptable il faut:
Qu’elle dispose du nombre d’arguments voulus
Que les types des arguments effectifs (valeur fournie lors de l'appel) soit compatible avec
les types des arguments muets
Qu’elle soit accessible (une méthode privée ne sera pas acceptable à l’extérieur de la
classe)
Le choix de la méthode se fait comme suit:
Si aucune méthode n’est acceptable Erreur de compilation
Si une seule méthode est acceptable, elle sera utilisée
Si plusieurs méthodes sont acceptables, il choisit la meilleure
Si il y a ambigüité Erreur de compilation
Surcharge de méthode (3)
Exemple de surcharge d’une méthode
Surcharge de méthode (4)
Exemple de surcharge d’une méthode
Surcharge de méthode (5)
Exemple de surcharge d’une méthode
Passage de paramètres (1)
Dans les langages de programmation on rencontre deux façons d’effectuer le transfert
d’information
Par valeur: la méthode reçoit une copie de la valeur de l’argument effectif, elle travaille
sur cette copie et la modifie sans que cela ne modifie l’argument effectif
Par adresse (ou par référence): la méthode reçoit l’adresse de l’argument effectif sur
lequel elle travaille directement et peut modifier sa valeur
Java transmet toujours les informations par valeur.
Que se passe t-il dans le cas où une variable est de type objet ?
Qu’est ce qui est transmis et qu’est ce qui peut être modifié ?
Passage de paramètres (2)
Variable de type Objet
Dans le cas où la variable manipulée est de type Objet, son nom représente sa référence, donc
la méthode reçoit une copie de sa référence. La méthode peut donc modifier l’objet concerné.
Exercice: Qu'affiche le programme suivant
public class Interro {
static void f( int[] T, int x , int y) { T[0] = 7; x
= 8; y= 9;
}
}
public class Test{
public static void main(String[] args){
int[] T = new int[] {1,2,3,4};
int x = 5; int y =6; Interro.f(
T , x, y);
System.out.println( T[0]+" , "+x+", "+y);
}
}
Exemple création et utilisation d’un objet
imaginons que nous souhaitons créer une classe Cercle permettant de représenter des cercles
définis par un centre (objet de type Point) et un rayon de type flottant.
Les fonctionnalités de cette classe se limitent à :
• L’affichage des caractéristiques d’un cercle (coordonnées du point du centre et le rayon)
• Le déplacement du centre
Exemple création et utilisation d’un objet
Exemple classe cercle: code en java
Domaine: MI 2ième Année Licence Académique
Filière: Informatique Spécialité: systèmes Informatiques
Semestre: 5
Année : 2023/2024
Relation entre les classes
Héritage
Chapitre 3
La relation d’héritage:
• L’héritage constitue l’un des fondements de base de la POO.
• Il permet le partage et la réutilisation de propriétés entre les objets.
• La relation d’héritage est une relation de généralisation /spécialisation.
• L’héritage permet de définir des classes sous forme d’une hiérarchie (les
fils héritent de leurs parents).
• Une classe dérivée permet de préciser le comportement d’un sous-ensemble
d’objet.
• Une classe peut avoir plusieurs sous classes.
• Une classe ne peut avoir qu'une seule classe mère.
Intérêts de l’héritage
• Supprime les redondances dans le code.
• On peut très facilement rajouter, après coup, une classe, et ce à moindre
coup, étant donné que l'on peut réutiliser le code des classes parentes.
• Si vous n'aviez pas encore modélisé un comportement dans une classe
donnée, et que vous vouliez maintenant le rajouter, une fois l'opération
terminée, ce comportement sera alors directement utilisable dans
l'ensemble des sous-classes de celle considérée
La relation d’héritage:
La classe dérivée:
• hérite de tous les membres de sa superclasse (classe mère).
• Elle permet de les spécialiser (redéfinir).
• Elle permet d’ajouter de nouveaux attributs et/ou de nouvelles méthodes.
Dans JAVA:
• il s'agit d'indiquer, dans la sous-classe, le nom de la superclasse dont elle
hérite précéder par le mot réservé
extends
• Par défaut toutes classes Java hérite de la classe
Object.
La relation d’héritage:
Exemple:
Class Etudiant extends Personne
Class Salariée extends Personne
Class Enseignant extends Salariée
personne
String nom;
String prenom
int age
Char Sexe;
void communiquer()
void déplacer()
Salariée
double Salaire;
void Démissionner()
void Mutation()
void Consulter_comp()
Etudiant
int Matricule; Enseignant Chef_département
Boolean Etudier()
Boolean Transférer() void Enseigner() void Demander_Réunion()
Remarque: Héritage
L’héritage permet de créer une relation de type
« A est un B » ou « A est une sorte de B »
Pour créer une relation d’héritage on doit poser la question ?
Est-ce que A est une sorte de B ?
Est-ce que A est un B ?
Exemple:
Est-ce que Etudiant est une Personne ?
Est-ce que Salariée est une Personne ?
Est-ce que Enseignant est une Salariée ?
Est-ce que Chef_département est une Salariée ?
Remarque: Héritage
Supposons que nous disposons de la classe Point et nous souhaitons
créer une classe PointCol afin de manipuler des points colorés dans un
plan.
Héritage
Supposons que nous disposons de la classe Point et nous souhaitons
créer une classe PointCol afin de manipuler des points colorés dans un
plan.
X Erreur
Exercice:
Trouvez et corriger les sept (07) erreurs pour que ce
programme fonctionne
Solution :
Soit une méthode F () définie dans A et redéfinie dans les classes
C et D
Poly: Plusieurs
Signifier Plusieurs
Polymorphisme Formes
Morphe: Forme
Up Casting
Explicite
Polymorphisme Implicite
Down Casting
Explicite
Child
Child
Child
Polymorphisme Down Casting
Exemple:
Animal
a
b
Oiseaux Chien Serpent
b
Oiseaux Chien Serpent
toString() renvoie:
•Description de l’objet sous la forme d’une chaîne de caractères
•Nom de la classe, suivie de "@" et de la valeur de la méthode
hashcode():
•hashcode() renvoie la valeur hexadécimale de
l’adresse mémoire de l’objet
equals() : comparaison de l’objet courant avec un autre
La class Objet méthode toString() et hashcode()
Exemple:
Domaine: MI 2ième Année Licence Académique
Filière: Informatique Spécialité: systèmes Informatiques
Semestre: 5
Année : 2023/2024
Classes abstraites et Interfaces
Chapitre 4
Classes abstraites
Méthode abstraite
au lieu de
pour l’utiliser
redéfinitions.
Classes interfaces
Classe interface
• Une classe déclare comme interface est une cas particulier d’une classe
abstraite
C’est-à-dire:
lieu de « extends »
Remarque
abstraites.
abstract
Rappel
de modéliser le logiciel.
multiplicité
Direction
1
0..1
0..∗
1..∗
n..m
Association
Association bidirectionnelle
Association unidirectionnelle
Correspondance UML /JAVA
Correspondance UML /JAVA
Exercice
compléter l’association suivante:
Travailler
Lien entre les classes
Agrégation
Agrégation
Année : 2023/2024
Classe en Java
Chapitre 5
Classe String
s.equals(Object o)
a été redéfinit et renvoie true si l'objet donné "o" représente
une chaîne équivalente à celle de "s" , false sinon.
s.length()
Renvoie la longueur de la chaîne s
s.charAt(int index)
renvoie le caractère qui occupe la position index.
Le premier caractère occupe la position 0 et
Le dernier caractère occupe la position length() – 1 :
Classe StringBuffer
Exemple
StringBuffer sb = new StringBuffer();
sb.append("Cours "); sb.append("de "); sb.append(" POO.");
Définition
Une collection est un objet qui contient d’autres objets
Exemple
Un tableau est une collection
Classes
• AbstractCollection,ArrayList,Arrays, Collections, HashSet,
LinkedList, TreeSet, Vector…
Interfaces
• List, Map, Set, SortedMap, SortedSet
Description
• ArrayList fournit un tableau dynamique et
• spécifieAbstractList et implémente List.
Déclaration
public classArrayList<E> extendsAbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
ArrayList
Quelques caractéristiques
Il y a des constructeurs :
ArrayList()
ArrayList(int initialCapacity)
Exemple
if (! tableauEtudiants.isEmpty()) {
for (int i = 0; i< tableauEtudiants.size();i++)
System.out.println(((Etudiant) tableauEtudiants.get(i)).getNom());
tableauEtudiants.remove(1);}
}
ArrayList
tableauEtudiants.remove(1);}
}
ArrayList
Boucles
Exemple
Boucle for-each
Exemple
Boucle for-each
for (Etudiant e : tableauEtudiants)
System.out.println( e.getNom());
ArrayList
Exercice