본문 바로가기

콩's EDUCATION/콩's JAVA_RUN

Java 문제 5

CellPhone	클래스
-변수 
String model	// 핸드폰 모델 번호
double battery;	// 남은 배터리 양

-생성자
CellPhone(String model)	// 모델 번호를 인자로 받는 생성자

-메서드1 
void  call(int time)	// 통화 시간(분)을 출력하고, 통화 시간에 따라 배터리 양을 감소시킨다.

// 감소되는 배터리 양 = 통화시간(분) * 0.5
// 배터리 양은 0보다 작아지지 않는다.
// 통화 시간(분)이 0보다 작은 경우에는 
 IllegalArgumentException(“통화시간입력오류”)을 발생시킨다.

- 메서드2 
void  charge(int time)	// 충전한 시간(분)을 출력하고, 충전한 시간에 따라 배터리 양을 증가시킨다.
// 충전되는 배터리 양 = 충전시간(분) * 3
// 배터리 양은 100까지만 증가한다.
// 충전 시간(분)이 0보다 작은 경우에는 
IllegalArgumentException(“충전시간입력오류”)을 발생시킨다.

- 메서드3 
void  printBattery()	// 남은 배터리 양을 출력한다.

- 메서드4
boolean  equals(Object otherObject)	
// Object 타입의 객체를 입력받고, 입력받은 객체가 CellPhone 타입의 클래스이면서 
 * 모델 번호가 같은 경우에 true를 리턴한다.

*<<CellPhoneMain 실행결과>>
충전 시간 : 20분
남은 배터리 양 : 60.0
통화 시간 : 300분
남은 배터리 양 : 0.0
충전 시간 : 50분
남은 배터리 양 : 100.0
통화 시간 : 40분
남은 배터리 양 : 80.0
통화시간입력오류
동일 모델입니다. 

*/

public class CellPhoneMain {
 
	public static void main(String[] args) { 
		CellPhone myPhone = new CellPhone("iPod");
		
		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("다른 모델입니다.");
		} 
	} 
}


public class CellPhone {

}
 
package CellPhone.project;
class CellPhone {
 String model;
 double battery;
 public CellPhone(String model) {
  this.model = model;
 }
 //전화
 public void call(int time){
  if(time<0){
  throw new IllegalArgumentException("통화시간입력오류");   
  }
  battery = time*0.5;
  System.out.println("통화 시간 : "+battery);
 }
 //충전
 public void charge(int time){
  if(time<0){
  throw new IllegalArgumentException("충전시간입력오류");   
  } 
  battery = time*3;
  System.out.println("충전 시간 : "+time); 
 }
 public void printBattery(){  
  System.out.println("남은 배터리 양 : "+battery);  
 }
 @Override
 public boolean equals(Object obj) {
  if(obj instanceof CellPhone){
   return model == (((CellPhone)obj).model);
  }  
 else{
 return false;
 }
 }
 
}
public class CellPhoneMain {
 
 public static void main(String[] args) {
  CellPhone myPhone = new CellPhone("iPod");
  
  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("다른 모델입니다.");
  }
 }
}

CellPhoneMain.java