Java - Упражнения - Медиа и медиатека

1. Создайте Медиа-класс, содержащий
(a) Три атрибута:
            приватный итоговый заголовок строки;
            приватная финальная поддержка String;
            private int nbCopies;
(b) Три соответствующих "геттера".
(c) "сеттер" для nbExers.
(d) Конструктор Media(String title, String support), аргументы которого соответствуют первым двум атрибутам и который устанавливает nbExtes=1.
(e) Метод void displays(), который отображает Poly TO2 (Book) x2 if support="Book", title="TO2 Poly" и nbCopies=2.
(f) Логический метод isEqual(Media el), который возвращает true, если this и el имеют одинаковые носители и title.


2. В классе Main создайте метод main для проверки всего этого. Особое внимание следует обратить на тест estEgalA.

3. Создайте класс библиотеки мультимедиа, содержащий
(a) ArrayList< Средства массовой информации> content.
(b) Конструктор Mediatheque(), который инициализирует атрибут пустым массивом.
(c) Метод void добавляет (Media el), который добавляет el к содержимому, если его там еще нет; если он уже есть, метод должен увеличить значение своего атрибута nbExemplars.
(d) Метод void displays(), который отображает все медиафайлы в коллекции, по одному на строку.

Solution:

1. Создан Media
a. Media
Ключевое словоfinal указывает на то, что элемент созданного экземпляра не изменится во время выполнения, например, если будет создан второй экземпляр Media, то атрибуты, которые не установлены final первого экземпляра, получат значения второго экземпляра:
Media m1 = new Media("title1","support1");
Media m2 = new Media("title2","support2");
После отображения:
m1 (title2, support2)
m2 (title2, support2)
Примечание: Нажмите view plain чтобы получить текст и выполнить Copy/Paste.


public class Media {

private final String title;
поддержка приватных финальных строк;
private int nbCopies;

}
b и c. Три геттера и сеттер для nbCopies
Щелкните правой кнопкой мыши --> Источник --> Генерация геттеров и сеттеров.

генерировать геттеры и сеттеры

public int getNbCopies() {
return nbCopies;
}

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

public String getTitre() {
return titre;
}

public String getSupport() {
return support;
}
d. Конструктор

public Media(Title String, String support){
this.title = title;
this.support = поддержка;
nbCopies = 1;
}
e. Метод 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. Логический метод isEquals(Media el)

boolean isEqualsA(Media el){
if( support==el.support & & title==el.title)
возвращаем true;
возвращает false;
}

2. Создание класса main

public class Main {

public static void main(String[] args) {
//создание трех экземпляров Media
Media instances m = new Media("title1", "support1");
Media m2 = new Media("title2", "support2");
Media m3 = new Media("title3", "support3");

//проверка равенства
логическое значение isEqualA = m.isEqualsA(m2);
if(isEquals)
System.out.println("Media("+m.getTitle()+", "+m.getSupport()+") равно Media("+m2.getTitle()+", "+m2.getSupport()+")" );
else
System.out.println("+m.getTitle()+", "+m.getSupport()+") не равно Media("+m2.getTitle()+", "+m2.getSupport()+")" );

/************************************
* Médiathèque class
*/
Médiathèque mt = new Médiathèque();
//add
mt.add(m);
т добавлен (м2);
т добавлен (м2);
т добавлен (м3);
//display
mt.display();
}
}

3. Создание Медиатеки
a. L'attirubt Arraylist< Средства массовой информации> content
Arraylist - это массив, который не задан по размеру, его преимущество в том, что он бесконечен, и содержит предопределенные методы, такие как get и set, последовательный поиск contains(element) или indexOf(element).
< Средства массовой информации> означает, что элементы нашего запаса Arraylist имеют тип Media. Это избавит нас от следующего преобразования: (Media) ourList.get(index).

public class Media Library {

ArrayList content;

}
b. Конструктор

Mediatheque(){
this.contenu = new ArrayList();
}
c. Метод adds(Media el)

void adds(Media el){
if(!this.content.contains(el))
this.content.add(el);
else{
/* если уже существует
* увеличиваем значение nbExemplar
*/
//индекс el в списке
int index = this.content.indexOf(el);
//читаем атрибут nbCopies и increment
int nbCopies = this.content.get(index).getNbCopies() + 1;
//обновляем nbCopies
System.out.println(this.content.get(index).getTitle());
this.content.get(index).setNbEx(nbEx)
}
}

d. Метод displays()

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

Полный код Media.java:

public class Media {

private final String title;
поддержка приватных финальных строк;
private int nbCopies;

public Media(String title, String support){
this.title = title;
this.support = поддержка;
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));
}

boolean isEqualsA(Media el){
if( support==el.support & & title==el.title)
возвращаем true;
возвращает false;
}


public int getNbCopies() {
return nbCopies;
}

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

public String getTitre() {
return titre;
}

public String getSupport() {
return support;
}
}

Mediatheque.java

import java.util.ArrayList; 

public class Media Library {

ArrayList content;

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

void adds(Media el){
if(!this.content.contains(el))
this.content.add(el);
else{
/* если уже существует
* увеличиваем значение nbExemplar
*/
//индекс el в списке
int index = this.content.indexOf(el);
//читаем атрибут nbCopies и increment
int nbCopies = this.content.get(index).getNbCopies() + 1;
//обновляем nbCopies
System.out.println(this.content.get(index).getTitle());
this.content.get(index).setNbEx(nbEx)
}
}

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

}

main.java

public class Main {

public static void main(String[] args) {
//создание трех экземпляров Media
Media am m = new Media("title1", "support1");
Media m2 = new Media("title2", "support2");
Media m3 = new Media("title3", "support3");

//проверка равенства
логическое значение isEqualA = m.isEqualsA(m2);
if(isEquals)
System.out.println("Media("+m.getTitle()+", "+m.getSupport()+") равно Media("+m2.getTitle()+", "+m2.getSupport()+")" );
else
System.out.println("+m.getTitle()+", "+m.getSupport()+") не равно Media("+m2.getTitle()+", "+m2.getSupport()+")" );

/************************************
* Médiathèque class
*/
Médiathèque mt = new Médiathèque();
//add
mt.add(m);
т добавлен (м2);
т добавлен (м2);
т добавлен (м3);
//display
mt.display();
}
}