명품 자바 Programming
Chapter5 OpenChallenge
Q :
Product 클래스는 각 상품의 고유한 식별자, 상품 설명, 생산자, 가격 정보를 포함하고 있다.
Book 클래스는 ISBN 번호, 저자, 책 제목 정보를 포함한다.
CompactDisc 클래스는 앨범 제목, 가수 이름 정보를 포함한다.
ConversationBook은 회화책에서 다루는 언어명 정보를 포함한다.
객체 지향 개념에 부합하도록 적절한 접근 지정자, 필드, 메소드, 생성자 등을 작성하라.
ProductInfo 클래스를 만들고 이곳에 main()을 둔다.
main()에서는 최대 10개의 상품을 추가할 수 있으며 모든 상품의 정보를 조회할 수 있다.
모든 제품에 대한 정보를 출력할 때 Product 타입의 레퍼런스를 이용하라.
Solution
Product.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | package OpenChallenge; public class Product { private String id; private String explanation; private String constructor; private String price; public Product() {} public Product(String id, String explanation, String constructor, String price) { super(); this.id = id; this.explanation = explanation; this.constructor = constructor; this.price = price; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getExplanation() { return explanation; } public void setExplanation(String explanation) { this.explanation = explanation; } public String getConstructor() { return constructor; } public void setConstructor(String constructor) { this.constructor = constructor; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public void show() { System.out.println("상품 ID : " + getId()); System.out.println("상품 설명 : " + getExplanation()); System.out.println("생산자 : " + getConstructor()); System.out.println("가격 정보 : " + getPrice()); } } | cs |
Book.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | package OpenChallenge; public class Book extends Product { private String iSBN; private String author; private String bookTitle; public Book() { super(); } public Book(String id, String exp, String con, String price, String iSBN, String author, String bookTitle) { super(id, exp, con, price); this.iSBN = iSBN; this.author = author; this.bookTitle = bookTitle; } public String getiSBN() { return iSBN; } public void setiSBN(String iSBN) { this.iSBN = iSBN; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getBookTitle() { return bookTitle; } public void setBookTitle(String bookTitle) { this.bookTitle = bookTitle; } public void show() { System.out.println("상품 ID : " + getId()); System.out.println("상품 설명 : " + getExplanation()); System.out.println("생산자 : " + getConstructor()); System.out.println("가격 정보 : " + getPrice()); System.out.println("ISBN : " + getiSBN()); System.out.println("저자 : " + getAuthor()); System.out.println("책 제목 정보 : " + getBookTitle()); } } | cs |
CompactDisc.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | package OpenChallenge; public class CompactDisc extends Product { private String albumTitle; private String singer; public CompactDisc() { super(); } public CompactDisc(String id, String exp, String con, String price, String albumTitle, String singer) { super(id, exp, con, price); this.albumTitle = albumTitle; this.singer = singer; } public String getAlbumTitle() { return albumTitle; } public void setAlbumTitle(String albumTitle) { this.albumTitle = albumTitle; } public String getSinger() { return singer; } public void setSinger(String singer) { this.singer = singer; } public void show() { System.out.println("상품 ID : " + getId()); System.out.println("상품 설명 : " + getExplanation()); System.out.println("생산자 : " + getConstructor()); System.out.println("가격 정보 : " + getPrice()); System.out.println("앨범 제목 : " + getAlbumTitle()); System.out.println("가수 : " + getSinger()); } } | cs |
ConversationBook.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package OpenChallenge; public class ConversationBook extends Book{ private String language; public ConversationBook() { super(); } public ConversationBook(String id, String exp, String con, String price, String iSBN, String author, String bookTitle, String language) { super(id, exp, con, price, iSBN, author, bookTitle); this.language = language; } public String getLanguage() { return language; } public void setLanguage(String language) { this.language = language; } public void show() { System.out.println("상품 ID : " + getId()); System.out.println("상품 설명 : " + getExplanation()); System.out.println("생산자 : " + getConstructor()); System.out.println("가격 정보 : " + getPrice()); System.out.println("ISBN : " + getiSBN()); System.out.println("저자 : " + getAuthor()); System.out.println("책 제목 정보 : " + getBookTitle()); System.out.println("언어명 : " + getLanguage()); } } | cs |
ProductInfo.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | package OpenChallenge; import java.util.Scanner; public class ProductInfo { private int productCount; private Product[] product; public ProductInfo() { this.productCount = 0; product = new Product[10]; } public void run() { Scanner in = new Scanner(System.in); while(true) { int mainMenu = 0; System.out.print("상품 추가<1>, 모든 상품 조회<2>, 끝내기<3> >>"); mainMenu = in.nextInt(); if(mainMenu == 3) { System.out.println("시스템을 종료합니다."); System.exit(0); } else if(mainMenu == 1) { if(productCount == 10) continue; int menu1 = 0; String id, exp, con, price; System.out.print("상품 종류 책<1>, 음악CD<2>, 회화책<3> >>"); menu1 = in.nextInt(); if(menu1 == 1) { String isbn, author, bookTitle; System.out.print("상품 ID : "); id = in.next(); System.out.print("상품 설명 : "); exp = in.next(); System.out.print("생산자 : "); con = in.next(); System.out.print("가격 정보 : "); price = in.next(); System.out.print("ISBN : "); isbn = in.next(); System.out.print("저자 : "); author = in.next(); System.out.print("책 제목 정보 : "); bookTitle = in.next(); product[productCount] = new Book(id, exp, con, price, isbn, author, bookTitle); } else if(menu1 == 2) { String albumTitle, singer; System.out.print("상품 ID : "); id = in.next(); System.out.print("상품 설명 : "); exp = in.next(); System.out.print("생산자 : "); con = in.next(); System.out.print("가격 정보 : "); price = in.next(); System.out.print("앨범 제목 : "); albumTitle = in.next(); System.out.print("가수 : "); singer = in.next(); product[productCount] = new CompactDisc(id, exp, con, price, albumTitle, singer); } else if(menu1 == 3) { String isbn, author, bookTitle, language; System.out.print("상품 ID : "); id = in.next(); System.out.print("상품 설명 : "); exp = in.next(); System.out.print("생산자 : "); con = in.next(); System.out.print("가격 정보 : "); price = in.next(); System.out.print("ISBN : "); isbn = in.next(); System.out.print("저자 : "); author = in.next(); System.out.print("책 제목 정보 : "); bookTitle = in.next(); System.out.print("언어 정보 : "); language = in.next(); product[productCount] = new ConversationBook(id, exp, con, price, isbn, author, bookTitle, language); } productCount++; } else if(mainMenu == 2) { int menu2 = 0; for(int i=0;i<productCount;i++) { product[i].show(); System.out.println(); } } } } public static void main(String[] args) { ProductInfo productInfo = new ProductInfo(); productInfo.run(); } } | cs |
Key Point
클래스 구조 설계, 간단한 시스템 구현
유용하셨다면 공감 버튼 ↓ 눌러주세요!
728x90
'# Language > Java' 카테고리의 다른 글
명품 JAVA 프로그래밍 5장 3번 (0) | 2018.07.21 |
---|---|
명품 JAVA 프로그래밍 5장 2번 (0) | 2018.07.21 |
명품 JAVA 프로그래밍 5장 1번 (0) | 2018.07.21 |
명품 JAVA 프로그래밍 4장 6번 (2) | 2018.07.20 |
명품 JAVA 프로그래밍 4장 5번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 4장 4번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 4장 3번 (0) | 2018.07.20 |