[Java] 연습코딩-2
- BACKEND/Java
- 2017. 10. 27. 17:14
- 조건 1. TV와 Radio클래스는 Power인터페이스를 상속받아 Volume과 마찬가지로 오버라이딩을 한다.
2. 소리를 높일 때 50이상 넘지 않도록 한다. 3. 소리를 낮출때 0미만으로 줄일 수 없다. (0은 뮤트기능) 4. 소리를 켜거나 줄일때 반드시 전원이 켜져있을 때에만 가능하게 한다. *** 실행 예시 *** 제품 선택 1. TV 2. Radio 선택 : _
TV전원을 켜시겠습니까?(Y/N) : _
전원이 켜져있다면 1. 소리증가 2. 소리 감소 선택 : 1 값: 20 현재.. 볼륨은 20만큼 올렸습니다. 현재.. 볼륨은 40입니다. |
import java.util.Scanner; interface Volume { void volumeUp(int vol); void volumeDown(int vol); } interface Power { void powerOn(); void powerOff(); } class TV implements Volume, Power { private int vol; @Override public void volumeUp(int vol) { this.vol += vol; System.out.println("현재 TV 볼륨을" + vol + "만큼 올렸습니다."); if(this.vol>50) { this.vol=50; System.out.println("최대 볼륨은 50입니다"); } } @Override public void volumeDown(int vol) { this.vol -= vol; System.out.println("현재 TV 볼륨을" + vol + "만큼 내렸습니다."); if(this.vol<0) { this.vol=0; System.out.println("최소 볼륨은 0입니다"); } } void display() { System.out.println("현재 TV 볼륨은" + this.vol + "입니다."); if(this.vol ==0) { System.out.println("현재 TV는 음소거 상태입니다"); } } @Override public void powerOn() { System.out.println("TV 전원을 켰습니다."); } @Override public void powerOff() { System.out.println("TV 전원을 껐습니다."); } } class Radio implements Volume, Power { private int vol; @Override public void volumeUp(int vol) { this.vol += vol; System.out.println("현재 라디오 볼륨을" + vol + "만큼 올렸습니다."); if(this.vol>50) { this.vol=50; System.out.println("최대 볼륨은 50입니다"); } } @Override public void volumeDown(int vol) { this.vol -= vol; System.out.println("현재 라디오 볼륨을" + vol + "만큼 내렸습니다."); if(this.vol<0) { this.vol=0; System.out.println("최소 볼륨은 0입니다"); } } void display() { System.out.println("현재 라디오 볼륨은" + this.vol + "입니다."); if(this.vol ==0) { System.out.println("현재 라디오는 음소거 상태입니다"); } } @Override public void powerOn() { System.out.println("라디오 전원을 켰습니다."); } @Override public void powerOff() { System.out.println("라디오 전원을 껐습니다."); } } class Menu { void Menu1() { System.out.println("제품선택"); System.out.println("1.TV"); System.out.println("2.Radio"); System.out.println("3.종료"); System.out.print("선택 :"); }
void Menu2() { System.out.println("1.소리 증가"); System.out.println("2.소리 감소"); System.out.println("3.종료"); System.out.print("선택 : "); } } public class TvRadioTest { public static void main(String[] args) { String choice = ""; String a = ""; String a1= ""; int vol =0;
Menu m = new Menu(); TV tv = new TV(); Radio radio = new Radio(); Scanner sc = new Scanner(System.in); while (true) { m.Menu1(); choice = sc.next(); if (choice.equals("1")) { System.out.print("TV 전원을 키시겠습니까?(Y/N)"); a = sc.next(); if (a.equals("Y")) { tv.powerOn(); while(true) {
m.Menu2(); a1 =sc.next(); if(a1.equals("1")) { System.out.print("값 : "); vol=sc.nextInt(); tv.volumeUp(vol); tv.display(); }else if(a1.equals("2")) { System.out.print("값 : "); vol=sc.nextInt(); tv.volumeDown(vol); tv.display(); }else if(a1.equals("3")) { tv.powerOff(); break; }else { System.out.println("1,2,3번 중 하나를 입력해주세요."); } } } else if(a.equals("N")) { continue; }else System.out.println("Y 또는 N을 입력해주세요"); } else if (choice.equals("2")) { System.out.print("라디오 전원을 키시겠습니까?(Y/N)"); a = sc.next(); if (a.equals("Y")) { radio.powerOn(); while(true) {
m.Menu2(); a1 =sc.next(); if(a1.equals("1")) { System.out.print("값 : "); vol=sc.nextInt(); radio.volumeUp(vol); radio.display(); }else if(a1.equals("2")) { System.out.print("값 : "); vol=sc.nextInt(); radio.volumeDown(vol); radio.display(); }else if(a1.equals("3")) { radio.powerOff(); break; }else { System.out.println("1,2,3번 중 하나를 입력해주세요."); } } } else if(a.equals("N")) { continue; }else System.out.println("Y 또는 N을 입력해주세요."); }else if(choice.equals("3")) { break; }else { System.out.println("1,2,3 중 하나를 입력해주세요."); } } }
} |
'BACKEND > Java' 카테고리의 다른 글
[Java] IO (0) | 2017.10.30 |
---|---|
[Java] Exception (0) | 2017.10.30 |
[Java] 연습코딩-1 (0) | 2017.10.27 |
[Java] Generic (0) | 2017.10.27 |
[Java] Collection (0) | 2017.10.27 |