JAVA/JAVA_복습문제
JAVA_class 만들기_#2_생성자 오버로딩_Circle
onivv
2023. 11. 30. 16:30
문제
Circle 원 클래스가 있습니다.
new Circle(10); // 원 : 반지름 10 넓이 314.0
new Circle("도넛"); // 도넛 : 반지름 1 넓이 3.14
new Circle("피자",12); // 피자 : 반지름 12 넓이 452.16
HINT 모든 원들은 원주율(PI)이라는 3.14값을 갖고있어용
원객체명.printInfo();
--> 원는(은) 넓이가 314.0입니다.
--> 피자는(은) 넓이가 452.16입니다.
힌트 ★
< 공유자원 >
- static final double PI = 3.14
- 어떤 클래스의 모든 객체가 동일한 멤버 변수값을 가질때, 그 멤버변수를 공유자원이라고 함
- 객체와 무관하므로 static을 붙임
- 생성자에서 초기화하지 않고 클래스에서 초기화를 함
--> 각각의 객체마다 다른값인가? --> 멤버변수(속성)
--> 각각의 객체가 모두 같은값인가? --> static(클래스 소속)
코드
package class01;
class Circle{
String name;
int radi;
double circum;
static final double PI = 3.14;
Circle(int radi){
this("원",radi);
}
Circle(String name){
this(name,1);
}
Circle(String name, int radi){
this.name = name;
this.radi = radi;
this.circum = this.radi * this.radi * Circle.PI;
//PI:클래스 소속이니까 this. ㄴㄴ 가독성을 위해서 Circle붙이기
//객체소속.멤버변수 xxx //클래스소속.변수 ooo
}
void printInfo() {
System.out.println(this.name + "는(은) 넓이가 " + this.circum + "입니다.");
}
void changeRadi(int radi) {
this.radi = radi;
this.circum = this.radi * this.radi * Circle.PI;
}
}
public class Test03_Circle {
public static void main(String[] args) {
Circle c1 = new Circle(10); // 원 : 반지름 10, 넓이 314.0
Circle c2 = new Circle("도넛"); // 도넛 : 반지름 1, 넓이 3.14
Circle c3 = new Circle("피자",12); // 피자 : 반지름 12, 넓이 452.16
c1.printInfo();
c2.printInfo();
c3.printInfo();
Circle c = new Circle("거울");
c.changeRadi(2); //인자1개,outputx
c.printInfo();
}
}