관리 메뉴

Frog is cry

인터페이스 본문

JAVA/복습

인터페이스

Frog is cry 2020. 7. 22. 20:00

ex01

package 인터페이스.ex05;

public interface RemoteControl {
	//상수
	int MAX_VOLUME = 10;
	int MIN_VOLUME = 0;
	
	//메소드
	void turnOn();
//	public abstract 를 생략해도 기본적으로 들어감
	void turnOff();
	void setVolume(int volume);
	
}
package 인터페이스.ex05;

public interface Searchable {
	void search(String url);
	
}
package 인터페이스.ex05;

public class SmartTelevision_Ex {
	public static void main(String[] args) {
		
		SmartTelevision tv = new SmartTelevision();
		
		RemoteControl rc = tv;
		rc.turnOn();
		rc.setVolume(5);
		rc.turnOff();
		
		Searchable sh = tv;
		sh.search("http://www.naver.com");
		
		
	}
}
package 인터페이스.ex05;

import 인터페이스.ex06.RemoteControl;

public class SmartTelevision implements 인터페이스.ex05.RemoteControl, Searchable{


	private int volume;

	@Override
	public void turnOn() {
		System.out.println("TV를 켭니다.");
	}

	@Override
	public void turnOff() {
		System.out.println("TV를 끕니다.");
	}

	@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 볼륨 : " + this.volume);
	}

	@Override
	public void search(String url) {
		System.out.println(url + "을 검색합니다.");
	}	

}

ex02

package 인터페이스.ex06;

public class MyClass {
	//Field
	RemoteControl rc = new Television();
	
	//Constructor
	MyClass() {
		
	}
	
	MyClass(RemoteControl rc) {
		this.rc = rc;
		rc.turnOn();
		rc.setVolume(5);
	}
	
	//Method
	void MethodA() {
		RemoteControl rc = new Audio();
		rc.turnOn();
		rc.setVolume(5);
	}
	
	void MethodB(RemoteControl rc) {
		rc.turnOn();
		rc.setVolume(5);
		
	}
}
package 인터페이스.ex06;

public class MyClass_Ex {
	public static void main(String[] args) {
		
		System.out.println("1)---------------");
		
		MyClass myClass1 = new MyClass();
		myClass1.rc.turnOn();
		myClass1.rc.setVolume(5);
		
		System.out.println("2)---------------");
		
		MyClass myClass2 = new MyClass(new Audio());
		
		System.out.println("3)---------------");
		MyClass myClass3 = new MyClass();
		myClass3.MethodA();
		
		System.out.println("4)---------------");
		MyClass myClass4 = new MyClass();
		myClass4.MethodB(new Television());
		
		
		
	}
}
package 인터페이스.ex06;

public class Television implements RemoteControl {
	
	private int volume;

	@Override
	public void turnOn() {
		System.out.println("TV를 켭니다.");
	}

	@Override
	public void turnOff() {
		System.out.println("TV를 끕니다.");
	}

	@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 볼륨 : " + this.volume);
	}

	
}
package 인터페이스.ex06;

public interface RemoteControl {
	//상수
	int MAX_VOLUME = 10;
	int MIN_VOLUME = 0;
	
	//메소드
	void turnOn();
//	public abstract 를 생략해도 기본적으로 들어감
	void turnOff();
	void setVolume(int volume);
	
}
package 인터페이스.ex06;

public class Audio implements RemoteControl{
	
	private int volume;

	@Override
	public void turnOn() {
		System.out.println("Audio를 켭니다.");
	}

	@Override
	public void turnOff() {
		System.out.println("Audio를 끕니다.");
	}

	@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("햔재 Audio 볼륨 : " + this.volume);
	}

	


}

'JAVA > 복습' 카테고리의 다른 글

For-each  (0) 2020.07.29
인터페이스와 추상클래스의 차이  (0) 2020.07.25
추상클래스  (0) 2020.07.22
타입변환과다형성  (0) 2020.07.22
메소드 재정의(오버라이딩)  (0) 2020.07.22
Comments