[Java] 연습코딩-2

- 조건


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

댓글

Designed by JB FACTORY