오늘의 과제는 Main 함수가 작성되어 있는데 이에 맞는 CellPhone이라는 클래스를 완성하라는 과제입니다.
CellPhone | |
String model | // 핸드폰 모델 번호 |
double battery | // 남은 배터리 양 |
CellPhone(String model) | // 모델 번호를 인자로 받는 생성자 |
void call(int time) | // 통화 시간(분)을 출력하고, 통화 시간에 따라 배터리 양을 감소시킨다. // 감소되는 배터리 양 = 통화시간(분) * 0.5 // 배터리 양은 0보다 작아지지 않는다. // 통화 시간(분)이 0보다 작은 경우에는 IllegalArgumentException(“통화시간입력오류”)을 발생시킨다. |
void charge(int time) | // 충전한 시간(분)을 출력하고, 충전한 시간에 따라 배터리 양을 증가시킨다. // 충전되는 배터리 양 = 충전시간(분) * 3 // 배터리 양은 100까지만 증가한다. // 충전 시간(분)이 0보다 작은 경우에는 IllegalArgumentException(“충전시간입력오류”)을 발생시킨다. |
void printBattery() | // 남은 배터리 양을 출력한다. |
boolean equals(Object otherObject) | // Object 타입의 객체를 입력받고, 입력받은 객체가CellPhone 타입의 클래스이면서 모델 번호가 같은 경우에 true를 리턴한다. |
위와 같은 멤버변수와 메소드를 가지고 있습니다. 실제 실행 되는 쏘스를 한번 보시죠~
public static void main(String[] args) {
CellPhone myPhone = new CellPhone("SCH-600");
myPhone.charge( 20 ); //20분간 충전을 한다.
myPhone.printBattery();
myPhone.call( 300 ); //300분간 통화를 한다.
myPhone.printBattery();
myPhone.charge( 50 ); //50분간 충전을 한다.
myPhone.printBattery();
myPhone.call( 40 ); //40분간 통화를 한다.
myPhone.printBattery();
try {
myPhone.call( -20 ); //통화시간이 잘못 입력되었다.
} catch(IllegalArgumentException e) {
System.out.println( e.getMessage() );
}
CellPhone yourPhone = new CellPhone("SCH-600");
if( myPhone.equals(yourPhone) ) {
System.out.println("동일 모델입니다.");
} else {
System.out.println("다른 모델입니다.");
}
}
}
위와 같은 소스를 가지고서 아래와 같은 결과가 나와야 합니다.
남은 배터리 양 : 60.0
통화 시간 : 300분
남은 배터리 양 : 0.0
충전 시간 : 50분
남은 배터리 양 : 100.0
통화 시간 : 40분
남은 배터리 양 : 80.0
통화시간입력오류
동일 모델입니다.
이런 결과가 나오도록 해야하는 것입니다. 그래서 나온 녀석이 아래에 있습니다.
String model;
double battery;
public CellPhone(String model) {
this.model = model;
}
void call(int time) {
if (time < 0) {
throw new IllegalArgumentException("통화시간입력오류");
} else {
System.out.println("통화 시간 : " + time + "분");
battery = battery - time * 0.5;
if (battery < 0)
battery = 0;
}
}
void charge(int time) {
if (time < 0) {
throw new IllegalArgumentException("충전시간입력오류");
} else {
System.out.println("충전 시간 : " + time + "분");
battery = battery + time * 3;
if (battery > 100)
battery = 100.0;
}
}
void printBattery() {
System.out.println("남은 배터리 양 :" + battery);
}
public boolean equals(Object otherObject) {
if((otherObject instanceof CellPhone)&&model.equals(((CellPhone) otherObject).model)){
return true;
}
return false;
}
}
간단한 소스이니 설명은 생략~ ^^;;;
'Device & Language > Java' 카테고리의 다른 글
Java의 연산자(내림차순) (0) | 2010.08.31 |
---|---|
배열 원소의 최기값 (0) | 2010.08.31 |
Java StringBuilder vs StringBuffer (1) | 2010.08.23 |
Java Message Service spec (0) | 2010.08.22 |
자바를 이용한 부대활동(???) (0) | 2010.08.21 |