언어/Java
interface를 이용하여 TV프로그램짜기
power-girl0-0
2020. 4. 16. 22:09
728x90
동글동글><
안녕하세요-!! 오늘은 interface -!! 즉, 상속을 이용해서 TV프로그램을 짜볼 예정입니다 ㅎㅎ
따라올 준비 되셨나요?ㅎㅎㅎ
다같이 출발해보아요-!!
먼저, 저의 소스에 대한 설명을 간단하게 하고 출발해보겠습니다ㅎㅎ
저는 package를 두개로 해서 interface를 활용하였습니다.
1. default package 2. TVPKG 등 두가지 패킷을 활용하였습니다.
소스는 다음 아래와 같이 총 5가지의 java소스로 상속하여 만들었습니다.
1. default package
① TVMain.java (switch문을 사용하여 사용자가 원하는 기능을 출력해줌)
② TVData.java (전원켜기, 끄기의 메소드 구현 및 채널과 볼륨 초기화해주는 메소드 구현)
③ SmartTV.java(interface를 상속받아 내용 구현)
2. TVPKG
① TVch.java (tv채널에 대한 메소드 생성)
② TVvol.java (tv볼륨에 대한 메소드 생성)
자-!! 이제 본격적으로 소스로 넘어가겠습니다 ㅎㅎ
<TVch.java>
package TVPKG;
public interface TVch { //채널에 대한 인터페이스
void channel_up(); //채널 업 메소드
void channel_down(); //채널 다운 메소드
}
< TVvol.java >
package TVPKG;
public interface TVvol { //볼륨에 대한 인터페이스
void volume_up(); //볼륨 업 메소드
void volume_down(); //볼륨 다운 메소드
}
< TVData.java >
class TVData{
int channel, volume;//채널번호, 볼륨 멤버 변수 선언
public TVData(int channel, int volume) //채널번호와 볼륨 초기화해주는 메소드
{
this.channel=channel;
this.volume=volume;
}
public void turn_on() //전원켜기 메소드
{
System.out.println("TV가 켜졌습니다.");
}
public void turn_off() //전원끄기 메소드
{
System.out.println("TV가 꺼졌습니다.");
}
}
<SmartTv.java>
import TVPKG.TVch;
import TVPKG.TVvol;
class SmartTv extends TVData implements TVvol, TVch //TVData클래스와 interface 상속
{
public SmartTv(int channel, int volume) //클래스 TVData의 초기화 메소드를 상속받음
{
super(channel, volume);
}
@Override
public void channel_up() //채널 업 메소드
{
channel+=1;
System.out.println("현재채널 : " + channel);
}
@Override
public void channel_down() //채널 다운 메소드
{
channel-=1;
System.out.println("현재채널 : " + channel);
}
@Override
public void volume_up() //볼륨 업 메소드
{
volume+=1;
System.out.println("현재볼륨 : " + volume);
}
@Override
public void volume_down() //볼륨 다운 메소드
{
volume-=1;
System.out.println("현재볼륨 : " + volume);
}
}
<TVMain.java>
import java.util.Scanner;
public class TVMain {
public static void main(String[] args) {
SmartTv sm=new SmartTv(7, 10);//7은 채널번호, 10은 볼륨의 초기값
Scanner sc=new Scanner(System.in);
while(true)
{
System.out.println("1.전원 켜기 2.볼륨업 3.볼륨다운 4.채널올리기 5.채널내리기 6.현재 위치 7.전원끄기");
System.out.print("TV 메뉴 선택 : ");
int choose=sc.nextInt();
switch(choose)
{
case 1 :
sm.turn_on(); //전원켜기 메소드를 불러옴
break;
case 2 :
sm.volume_up(); //볼륨 업 메소드를 불러옴
break;
case 3 :
sm.volume_down(); //볼륨다운 메소드를 불러옴
break;
case 4 :
sm.channel_up(); //채널 업 메소드를 불러옴
break;
case 5 :
sm.channel_down(); //채널다운 메소드를 불러옴
break;
case 6 :
System.out.println("현재 채널은 "+sm.channel+"번이고 볼륨은 "+sm.volume); //현재 채널과 볼륨을 출력
break;
case 7 :
sm.turn_off(); //전원끄기 메소드를 불러옴
break;
default : System.out.println("올바른 메뉴를 선택해주세요.");
}
System.out.println();
if(choose==7)
{
break; //전원끄기인 7을 입력하면 반복문에서 빠져나옴
}
}
sc.close();
}
}
이상 소스를 소개해 드렸고 이제 출력 결과를 보여드리고 마치도록 하겠습니다-!!
다음에 또 만나요-!!!! 동글동글 @.@
728x90