Java - 연습 문제 - 미디어 및 미디어 라이브러리

1.
(a) 세 가지 속성:
            private final 문자열 제목;
            private final String 지원;
            개인 int nbCopies;
(b) 세 개의 적절한 "게터".
(c) nbExers.(d) 인수가 처음 두 속성과 일치하고 nbExtes=1.(e) void 메소드는 support="Book"인 경우 TO2(Book) x2의 Poly를 표시합니다. title="TO2 Poly" 및 nbCopies=2.
(f) this와 el이 동일한 미디어와 title을 갖는 경우 true를 반환하는 부울 메서드 isEqual(Media el)입니다.


< / o : p>< / span>< / span>< / div>
2. Main 클래스에서 이 모든 것을 테스트하는 main 메서드를 만듭니다. estEgalA.

3. ArrayList를 포함하는 미디어 라이브러리 클래스를 만듭니다
(a< 미디어> 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");
미디어 m2 = 새 미디어("title2","support2");
표시 후:
m1 (title2, support2)
m2 (title2, support2)
참고: view plain 텍스트를 가져오고 복사/붙여넣기를 수행합니다.


public class Media {

private final String title;
private final 문자열 지원;
개인 int nbCopies;

}
b 및 c. nbCopies마우스 오른쪽 버튼 클릭 --> 출처 --> 게터 및 세터 생성.

getter 및 setter 생성

public int getNbCopies() {
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
미디어 인스턴스 생성 m = new Media("title1", "support1");
미디어 m2 = 새 미디어("title2", "support2");
미디어 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();
//추가
mt.add(m);
mt.added (m2);
mt.added (m2);
mt.added (m3);
//display
mt.display();
}
}

3. Mediatheque
a의 창설. L'attirubt Arraylist< 미디어> content
Arraylist는 크기가 설정되지 않은 배열이며, 장점은 무한하며 get 및 set, 순차 검색 contains(element) 또는 indexOf(element).
< 미디어> Arraylist 재고가 있는 항목이 Media 유형임을 의미합니다. 이렇게 하면 (미디어) ourList.get(index).

public class 미디어 라이브러리 {

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(인덱스).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 final 문자열 지원;
개인 int nbCopies;

public Media(문자열 제목, 문자열 지원){
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));
}

부울 isEqualsA(Media el){
if( support==el.support & & title==el.title)
true를 반환합니다.
false를 반환합니다.
}


public int getNbCopies() {
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 클래스 미디어 라이브러리 {

ArrayList 콘텐츠;

미디어 라이브러리(){
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(인덱스).setNbEx(nbEx)
}
}

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

}

main.java

public class Main {

public static void main(String[] args) {
//세 개의 Media
미디어 인스턴스 생성 m = new Media("title1", "support1");
미디어 m2 = 새 미디어("title2", "support2");
미디어 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();
//추가
mt.add(m);
mt.added (m2);
mt.added (m2);
mt.added (m3);
//display
mt.display();
}
}