프로그래밍 언어/JAVA

<JAVA> 명품 JAVA Programming 5장 실습문제 3- 4번

창조적생각 2021. 7. 8. 21:31

다음은 단위를 변환하는 추상 클래스 Converter이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.Scanner;
abstract class Converter {
   abstract protected double convert(double src); // 추상 메소드
   abstract protected String getSrcString(); // 추상 메소드
   abstract protected String getDestString(); // 추상 메소드
   protected double ratio; // 비율
   public void run() {
      Scanner scanner = new Scanner(System.in);
      System.out.println(getSrcString()+"을 "+getDestString()+"로 바꿉니다.");
      System.out.print(getSrcString()+"을 입력하세요>> ");
      double val = scanner.nextDouble();
      double res = convert(val);
      System.out.println("변환 결과: "+res+getDestString()+"입니다");
      scanner.close();
   }
}
cs

 

3. Converter 클래스를 상속받아 원화를 달러로 변환하는 Won2Dollar 클래스를 작성하라. main() 메소드와 실행 결과는 다음과 같다.

public static void main(String args[]) {
   Won2Dollar toDollar = new Won2Dollar(1200); // 1달러는 1200원
   toDollar.run();
}

 

[실행결과]
원을 달러로 바꿉니다.
원을 입력하세요>> 24000
변환 결과: 20.0달러입니다

 

[풀이]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Won2Dollar extends Converter{
 
public Won2Dollar(double ratio) {
this.ratio = ratio;
}
 
protected double convert(double src) {
return src/ratio;
}
 
protected String getSrcString() {
return "원";
 
}
protected String getDestString() {
return "달러";
}{
 
}
 
}
cs

4.Converter 클래스를 상속받아 Km를 mile(마일)로 변환하는 Km2Mile 클래스를 작성하라, main() 메소드와 실행 결과는 다음과 같다.

public static void main(String args[]) {
   Km2Mile toMile = new Km2Mile(1.6); // 1마일은 1.6km
   toMile.run();

}

[실행결과]

Km을 mile로 바꿉니다.
Km을 입력하세요>> 30
변환 결과: 18.75mile입니다

 

[풀이]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Km2Mile extends Converter {
 
Km2Mile(double ratio){
this.ratio = ratio;
}
@Override
protected double convert(double src) {
// TODO Auto-generated method stub
return src/ratio;
}
 
@Override
protected String getSrcString() {
// TODO Auto-generated method stub
return "KM";
}
 
@Override
protected String getDestString() {
// TODO Auto-generated method stub
return "Mile";
}
 
 
}
cs

 

728x90