1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
| import java.util.* ;
///////////////////////////
// La classe véhicule
///////////////////////////
class Vehicule {
protected String marque, modele, couleur ;
Vehicule(String marque, String mod, String coul) {
this.marque = marque ; // pour rappeler le this
modele = mod ;
couleur = coul ;
}
public void Affiche() {
System.out.println("Marque :" + marque) ;
System.out.println("Modele :" + modele) ;
System.out.println("Couleur :" + couleur) ;
}
public String getCouleur() { return couleur ; }
public String getMarque() { return marque ; }
public String getModele() { return modele ; }
}
// un choix du type de véhicule par sous-classes
class Moto extends Vehicule {
Moto(String marque, String mod, String coul) {
super(marque, mod, coul) ;
}
}
class Camion extends Vehicule {
Camion(String marque, String mod, String coul) {
super(marque, mod, coul) ;
}
}
class Auto extends Vehicule {
Auto(String marque, String mod, String coul) {
super(marque, mod, coul) ;
}
}
// Une classe qui hérite de la Classe ArrayList
class ListeVehicules extends ArrayList<Vehicule> {
public void vendre(){
System.out.println("vendre") ;
}
public void vehicule_couleur(String coul){
System.out.println("+++++++++++++++++") ;
System.out.println("Vehicule de couleur : " + coul) ;
Iterator ite = this.iterator() ;
while (ite.hasNext()) {
Vehicule tmp = (Vehicule) ite.next();
if (tmp.getCouleur() == coul) tmp.Affiche();
}
}
public void recherche_vehicule(String mark, String mod){
System.out.println("+++++++++++++++++") ;
System.out.println("Vehicule de marque : " + mark + " de
modele " + mod) ;
Iterator ite = this.iterator() ;
while (ite.hasNext()) {
Vehicule tmp = (Vehicule) ite.next();
if ( (tmp.getMarque() == mark) &&
(tmp.getModele() == mod) ) tmp.Affiche();
}
}
public void supprimer(Vehicule v) {
System.out.println("+++++++++++++++++") ;
System.out.println("Supression d'un véhicule") ;
int i = this.lastIndexOf(v) ;
System.out.println(" index trouvé : " +i ) ;
if (i != -1)
this.remove(i);
}
}
////////////// le programme principal d'appel
public class Test {
public static void main(String[] args) {
// test des constructeurs et des appels entre eux (rappel)
Vehicule v1 = new Vehicule("Renault", "twingo", "bleue") ;
Auto v2 = new Auto("Peugeot", "504", "blanche") ;
Moto v3 = new Moto("Honda", "CB500", "blanche") ;
Camion v4 = new Camion("Berliet","Camion Benne","gris") ;
v1.Affiche() ; v2.Affiche() ; v3.Affiche() ; v4.Affiche() ;
// Avec une ListArray simple
ArrayList<Vehicule> liste = new ArrayList<Vehicule>() ;
liste.add(v1) ;liste.add(v2); liste.add(v3) ; liste.add(v4) ;
for (int i = 0 ; i < liste.size() ; i++) {
System.out.println("Vehicule :" + i) ;
liste.get(i).Affiche() ;
}
// version avec un iterateur ensuite
Iterator ite = liste.iterator() ;
while (ite.hasNext()) {
Vehicule tmp = (Vehicule) ite.next();
tmp.Affiche();
}
// Avec une sous-classe qui hérite de la classe ArrayList
ListeVehicules liste1 =new ListeVehicules();
// on met 4 éléments dans la liste qui sont des sous-classes
de la classe Vehicule
liste1.add(v1); liste1.add(v2);liste1.add(v3);liste1.add(v4) ;
// Affichage des éléments de la liste avec une boucle simple
sur le nombre d'éléments de la liste
for (int i = 0 ; i < liste1.size() ; i++) {
System.out.println("Vehicule :" + i) ;
liste1.get(i).Affiche() ;
}
// affichage des élements avec un iterateur
Iterator ite1 = liste1.iterator() ;
while (ite1.hasNext()) {
Vehicule tmp = (Vehicule) ite1.next();
tmp.Affiche();
}
// affichage des véhicules d'une couleur
liste1.vehicule_couleur("blanche") ;
// recherche d'un véhicule donné
liste1.recherche_vehicule("Renault", "twingo");
// suppression d'un véhicule
liste1.supprimer(v1) ;
Camion v5 = new Camion("Berliet","toto","vert") ;
liste1.supprimer(v5) ;
} |
Partager