JAVA/문제풀이
추상 클래스와 인터페이스 사용한 티비 동작
nsh95
2023. 12. 6. 20:47
package class07;
import java.util.Random;
/*
매개변수를 class 에 받고
String userName
int channel 은 class SamsungTV 클래스 안에
임플리먼츠 파일에 channelUp() , channelDown() channelRandom()
printInfo(), channelRandom(),
미니 티비에 battery 변수 넣고
channelRandom() 까지 다 만듬
삼성 티비는 사용자를 홍길동으로 받고
채널업에선 처음 채널은 1로 고정
삼성미니티비2 는 처음채널은 1로 고정 배터리는 50~70으로 설정
LgTV는 처음 채널 1로 고정 처음 전원은 off 상태
*/
class SamsungTV implements TvImpl {
Random rd = new Random();
String userName;
int channel=1;
SamsungTV(String userName) {
this.userName = userName;
}
@Override
public void channelUp() {
++channel;
System.out.println("현재 채널은 " + this.channel + "입니다");
this.channel++;
System.out.println("바뀐 후 채널은 " + this.channel + "입니다");
}
@Override
public void channelDown() {
System.out.println(channel);
this.channel--;
System.out.println("현재 채널은 " + this.channel + "입니다.");
}
public void channelRandom() {
int random = rd.nextInt(999) + 1;
System.out.println(random);
if (random == this.channel) {
return;
}
this.channel = random;
}
@Override
public void printInfo() {
System.out.println("[프린트 인포]현재 시청 채널은 " + this.channel + "번 입니다");
}
}
class SamsungMiniTV extends SamsungTV {
String userName;
int battery;
int channel =1;
SamsungMiniTV(String userName) {
super(userName);
battery = new Random().nextInt(20)+50;
}
@Override
public void channelRandom() {
if (this.battery > 0) {
Random random = new Random();
int randomChannel = random.nextInt(999) + 1;
while (randomChannel == this.channel) {
randomChannel = random.nextInt(999) + 1;
}
this.channel = randomChannel;
this.battery -= 10;
} else {
System.out.println("배터리가 부족하여 채널 변경이 불가능합니다.");
}
}
}
class LgTV implements TvImpl {
boolean power = true;
int channel = 1;
@Override
public void channelUp() {
if (this.power) {
this.channel++;
}
}
@Override
public void channelDown() {
if (this.power && this.channel > 1) {
this.channel--;
}
}
@Override
public void printInfo() {
if (this.power) {
System.out.println("현재 시청 채널은 " + this.channel + "입니다.");
} else {
System.out.println("전원이 꺼져있습니다...");
}
}
}
public class Test01 {
public static void main(String[] args) {
SamsungTV tv1 = new SamsungTV("홍길동");
SamsungMiniTV tv2 = new SamsungMiniTV("홍길동");
LgTV tv3 = new LgTV();
tv1.channelUp();
tv1.channelUp();
tv1.channelUp();
tv1.channelDown();
tv1.printInfo();
System.out.println("삼성 미니");
tv2.channelRandom();
tv2.printInfo();
System.out.println("LgTV");
tv3.printInfo();
tv3.channelUp();
tv3.printInfo();
tv3.channelDown();
tv3.printInfo();
}
}