본문 바로가기

Study/Java

Power Java 9장 LAB

1. 원을 나태내는 클래스 Circle을 단계적으로 작성하여 보자.

1) 원의 반지름을 매개 변수로 받는 생성자를 작성하라.

2) 매개 변수가 없는 생성자로써 원의 반지름을 0.0으로 설정한다.

3) 설정자 메소드인 setRadius()를 작성한다.

4) 접근자 메소드인 getRadius를 작성한다.

5) double형의 값을 제곱하여 반환하는 square() 메소드를 작성한다.

전용 메소드로 선언하라.

6) 원의 면적을 계산하는 getArea() 메소드를 작성한다.

이떄 squre() 메소드를 사용하라.

7) 원의 둘레를 계산하는 getArea() 메소드를 작성한다. 이때 square() 메소드를 사용하라.

8) PI값을 반환하는 정적 메소드getPI() 메소드를 작성한다.

9) Circle 클래스 안에 main()을 추가하고 다음과 같이 square() 메소드를 호출하여 보자.

어떤 결과가 발생하는가? 또 그 이유는 무엇인가?

10) main() 안에서 정적 메소드인 getPI()를 호출하여 보자.

11) Circle클래스를 테스트하기 위하여 별도의 클래스인 CircleTest 클래스를 작성하라. 

main()안에서 Circle객체를 생성하고, getArea()와 getPerimeter()를 호출하여서 원의 면적과 둘레를 구하라.

12 ) CircleTest 클래스 안에서 다음과 같이 radius를 참조하여보라.

어떤 결과가 나오는가? 그 이유는?

13) 필드 radius의 수식자인 private를 제거하고, 12번을 다시 하여보자.

어떤 결과가 나오는가? 그 이유는?

14) 필드 radius의 수식자를 public르호 변경하고 12번을 다시 하여 보자.

어떤 결과가 나오는가? 그 이유는?

15) 전용 메소드인 square()를 다음과 같이 호출하여 보자.

어떤 결과가 나오는가? 그 이유는?

16) Circle클래스를 UML로 그려보라.

필드나 메소드가 전용인지 공용인지도 표시하라.


import java.util.*;

import java.io.*;


class Circle 

{

public double radius;

static double PI = 3.141592; // 1


public Circle() {radius = 0.0;} // 2

public Circle(double r) {radius = r;} 


public void setRadius(double s_cle) {radius = s_cle;} // 3


public double getRadius() {return radius;} // 4


public double square() {return radius * radius;} // 5

public double square( double r ) {return r * r;}


public double getArea() {return 3.14 * square();} // 6


public double getPerimeter() {return 2 * radius * 3.14;}// 7


public double getPI() {return PI;} // 8


}


public class test_1 

{

public static void main(String[] args) throws Exception 

{

Circle cir = new Circle();


System.out.println(cir.getPI()); // 10

System.out.println(cir.getArea()); // 11

System.out.println(cir.getPerimeter()); // 11

Circle cir_2 = new Circle(5.0); // 12 ( private 설정시 접근권환이 없어 오류 )

cir_2.radius = 10.0; // 13 ( private 제거시 접근가능 ) 

// 14 ( public 설정시 접근가능 ) 

System.out.println(cir_2.square(20.6));

}

}

'Study > Java' 카테고리의 다른 글

Power Java 10장 프로그래밍  (0) 2012.06.28
Power Java 10장 연습문제  (0) 2012.06.28
Power Java 9장 프로그래밍  (0) 2012.06.28
Power Java 9장 연습문제  (0) 2012.06.28
Power Java 8장 LAB  (0) 2012.06.28