본문 바로가기

프로그래밍/Java

[JAVA|기초|클래스] 구 클래스 예제, 한글로

반응형

문제는 이렇다.

http://k.daum.net/qna/view.html?qid=44nX0


(1) Sphere 클래스

- 인스턴스 변수:
  diameter

- 메소드:
  diameter를 매개변수로 받는 constructor
  diameter에 대한 getter, setter
  부피를 구하는 메소드
  표면적을 구하는 메소드
  toString -- 지름을 문자열로 만들어 리턴(예를 들어 지름은 1.5입니다.)

(2) SphereTest 클래스

- main 메소드는 다음을 실행

  1) 지름이 1.5인 구 생성
    Sphere s = new Sphere(1.5);
  2) 구에 대한 정보 출력
    System.out.println(s);
  3) 부피 출력
  4) 표면적 출력
  5) 지름을 2.5로 수정
  6) 구에 대한 정보 출력
  7) 부피 출력
  8) 표면적 출력

조건에 살짝 안 맞는 풀이는

구실험.java
// 구실험.java
public class 구실험 {
    public static void main(String[] args) {
        구 탁구공 = new 구(1.5);
        System.out.println(탁구공);
        System.out.println("부피는 " + 탁구공.부피() + "입니다.");
        System.out.println("표면적은 " + 탁구공.표면적() + "입니다.");
        탁구공.지름을(2.5);
        System.out.println(탁구공);
        System.out.println("부피는 " + 탁구공.부피() + "입니다.");
        System.out.println("표면적은 " + 탁구공.표면적() + "입니다.");    
    }
}
구.java
// 구.java
public class 구 {
    private final double PI = 3.14159;
    private double 지름;
    public 구(double 지름) { this.지름 = 지름; }
    // getter
    public double 지름이() { return 지름; }
    // setter  
    public void 지름을(double 지름) { this.지름 = 지름; }
    public String 문자열로() { return String.format("지름이 %f입니다.", 지름);     }
    public String toString() { return 문자열로(); }
   
    //                2             / d \ 2          2
    // S = 4 x pi x r   = 4 x pi x | --- |  = pi x d
    //                              \ 2 /
    public double 표면적() { return PI*(지름)*(지름); }

    //       4           3    4          / d \ 3      4             3
    //  V = --- x pi x r   = --- x pi x | --- |  = ------- x pi x d
    //       3                3          \ 2 /      3 x 8
    //
    //       1           3
    //    = --- x pi x d
    //       6
    public double 부피() { return PI*(지름)*(지름)*(지름)/6; }
}

728x90