책 정보를 출력하기 위해 저자 정보과 책의 상세정보가 필요하다.
그래서 저자 정보 클래스를 만들어서 상세정보 클래스에서 포함(Composition)해서 사용해 볼 예정이다.
.
.
package book;
public class Author {
private String name, email;
private char gender;
public Author() {}
public Author(String name, String email, char gender) {
this.name = name;
this.email = email;
this.gender = gender;
}
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email;}
public String getName() { return name; }
public char getGender() { return gender; }
@Override
public String toString() {
return "Author [name=" + name + ", email=" + email + ", gender=" + gender + "]";
}
}
.
.
먼저 저자 정보 클래스를 만든다.
.
.
package book;
public class TestAuthor {
public static void main(String[] args) {
Author author = new Author("Bret Spell", "Bspell@nowhere.com", 'm');
System.out.println(author);
author.setEmail("jungbo@nowhere.com");
System.out.println("name is : " + author.getName());
System.out.println("email is : " + author.getEmail());
System.out.println("gender is : " + author.getGender());
}
}
.
.
그리고 클래스가 잘 만들어졌는지 테스트 해본다.
.
.
.
.
그리고 책 정보 클래스를 만든다
.
.
package book;
import java.util.Arrays;
public class Book {
private String name;
private Author[] author;
private int price, qty = 0;
public Book(String name, Author[] author, int price) {
super();
this.name = name;
this.author = author;
this.price = price;
}
public Book(String name, Author[] author, int price, int qty) {
super();
this.name = name;
this.author = author;
this.price = price;
this.qty = qty;
}
public String getName() { return name; }
public Author[] getAuthors() { return author; }
public int getPrice() { return price; }
public void setPrice(int price) { this.price = price; }
public int getQty() { return qty; }
public void setQty(int qty) { this.qty = qty; }
// public String[] getAuthorName() {return author.getName();}
// public String[] getAuthorEmail() {return author.getEmail();}
// public char[] getAuthorGender() {return author.getGender();}
@Override
public String toString() {
return "Book [name=" + name + ", author=" + Arrays.toString(author) + ", price=" + price + ", qty=" + qty + "]";
}
}
.
.
저자가 여러명일수 있기 때문에 작가 클래스를 배열 형태로 만든다.
그리고 생성자를 2개 만들어서 수량이 초기화 되어있기때문에 수량이 없는 생성자까지 생성한다.
.
.
package book;
public class TestBook {
public static void main(String[] args) {
Author[] authors = new Author[2];
authors[0] = new Author("Bret Spell", "Bspell@nowhere.com", 'm');
authors[1] = new Author("Paul Ahn", "pual@somewhere.com", 'm');
// System.out.println(author);
Book dummyBook = new Book("Pro JAVA 8 Programming", authors, 30000, 99);
System.out.println(dummyBook);
dummyBook.setPrice(35000);
dummyBook.setQty(28);
Book javaDummy = new Book("Java for Dummy", authors, 30000, 99);
System.out.println(javaDummy);
}
}
.
.
저자 2명을 입력받아 출력하는 코드를 작성한다.
.
.
.
.
길지만 이런 출력이 나오게 된다.
728x90
반응형
'Java > 본격 Java 퀴즈 기초' 카테고리의 다른 글
[Java] 학생과 선생의 정보(상속, 중복값 확인) (0) | 2020.07.09 |
---|---|
[Java] 원과 원기둥 둘레와 넓기 구하기(상속 이용) (0) | 2020.07.09 |
[Java] 사원정보 출력하기 (Composition(포함)관계 이용) (0) | 2020.07.09 |
[Java] 달력 출력하기 - 지정한 날짜 요일 확인하기 (0) | 2020.07.08 |
[Java] 달력 출력하기 - 윤년 확인하기 (0) | 2020.07.08 |