Correction TD2
Correction TD2
Correction TD2
Exercice 1 :
Classe Document
package EX1;
Classe livre
package EX1;
public class Livre extends Document{
private String auteur;
private int nbPages;
public Livre(String titre, String auteur, int nbPages) {
super(titre);
this.nbPages = nbPages;
this.auteur = auteur;
}
public String getAuteur() {
return auteur;
}
public int getNombreDePages() {
return nbPages;
}
public String toString(){
return (super.toString()+" auteur: "+getAuteur()+" pages: "+getNombreDePages());
}
}
Classe Dictionnaire
package EX1;
Classe Biblioteque
package EX1;
import EX2.Etudiant;
import EX2.EtudiantDoctorat;
import EX2.EtudiantLicence;
import EX2.EtudiantMaster;
Exercice 2 :
Classe Etudiant
package EX2;
public abstract class Etudiant {
private String nom;
private String adresse;
private int numero;
}
public void setnom(String nom)
{
this.nom=nom;
}
}
public void setadresse(String adresse)
{
this.adresse=adresse;
}
}
public void setnumero(int numero)
{
this.numero=numero;
}
public Etudiant(String nom, String adresse, int numero) {
this.nom = nom;
this.adresse = adresse;
this.numero = numero;
}
// Définition des méthodes concretes
// Définition de la méthode afficher()
public void afficher() {
System.out.println("\n Nom: " +this.nom.toUpperCase()+ "\n Adresse: "
+this.adresse.toUpperCase()+ "\n Numéro: " +this.numero);
}
// Surcharge de la méthode afficher()
public void afficher(boolean compact)
{
if (compact=false)
System.out.println("\n Nom: " +this.nom.toUpperCase()+ "\n Adresse: "
+this.adresse.toUpperCase()+ "\n Numéro: " +this.numero);
else
System.out.print("[" +this.nom.toUpperCase()+ ","
+this.adresse.toUpperCase()+ ", " +this.numero);
}
// Méthode abstraite
public abstract void afficherProfil();
}
Classe EtudiantLicence
package EX2;
Classe EtudiantMaster
package EX2;
}
}
Classe EtudianDoctorat
package EX2;
}
}
Classe Main
package EX2;
package EX2;
// Affichage compact
ED.afficherProfil();
ED.afficher(true);
EL.afficherProfil();
EL.afficher(true);
EM.afficherProfil();
EM.afficher(true);
// Affichage ligne par ligne
/* ED.afficherProfil();
ED.afficher();
EL.afficherProfil();
EL.afficher();
EM.afficherProfil();
EM.afficher();*/
}
}
NB:
- Ne pas confondre redéfinition et surcharge des méthodes :
◼ On redéfinit une méthode quand une nouvelle méthode a la même
signature qu’une méthode héritée de la classe mère
◼ On surcharge une méthode quand une nouvelle méthode a le
même nom, mais pas la même signature, qu’une autre méthode de
la même classe