power-girl0-0

interface를 이용하여 TV프로그램짜기 본문

언어/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
Comments