IT/솔루션) Power Java
Power JAVA 9장 ) 생성자와 접근 제어 - LAB
돔찌
2019. 4. 23. 07:46
<2016. 10. 3. 18:58>
Power JAVA 9장 ) 생성자와 접근 제어 - LAB
/*
* 원을 나타내는 클래스 Circle을 단계적으로 작성해보자.
*/
class Circle {
private double radius;
static final double PI = 3.141592;
//PI라는 이름으로 3.141592로 초기화된 정적 변수
//1. 원의 반지름을 매개 변수로 받는 생성자를 작성하라.
Circle(double radius) {
this.radius = radius;
}
//2. 설정자 메소드인 setRadius()와 접근자 메소드인 getRadius()를 작성한다.
void setRadius(double radius) {
this.radius = radius;
}
double getRadius() {
return radius;
}
//3. double형의 값을 제곱하여 반환하는 square() 메소드를 작성한다. 전용 메소드로 선언하라.
private double square(double n) {
return n*n;
}
//4. 원의 면적을 계산하는 getArea() 메소드를 작성한다. 이때 square() 메소드를 사용하라.
double getArea() {
return this.square(radius) * PI;
}
//5. 원의 둘레를 계산하는 getPerimeter() 메소드를 작성한다.
double getPerimeter() {
return 2 * PI * radius;
}
//6. PI값을 반환하는 정적 메소드 getPI를 작성한다.
static double getPI() {
return PI;
}
//7. Cicle 클래스 안에 main()를 추가하고 다음과 같이 square() 메소드를 호출하여보자. 어떤 결과가 발생하는가?
// - 에러가 남. square() 메소드는 인스턴스메소드로 선언되었기 때문에 객체를 통해서만 접근이 된다.
//8. main() 안에서 정적 메소드인 getPI를 호출하여 보라.
// - static으로 정적메소드로 선언하였기 때문에 에러없이 실행됨.
}
/* 9. Circle 클래스를 테스크하기 위하여 별도의 클래스인 CircleTest 클래스를 작성하라.
* main() 안에서 Circle 객체를 생성하고 getArea()와 getPerimeter()를 호출하여서 원의 면적과 둘레를 구하라. */
public class LAB {
public static void main(String[] args) {
Circle myC = new Circle(5);
// 객체 생성, 생성자 호출시 반지름을 5.0으로 설정
System.out.println("원의 면적은 : " + myC.getArea());
System.out.println("원의 둘레는 : " + myC.getPerimeter());
}
}