1. 객체대상의 특징 뽑기
작업내용: 티비 전원, 채널, 불륨 조절하기
2. 상태(state)와 행위(behavior)로 분류하기
<상태>
tv의 모델명
tv의 전원상태(on, off)
tv의 채널
tv의 볼륨
<행위>
tv를 켠다 -> tv채널을 찾는다 / tv 볼륨을 맞춘다.
3. 상태정보를 기반으로 멤버변수 정보 결정하기(변수명, 타입)
-model: String
-power: boolean
-channel: int
-volume: int
4. 행위정보를 기반으로 메서드 정보 결정하기(메서드명, 리턴정보, 파라미터정보)
+pushPower(): void
+channelUp(): void
+channelDown(): void
+volumUp(): void
+volumDown(): void
class Tv {
private boolean power = false;
private int channel = 1;
private int volume = 5;
private String model;
public Tv(String model, int channel, int volume) {
setChannel(channel);
setVolume(volume);
setModel(model);
}
// 전원 누르면 온 오프
public void pushPower() {
if(power == false) {
power = true;
System.out.println("power on");
}
else {
System.out.println("power off");
power = false;
}
}
// 채널 올리기
public void channelUp() {
if(power == true) {
if(channel != 50) { // 만약 채널이 50이 아니면 채널을 하나 올려준다. (채널범위 50)
channel++;
System.out.println("현재 채널: " + channel);
}else {
System.out.println("마지막 채널입니다."); // 50 위로 X
}
}
}
// 채널 내리기
public void channelDown() {
if(power == true) {
if(channel != 1) { // 만약 채널이 1이 아니면 채널을 하나 내려준다.
channel--;
System.out.println("현재 채널: " + channel);
}else {
System.out.println("첫번째 채널입니다."); // 1 밑으로 X
}
}
}
// 볼륨 올리기
public void volumUp() {
if(power == true) {
if(volume < 10) {// 만약 볼륨이 10 보다 작으면 올려준다 (최대 볼륨 10)
volume++;
System.out.println("현재 볼륨: " + volume);
}else {
System.out.println("최대 볼륨입니다.");
}
}
}
// 볼륨 내리기
public void volumDown() {
if(power == true) {
if(volume > 1 && volume <= 10) { // 만약 볼륨이 1보다 크고 10보다 작거나 같다면 내려준다.
volume--;
System.out.println("현재 볼륨: " + volume);
}else {
System.out.println("최소 볼륨입니다.");
}
}
}
public String toStirng() {
String info = "=======================\n";
info += "Tv 모델: " + model + "\n";
info += "Tv의 현재 상태: " + power + "\n";
info += "채널: " + channel + "\n";
info += "볼륨: " + volume + "\n";
info += "=======================";
return info;
}
public boolean isPower() {
return power;
}
public void setPower(boolean power) {
this.power = power;
}
public int getChannel() {
return channel;
}
public void setChannel(int channel) {
this.channel = channel;
}
public int getVolume() {
return volume;
}
public void setVolume(int volume) {
this.volume = volume;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
}
public class TvTest {
public static void main(String[] args) {
Tv lg = new Tv("LG",49, 2);
System.out.println(lg.toStirng());
lg.pushPower();
lg.channelDown();
lg.pushPower();
lg.channelDown();
lg.volumUp();
lg.pushPower();
lg.volumUp();
}
}