Vous êtes sur la page 1sur 4

POO (2ème Licence INF)

TD3

1/ - Il s’agit de définir une classe qui représente les livres en tenant compte des
caractéristiques privées suivantes :

le titre,
le ou les auteurs,
l'éditeur,
le nombre de pages,

Pour chaque attributs, mettre un ‘getter’ et un ‘setter’. Pour l’attribut ‘nbPages’,


si le nombre est inférieur ou égal à zéro alors, afficher un message d’erreur.

- Ecrire une classe ‘main’ qui crée les deux instances suivantes :
1 – L’incendie de Mohammed Dib aux éditions ‘Le Seuil’ en 192 pages ;
2- Le Blanc de l’Algérie d’Assia Djebar aux éditions ‘Albin Michel’ en 250
pages.
et qui affiche ce qui suit :
Deux livres des auteurs Mohammed Dib et Assia Djebar et dont les titres sont :
L’incendie et le Blanc de l’Algérie

2/ Reprendre l’exemple traité de la classe ‘Rectangle’ :

class Rectangle{
private double longueur ;
private double largeur ;
}
………….

- Ajouter la méthode ‘afficher’qui affiche ce qui suit :


Un rectangle de longueur… et de largeur… en mettant les valeurs au niveau des
pointillets.

- Définir une classe ‘Carré’ à partir de la classe ‘Rectangle’. Préciser le


constructeur ainsi que la méthode ‘afficher’.
SolutionTD3

1/
class Livre {

private String titre, auteur, editeur ;


private int nbPages ;

public Livre(String unTitre , String unAuteur, String unEditeur, int nnbPages)


{
titre = unTitre;
auteur = unAuteur;
titre = unEditeur; //Constructeur
nbPages = unnbPages ;

public String getTitre() {


return Titre;
}

public String getAuteur() {


return auteur;
}
public String getEditeur() { //Accesseurs en lecture
return Editeur;
}
public int getNbPages() {
return nbPages;
}

public void setTitre(String unTitre) {


titre = unTitre;
}

public void setAuteur(String unAuteur) { / /Accesseurs en écriture


auteur = unAuteur;
}
public void setEditeur(String unEditeur) {
titre = unEditeur;
}
public void setNbPages(int n) {
if (n > 0) {
nbPages = n;
}
else {
System.err.println("Erreur : nombre de pages erroné !");
}
}

public static void main(String[] args) {


Livre l1 = new Livre( "L’incendie", "Mohammed Dib", "Le Seuil", "192");
Livre l2 = new Livre("Le Blanc de l’Algérie", "Assia Djebar", "Albin
Michel", "250");
System.out.println("Deux livres des auteurs " + l1.getAuteur() + "et"
l2.getAuteur() +"dont les titres sont : " + l1.getTitre() + "et" + l2.getTitre() ");
}

-----------------------------------------------
Remarque : On peut aussi utiliser le mot réservé ‘this’ au niveau du
constructeur au lieu d’utiliser deux variables (une pour l’attribut et l’autre pour
l’argument) :

public Livre(String unTitre , String unTitre, String unEditeur, int unnbPages) {


auteur = unAuteur;
titre = unTitre;
nbPages = unnbPages
----------------------------------------------

2/
class Rectangle{
private double longueur ;
private double largeur ;

……….

public void afficher(){


System.out. println("Un rectangle de longueur" + longueur + "et de largeur" +
largeur) ;
}
}
class Carre extends Rectangle{

public Carre (double cote) { //Constructeur de la classe ‘Carré’


super(cote, cote) : // appel au constructeur de la superclasse

public void afficher(){


System.out. println("Un carré de longueur" + this.getLongueur()) ;
}
}
------------------------------------------
Remarque : L’attribut longueur étant ‘private’, l’accès est réalisé à travers le
guetteur : getLongueur.

Vous aimerez peut-être aussi