Ville
1 Créer une classe Ville correspondant a un nom de ville et un nombre d'habitant.
Ces villes doivent pouvoir donner accès a ces informations (nom, nb d'habitant).
Ces villes ont un constructeur permettant de créer une ville avec un nom de ville.
2 Créer une classe Test qui utilise la classe Ville et utilisera les ArrayList. La fonction main comprendra les lignes suivantes :
public static void main(String [] args){
ArrayList<Ville> mesVilles = new ArrayList<Ville>();
mesVilles.add(new Ville("Lille"));
mesVilles.add(new Ville("Calais"));
3. Rentrez 5 villes différentes. Créez une boucle for pour appeler la méthode toString() de
toutes les villes
4. Surchargez le constructeur de la classe Ville. Définissez un constructeur, à deux arguments le nom de la
ville et le nombre d'habitant
Créez une classe Capitale qui hérite de la classe Ville. Celle-ci comprendra une variable
d’instance supplémentaire : nomPays. .
Testez différents cas : appel explicite ou non au constructeur de la classe mère ; existence ou non d’un constructeur sans arguments.
6. Redéfinissez la méthode toString(), en faisant appel à la méthode de la classe mère.
(toString()) qui affichera à l’écran Capitale de nomPays: nomVille ; nbHabitants). Testez.
7. Changez les modificateurs d’accès des données membres de la classe mère, en remplaçant
private par protected. Peut-on accéder à ces variables depuis l’extérieur de la classe Ville ?
public class Ville {
// les attributs de la ville
private int nbHabitants;
private String nomVille;
// constructeurs de la classe Ville
public Ville(String v){
nomVille = v;
nbHabitants = 0;
}
public Ville(String v, int k){
nomVille = v;
nbHabitants = k;
}
// les méthodes de la classe Ville
public String getNomVille(){
return nomVille;
}
public int getNbHabitants(){
return nbHabitants;
}
public void setNbHabitants(int k){
nbHabitants = k;
}
public String toString(){
String resultat;
resultat = "ville : " + nomVille + "\thabitants : " + nbHabitants;
return resultat;
}
}
Capitale:
public class Capitale extends Ville {
// la classe Capitale hérite de la calsse Ville
private String nomPays; // attribut supplémentaire de la classe Capitale
// constructeur de la classe Capitale à 3 paramètre, pays, ville et nombre d'habitants
public Capitale(String np, String nv, int nh){
/*--- ne fonctionne pas car nomVille et nbHabitants sont privés
nomVille = nv;
nbHabitants = nh;
*/
super(nv, nh); // appel au constructeur de la classe mère
nomPays = np;
}
// les méthodes de Capitale
public String toString(){
String resultat;
resultat = "Capitale de " + nomPays + " " + super.toString();
return resultat;
}
}