자바에서 서브 클래스를 사용해서 프린터 용지를 구분하는 코드를 작성해 보겠습니다.
- 소스코드
class Printer {
private int numOfPpers; // 총 용지 갯수
private boolean duplex; // 양면 구분
public Printer(int numOfPpers, boolean duplex) {
this.numOfPpers = numOfPpers;
this.duplex = duplex;
}
// amount : 출력할 용지수
public void print(int amount) {
if(duplex) { // 양면인 경우
if(numOfPpers < amount) {
int divide = amount / 2;
if((amount % 2) > 0) {
divide += 1;
}
numOfPpers = numOfPpers - divide;
System.out.println("양면으로 " + divide + "장 출력 했습니다. 현재" + numOfPpers + "장 남았습니다.");
}
} else { // 단면 출력
boolean limit = true; // 용지가 충분한지 구분
// 용지가 충분 하지 않다면 false
if(numOfPpers < amount) limit = false;
if(limit) {
numOfPpers = numOfPpers - amount;
System.out.println("단면으로 " + amount + "장 출력 했습니다. 현재" + numOfPpers + "장 남았습니다.");
} else {
amount = amount - numOfPpers;
System.out.println("단면으로 모두 출력 할려면 용지가 " + amount + "매 부족 합니다. " + numOfPpers + "장만 출력 합니다.");
}
}
}
public Boolean getDuplex() {
return this.duplex;
}
public void setDuplex(boolean duplex) {
this.duplex = duplex;
}
}
public class PrinterTest {
public static void main(String[] args) {
Printer p = new Printer(20, true);
p.print(25);
p.setDuplex(false);
p.print(5);
p.print(5);
}
}
'IT, 인터넷 > JAVA, 스프링부트' 카테고리의 다른 글
자바 sftp 명령어 전송 및 파일 전송 (0) | 2021.10.14 |
---|---|
자바 BufferedWriter, FileWriter, File를 이용해서 파일 생성 및 삭제하기 (0) | 2021.10.05 |
자바 좌표값을 랜덤으로 뽑아서 오브젝트 충돌이 되는지 확인 (0) | 2021.09.30 |
자바 피쉬 게임 만들기 (0) | 2021.09.30 |
java.lang.reflect.Array를 이용한 배열 생성 (0) | 2021.09.30 |