package edu.exam06.homework;
/*1. 다음 상속구조를 설계하세요
모든 프린터는 모델명, 제조사, 인터페이스 종류(USB, paraller port), 인쇄매수,
인쇄 종이 잔량을 나타내는 정보를 가진다
print()메서드를 갖는다.
잉크젯프린터는 잉크 잔량이라는 추가 정보를 가진다
레이저프린터는 토너 잔량이라는 추가 정보를 가진다
print()메서드는 각 프린터 타입에 맞게 구현한다
편의상 print()메서드를 한 번 호출할 때마다 인쇄용지 1매를 사용하는 것으로 한다
클래스들을 설계하고
적절한 필드, 생성자, 메서드를 작성하세요
그리고 실행 프로그램을 작성해서 동작시키세요
프린터
잉크젯프린터 레이저프린터
*/
class Printer{
String model; //모델명
String manuf; //제조사
String inter; //인터페이스 종류(USB, paraller port)
static int pNum =100; //인쇄 종이 잔량
}
class Laser extends Printer{
Laser(String _model, String _manuf, String _inter){
super.model =_model;
super.manuf =_manuf;
super.inter=_inter;
}
int laserCount=0; //레이저 인쇄 매수
int laserpNum=100; //레이저 잉크잔량
void print() {
System.out.println("======================");
System.out.println("레이저 프린트 1장을 인쇄합니다.");
this.laserpNum--;
this.laserCount++;
super.pNum--;
System.out.println("모델명 :" +model);
System.out.println("제조사 :" +manuf);
System.out.println("인터페이스 :" +manuf);
System.out.println("인쇄 잔량 : "+ inter);
System.out.println("인쇄 매수 : "+ laserCount);
System.out.println("인쇄 종이 잔량 : "+ super.pNum);
}
}
class Inkjet extends Printer{
Inkjet(String _model, String _manuf, String _inter){
super.model =_model;
super.manuf =_manuf;
super.inter=_inter;
}
int inkCount=0; //잉크젯 인쇄 매수
int inkpNum=100; //잉크젯 잉크잔량
void print() {
System.out.println("======================");
System.out.println("잉크젯 프린트 1장을 인쇄합니다.");
this.inkpNum--;
super.pNum--;
System.out.println("모델명 :" +model);
System.out.println("제조사 :" +manuf);
System.out.println("인터페이스 :" +manuf);
System.out.println("인쇄 잔량 : "+ inter);
System.out.println("인쇄 잔량 : "+ inkpNum);
System.out.println("인쇄 매수 : "+ inkCount);
System.out.println("인쇄 종이 잔량 : "+ super.pNum);
}
}
public class Basic {
public static void main(String[] args) {
Laser printLay = new Laser("LM_3030","LG","WIFI");
Inkjet printInk = new Inkjet("SD_2071","삼성","USB");
Inkjet printInk2 = new Inkjet("SL_1111","삼성","USB");
printInk.print();
printInk.print();
printLay.print();
printInk2.print();
}
}