# Language/Java
명품 JAVA 프로그래밍 5장 1번
왕꿀꿀
2018. 7. 21. 09:12
명품 자바 Programming
Chapter5 Ex1
Q :
다음 그림과 같은 상속 구조를 갖는 클래스를 설계하라. 모든 프린터는 모델명, 제조사, 인터페이스 종류(USB 또는 병렬 인터페이스), 인쇄 매수, 인쇄 종이 잔량을 나타내는 정보를 가지며 print()라는 메소드를 갖는다. 잉크젯 프린터는 잉크 잔량이라는 추가 정보를 가지며 레이저 프린터는 토너 잔량이라는 추가 정보를 가진다. print() 메소드는 각 프린터 타입에 맞게 구현한다. 편의상 print() 메소드를 한 번 호출할 때마다 인쇄용지 1매를 사용하는 것으로 한다. 이러한 클래스를 설계하고 적절한 필드, 생성자, 메소드를 작성하고, 실행 프로그램을 작성하여 동작을 확인하라.
Solution
Printer.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 | package chap5ex; class InkPrinter extends Printer{ int availableInk; InkPrinter(String model, String manufacturer, String interfaceType, int availableCount, int availableInk){ super(model, manufacturer, interfaceType, availableCount); this.availableInk = availableInk; } public void print(){ super.print(); if(availableInk > 0){ this.availableInk--; } else{ System.out.println("잉크 잔량 부족"); } System.out.println("사용 가능한 잉크 수 : " + availableInk); } } class LasorPrinter extends Printer{ int availableToner; LasorPrinter(String model, String manufacturer, String interfaceType, int availableCount, int availableToner){ super(model, manufacturer, interfaceType, availableCount); this.availableToner = availableToner; } public void print(){ super.print(); if(availableToner > 0){ this.availableToner--; } else{ System.out.println("토너 잔량 부족"); } System.out.println("사용 가능한 토너 수 : " + availableToner); } } public class Printer { String model; // 모델명 String manufacturer; // 제조사 String interfaceType; //USB 또는 병렬 int printedCount; int availableCount; Printer(){} Printer(String model, String manufacturer, String interfaceType, int availableCount){ this.model = model; this.manufacturer = manufacturer; this.interfaceType = interfaceType; this.availableCount = availableCount; this.printedCount = 0; } public void print(){ if(availableCount > 0){ availableCount--; printedCount++; } else{ System.out.println("종이 잔량 부족"); } System.out.println("모델명 :" + model); System.out.println("제조사명 : " + manufacturer); System.out.println("인터페이스 종류 : " + interfaceType); System.out.println("인쇄매수 : " + printedCount); System.out.println("종이잔량 : " + availableCount); } } | cs |
PrinterMain.java
1 2 3 4 5 6 7 8 9 10 11 12 | package chap5ex; public class PrinterMain { public static void main(String[] args) { InkPrinter ink = new InkPrinter("SCX-2500", "삼성", "병렬", 10, 20); LasorPrinter lasor = new LasorPrinter("LG-3000" , "LG", "USB", 20, 30); ink.print(); lasor.print(); } } | cs |
Key Point
상속과 클래스 구조 개념 알기
유용하셨다면 공감 버튼 ↓ 눌러주세요!
728x90