관리 메뉴

Frog is cry

interface(day24) 본문

JAVA/국비수업

interface(day24)

Frog is cry 2020. 7. 31. 17:45
package day25.ex04_interface;

public class Television implements RemoteControl{
	//필드
	private int volume;
	//
	//turnOn() 추상 메소드의 실제 메소드
	
	@Override
	public void turnOn() {
		System.out.println("TV를 켭니다.");
	}

	//turnOff() 추상 메소드의 실제 메소드
	@Override
	public void turnOff() {
		System.out.println("TV를 끕니다.");
	}
	
	//setVolume() 추상 메소드의 실제 메소드
	
	@Override
	public void setVolume(int volume) {
		if(volume > RemoteControl.MAX_VOLUME) {
			this.volume = RemoteControl.MAX_VOLUME; 
			} else if(volume < RemoteControl.MIN_VOLUME) {
				this.volume = RemoteControl.MIN_VOLUME;
			}else {
				this.volume = volume;
			}
			System.out.println("현재 TV 볼륨 : " + volume);
	}
}
package day25.ex04_interface;

public class Audio implements RemoteControl{
	//필드
	private int volume;
	//
	//turnOn() 추상 메소드의 실제 메소드
	
	@Override
	public void turnOn() {
		System.out.println("Audio를 켭니다.");
	}

	//turnOff() 추상 메소드의 실제 메소드
	@Override
	public void turnOff() {
		System.out.println("Audio를 끕니다.");
	}
	
	//setVolume() 추상 메소드의 실제 메소드
	
	@Override
	public void setVolume(int volume) {
		if(volume > RemoteControl.MAX_VOLUME) {
			this.volume = RemoteControl.MAX_VOLUME; 
			} else if(volume < RemoteControl.MIN_VOLUME) {
				this.volume = RemoteControl.MIN_VOLUME;
			}else {
				this.volume = volume;
			}
			System.out.println("현재 TV 볼륨 : " + volume);
	}


}
package day25.ex04_interface;

import javax.rmi.ssl.SslRMIClientSocketFactory;

public interface RemoteControl {

	//상수
	int MAX_VOLUME = 10;
	int MIN_VOLUME = 0;
	
	//추상 메소드
	void turnOn();
	void turnOff();
	void setVolume(int volume);
	
	//디폴트 메소드
	default void setMute(boolean mute) {
		if(mute) {
			System.out.println("무음 처리합니다.");
		}else {
			System.out.println("무음 해제합니다.");
		}
	}
	//정적 메소드
	static void changeBatterty() {
		System.out.println("건전지를 교환합니다.");
	}
	
}
package day25.ex04_interface;

public class RemoteControl_Ex {
	public static void main(String[] args) {
		RemoteControl rc;
//		RemoteControl rc = new RemoteControl(); 이와 같이 못함 
		
		rc = new Television();
		rc = new Audio();
		
		rc.turnOn();
		rc.turnOff();
		
	}
}

'JAVA > 국비수업' 카테고리의 다른 글

클래스 - (Day01)  (0) 2020.08.10
익명클래스(day25)  (0) 2020.08.03
instanceOf(day24)  (0) 2020.07.31
다형성, instanceOf(Day22)  (0) 2020.07.30
캐스팅(day22)  (0) 2020.07.29
Comments