Java - Exercices - Media et Mediathèque

1. Erstellen Sie eine Medienklasse, die Folgendes enthält
(a) Drei Attribute:
            privater finaler String-Titel;
            private abschließende String-Unterstützung;
            private int nbKopien;
(b) Die drei geeigneten "Getter".
(c) Ein "Setter" für nbExers.
(d) Ein Media(String title, String support)-Konstruktor, dessen Argumente mit den ersten beiden Attributen übereinstimmen und der nbExtes=1.
(e) Eine void-Methode displays(), die Poly of TO2 (Book) x2 anzeigt, wenn support="Book", title="TO2 Poly" und nbCopies=2.
(f) Eine boolesche Methode isEqual(Media el), die true zurückgibt, wenn this und el identische Medien und Titel haben.


2. Erstellen Sie in einer Main-Klasse eine main-Methode, um all dies zu testen. Besondere Aufmerksamkeit sollte dem Test von estEgalA.

3. Erstellen Sie eine Medienbibliotheksklasse, die enthält
(a) Eine ArrayList< Medien> content.
(b) Ein Mediatheque()-Konstruktor, der das Attribut in ein leeres Array initialisiert.
(c) Eine void-Methode fügt (Media el) hinzu, die el an den Inhalt anhängt, wenn er noch nicht vorhanden ist; Wenn sie bereits vorhanden ist, muss die Methode den Wert ihres nbExemplars.(d) erhöhen. Eine void-Methode displays(), die alle Medien in der Sammlung anzeigt, eines pro Zeile.

Lösung:

1. Die Datei Media
a erstellt. Media
Das Schlüsselwortfinal gibt an, dass sich das Element der erstellten Instanz während der Ausführung nicht ändert, z. B. wenn eine zweite Instanz von Media erstellt wird, erhalten die Attribute, die nicht final der ersten Instanz festgelegt sind, die Werte der zweiten Instanz:
Media m1 = new Media("title1","support1");
Media m2 = new Media("title2","support2");
Nach der Anzeige:
m1 (title2, support2)
m2 (title2, support2)
Hinweis: Klicken Sie auf view plain um den Text abzurufen und Copy/Paste.


public class Media {

private final String title;
private finale String-Unterstützung;
private int nbKopien;

}
b und c. Die drei Getter und ein Setter für nbCopies
Rechtsklick --> Quelle --> Getter und Setter generieren.

Getter und Setter generieren

public int getNbCopies() {
return nbCopies;
}

public void setNbCopies(int nbCopies) {
this.nbCopies = nbCopies;
}

public String getTitre() {
titre zurückgeben;
}

public String getSupport() {
Unterstützung zurückgeben;
}
d. Der constructor

public Media(Title String, String support){
this.title = title;
this.support = Unterstützung;
nbCopies = 1;
}
e. Methode display()

void display(){
if(this.support=="Book" & & this.titre=="Poly de TO2" & & this.nbEx(exte)==2)
System.out.print(this.title+ "(" + this.support+ ") x"+this.nbEx(eX));
}
f. Boolesche Methode isEquals(Media el)

boolean isEqualsA(Media el){
if( support==el.support & & title==el.title)
true zurückgeben;
false zurückgeben;
}

2. Erstellung der main

public class Main {

public static void main(String[] args) {
//Erstellung von drei Media
Medieninstanzen m = new Media("title1", "support1");
Medien m2 = neue Medien("title2", "support2");
Medien m3 = neue Medien("title3", "support3");

//test equality
boolescher Wert isEqualA = m.isEqualsA(m2);
if(isEquals)
System.out.println("Media("+m.getTitle()+", "+m.getSupport()+") ist gleich Media("+m2.getTitle()+", "+m2.getSupport()+")" );
else
System.out.println("+m.getTitle()+", "+m.getSupport()+") ist ungleich Media("+m2.getTitle()+", "+m2.getSupport()+")" );

/************************************
* Médiathèque class
*/
Médiathèque mt = new Médiathèque();
//add
mt.add(m);
mt.hinzugefügt (m2);
mt.hinzugefügt (m2);
mt.hinzugefügt (m3);
//display
mt.display();
}
}

3. Gründung der Mediathek
a. L'attirubt Arraylist< Medien> content
Arraylist ist ein Array, dessen Größe nicht festgelegt ist, sein Vorteil ist, dass es unendlich ist und vordefinierte Methoden wie get und set, sequentielle Suche contains(element) oder indexOf(element) enthält.
< Medien> bedeutet, dass die Artikel, die unsere Arraylist auf Lager haben, vom Typ Medien sind. Dies erspart uns die folgende Konvertierung: (Medien) ourList.get(index).

public class Medienbibliothek {

ArrayList content;

}
b. Der constructor

Mediatheque(){
this.contenu = new ArrayList();
}
c. Die Methode adds(Media el)

void adds(Media el){
if(!this.content.contains(el))
this.content.add(el);
else{
/* falls bereits vorhanden
* den Wert von nbExemplar
erhöhen */
//Index von el in der Liste
int index = this.content.indexOf(el);
//das nbCopys-Attribut lesen und increment
int nbCopies = this.content.get(index).getNbCopies() + 1;
//Aktualisieren der nbCopies
System.out.println(this.content.get(index).getTitle());
this.content.get(index).setNbEx(nbEx)
}
}

d. Die Methode displays()

void displays(){
for(Media media: this.contenu)
System.out.println(media.getTitre()+" "+media.getSupport()+" "+media.getNbCopies());
}

Vollständiger Code Media.java:

public class Media {

private final String title;
private finale String-Unterstützung;
private int nbKopien;

public Media(String title, String support){
this.title = title;
this.support = Unterstützung;
nbCopies = 1;
}

void display(){
if(this.support=="Book" & & this.titre=="Poly de TO2" & & this.nbEx(exte)==2)
System.out.print(this.title+ "(" + this.support+ ") x"+this.nbEx(eX));
}

boolescher Wert isEqualsA(Media el){
if( support==el.support & & title==el.title)
true zurückgeben;
false zurückgeben;
}


public int getNbCopies() {
return nbCopies;
}

public void setNbCopies(int nbCopies) {
this.nbCopies = nbCopies;
}

public String getTitre() {
titre zurückgeben;
}

public String getSupport() {
Unterstützung zurückgeben;
}
}

Mediatheque.java

import java.util.ArrayList; 

public class Medienbibliothek {

ArrayList content;

Media Library(){
this.contenu = new ArrayList();
}

void adds(Media el){
if(!this.content.contains(el))
this.content.add(el);
else{
/* falls bereits vorhanden
* den Wert von nbExemplar
erhöhen */
//Index von el in der Liste
int index = this.content.indexOf(el);
//das nbCopys-Attribut lesen und increment
int nbCopies = this.content.get(index).getNbCopies() + 1;
//Aktualisieren der nbCopies
System.out.println(this.content.get(index).getTitle());
this.content.get(index).setNbEx(nbEx)
}
}

void display(){
for(Medienmedien: this.content)
System.out.println(media.getTitle()+" "+media.getSupport()+" "+media.getNbCopies());
}

}

main.java

public class Main {

public static void main(String[] args) {
//Erstellung von drei Medien
Medieninstanzen m = new Media("title1", "support1");
Medien m2 = neue Medien("title2", "support2");
Medien m3 = neue Medien("title3", "support3");

//test equality
boolescher Wert isEqualA = m.isEqualsA(m2);
if(isEquals)
System.out.println("Media("+m.getTitle()+", "+m.getSupport()+") ist gleich Media("+m2.getTitle()+", "+m2.getSupport()+")" );
else
System.out.println("+m.getTitle()+", "+m.getSupport()+") ist ungleich Media("+m2.getTitle()+", "+m2.getSupport()+")" );

/************************************
* Médiathèque class
*/
Médiathèque mt = new Médiathèque();
//add
mt.add(m);
mt.hinzugefügt (m2);
mt.hinzugefügt (m2);
mt.hinzugefügt (m3);
//display
mt.display();
}
}