Exemple13_HeritageRetourTélécharger Exemple du cours sur l'heritage Bibliotheque.java import java.util.*; public class Bibliotheque { private ArrayList<MultiMedia> elements; public Bibliotheque() { elements = new ArrayList<MultiMedia>(); } public void ajouter(MultiMedia media) { elements.add(media); } public void afficher() { System.out.println("------ AFFICHAGE DE LA BIBLIOTHEQUE ----"); for(MultiMedia m:elements) { System.out.println("-----------------"); System.out.println(m.toString()); } } } Exemple13.java //Exemple du cours sur l'heritage // import java.util.*; // Programme principal // public class Exemple13 { public static void main(String... args) { Livre l1 = new Livre("2012-02-0001", "Livre de SF, appartenant au cycle de Trantor", "Face aux feux du soleil", "Isaac Asimov" ); System.out.println(l1); Film f1 = new Film("2012-02-0002", "Film","Les visiteurs 3","Jean-Marie Poire", "Comedie") .addActeur("Jean Reno") .addActeur("Christian Clavier"); System.out.println(f1); Jeu j1 = new Jeu("2012-02-0003", "Jeu de voiture", "Karting III", "PC", 11); System.out.println(j1); Bibliotheque biblio = new Bibliotheque(); biblio.ajouter(l1); biblio.ajouter(f1); biblio.ajouter(j1); biblio.afficher(); } } Film.java // La classe Film qui hérite de la classe MultiMedia // import java.util.*; public class Film extends MultiMedia { private String realisateur; private String[] acteurs; private String genre; // Le constructeur complet qui prend en entrée les attributs de la // classe Film mais aussi les attributs de la classe héritée // public Film(String ident,String description,String titre, String realisateur, String genre) { super(ident,description,titre); this.realisateur = realisateur; this.acteurs = new String[0]; this.genre = genre; } // Ajoute un acteur public Film addActeur(String acteur) { ArrayList<String> l=new ArrayList<String>(Arrays.asList(acteurs)); l.add(acteur); acteurs = l.toArray(acteurs); return this; } // Méthode qui retourne en chaine un livre et qui appelle // explicitement la méthode toString de la classe héritée // afin d'avoir les informations complètes du film et de ses // attributs hérités public String toString() { String a=""; for(String s:acteurs) a=a+String.format("%-15s : %s\n","acteur",s); return super.toString() + String.format("%-15s : %s\n","realisateur",realisateur)+ a + String.format("%-15s : %s\n","genre",genre); } } Jeu.java // La classe Film qui hérite de la classe MultiMedia // import java.util.*; public class Jeu extends MultiMedia { private String console; private int ageSup; // Le constructeur complet qui prend en entrée les attributs de la // classe Jeu mais aussi les attributs de la classe héritée // public Jeu(String ident,String description,String titre, String console, int ageSup) { super(ident,description,titre); this.console = console; this.ageSup = ageSup; } // Méthode qui retourne en chaine un livre et qui appelle // explicitement la méthode toString de la classe héritée // afin d'avoir les informations complètes du film et de ses // attributs hérités public String toString() { return super.toString() + String.format("%-15s : %s\n","console",console)+ String.format("%-15s : %s\n","ageSup",ageSup+""); } } Livre.java // La classe Livre qui hérite de la classe MultiMedia // public class Livre extends MultiMedia { private String[] auteurs; private String edition; private String genre; private int tome; // Le constructeur complet qui prend en entrée les attributs de la // classe Livre mais aussi les attributs de la classe héritée // public Livre(String ident,String description,String titre, String[] auteurs, String edition, String genre, int tome) { super(ident,description,titre); this.auteurs = auteurs; this.edition = edition; this.genre = genre; this.tome = tome; } // Constructeur simplifie public Livre(String ident,String description, String titre, String auteur) { super(ident,description,titre); auteurs = new String[1]; auteurs[0] = auteur; this.edition = ""; this.genre = ""; this.tome = 0; } // Méthode qui retourne en chaine un livre et qui appelle // explicitement la méthode toString de la classe héritée // afin d'avoir les informations complètes du livre et de ses // attributs hérités public String toString() { String a=""; for(String s:auteurs) a=a+String.format("%-15s : %s\n","auteur",s); return super.toString() + a + String.format("%-15s : %s\n","edition",edition)+ String.format("%-15s : %s\n","genre",genre)+ String.format("%-15s : %s\n","tome",tome+""); } } MultiMedia.java // La classe Media : class commune à tous les médias d'uen médiathèque // public class MultiMedia { private String ident; // Identification unique d'un media private String description; // Description générale du media private String titre; // Le titre du media // Constructeur du media public MultiMedia(String ident,String description,String titre) { this.ident = ident; this.description = description; this.titre = titre; } // Méthode qui retourne en chaine le media // public String toString() { String str = ""; str = str + String.format("%-15s : %s\n","ident",this.ident); str = str + String.format("%-15s : %s\n","description", this.description); str = str + String.format("%-15s : %s\n","titre", this.titre); return str; } } compil.bat mkdir bin del /f /s /q bin\*.class javac -d bin *.java pause run.bat cd bin java Exemple13 pause