public class Circle {
protected int r; // 원의 반지름
public static final double PI=3.14; // 클래스 종단 변수로 다시 선언할 것.
static int noOfcircle=0; // 생성된 원 객체의 수
private float areaOfcircle; // 원 객체의 넓이
public Circle(int r){
this.r=r;
noOfcircle++;
}
public static int numberOfcircle(){
return noOfcircle;
}
void calculatingarea(){
areaOfcircle = (float)(r*r*PI);
}
public float getAreaOfcircle(){
return areaOfcircle;
}
}
public class Area{
public static void main(String args[]){
Circle c1 = new Circle(10);
c1.calculatingarea();
Circle c2 = new Circle(20);
c2.calculatingarea();
Circle c3 = new Circle(40);
c3.calculatingarea();
Circle c4 = new Circle(5);
c4.calculatingarea();
System.out.println("원 객체"+Circle.numberOfcircle()+"의 넓이는"+c1.getAreaOfcircle()+"이다.");
System.out.println("원 객체"+Circle.numberOfcircle()+"의 넓이는"+c2.getAreaOfcircle()+"이다.");
System.out.println("원 객체"+Circle.numberOfcircle()+"의 넓이는"+c4.getAreaOfcircle()+"이다.");
}
}
위의 코드는 원의 반지름을 이용하여 원의 넓이를 구하기 위한 프로그램을 구현하기 위해 작성한 Circle이라는 비실행 클래스와 Area라는 실행클래스 입니다.
혹시 실행클래스에서 Circle.numberOfcircle() 이 값이 다 4로 떠서요. 클래스메소드의 형식을 유지하고 출력문의 위치를 바꾸지 않으면서
각각 1,2,4로 정확하게 표기할 수 있는 방법이 없을까요? 3시간동안 끙끙대고있는데 벽에 가로막힌 기분이네요.
도와주시면 정말 감사하겠습니다.