Main
package tv;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 숫자 키패드를 기준으로 메뉴를 구성
// 2 : 채널 내림
// 8 : 채널 올림
// 4 : 볼륨 내림
// 6 : 볼륨 올림
// 7 : 전원
// 9 : 음소거
// 0 : 프로그램 종료
TV tv = new TV();
Scanner sc = new Scanner(System.in);
int menu;
do {
System.out.print("TV 버튼 입력 : ");
menu = Integer.parseInt(sc.nextLine());
if(menu == 8) tv.channelUp();
if(menu == 2) tv.channelDown();
if(menu == 6) tv.volumeUp();
if(menu == 4) tv.volumeDown();
if(menu == 7) tv.onoff();
if(menu == 9) tv.mute();
} while (menu != 0);
sc.close();
}
}
TV
package tv;
// TV 의 객체를 상상하면서
// 클래스를 구성하세요
// 객체의 속성은 필드로 표현합니다
// 객체의 기능은 메서드로 표현합니다
// 필드는 보통 공개되지 않습니다 (private)
// 메서드는 보통 공개되어 있습니다 (public)
public class TV {
// 속성 : 전원, 채널, 음량, TV이름...?
private boolean power;
private int channel = 2;
private int volume;
private int mute;
private static final int MAX_CHANNEL = 20;
private static final int MIN_CHANNEL = 2;
private static final int MAX_VOLUME = 10;
private static final int MIN_VOLUME = 0;
// 기능 : 전원온오프, 채널올림/내림, 음량올림/내림, 음소거
public boolean onoff() {
this.power = !power;
show();
return power;
}
// boolean타입의 getter는 is 혹은 has 혹은 can을 사용한다
public boolean isPower() {
return power;
}
public int channelUp() {
if(power) { // 전원이 켜져 있다면
channel++; // 채널의 값을 1증가시킨다
if(channel > MAX_CHANNEL) { // 만약, 채널의 값이 최대채널을 초과하면
channel = MIN_CHANNEL; // 최소 채널로 값을 새로 대입한다
}
}
show();
return channel;
}
public int channelDown() {
if(power) {
channel--;
if(channel < MIN_CHANNEL) {
channel = MAX_CHANNEL;
}
}
show();
return channel;
}
public int volumeUp() {
if(power) {
volume++;
if(volume > MAX_VOLUME) {
volume = MAX_VOLUME;
}
}
show();
return volume;
}
public int volumeDown() {
if(power) {
volume--;
if(volume < MIN_VOLUME) {
volume = MIN_VOLUME;
}
}
show();
return volume;
}
public boolean mute() {
int tmp = volume;
volume = mute;
mute = tmp;
show();
return mute != 0;
}
public void show() {
if(power) {
System.out.printf("┌────────────┐\n");
System.out.printf("│ CH : %2d │\n", channel);
System.out.printf("│ VL : %2d │\n", volume);
System.out.printf("└────────────┘\n");
}
else {
System.out.printf("┌────────────┐\n");
System.out.printf("│ │\n");
System.out.printf("│ │\n");
System.out.printf("└────────────┘\n");
}
}
// 채널은 범위안에서 값이 순환할 수 있고, 음량은 최소/최대를 벗어날 수 없다
}
'AWS CLOUD FRAMEWORK > Java' 카테고리의 다른 글
[Day11] JavaBeans (0) | 2023.04.05 |
---|---|
[Day11] Ex01_Getter_Setter (0) | 2023.04.05 |
[Day10] Quiz (0) | 2023.04.05 |
[Day10] AccessModifier (0) | 2023.04.05 |
[Day10] Reference (0) | 2023.04.05 |