-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
디폴트 생성자 안에 또 생성자를 만들 수도 있나요?
21.07.17 10:50 작성 조회수 88
0
package reference;
public class Circle {
Point point;
int radius;
public Circle() {
point = new Point();
}
}
클래스와 객체1(4) 참조자료형 설명하실 때의 예시입니다.
그 전 강의에서는
Public Cicrle(){} 처럼 디폴트 생성자만 선언하거나,
Public Circle(int x){
radius = x;
}
이런식으로 int x를 매개변수로 받아 Circle의 멤버변수로 대입하는 기능을 수행하는 생성자를 선언했었습니다.
그런데 이번에는
public Circle() {
point = new Point();
}
이렇게 디폴트 생성자 안에 새로운 생성자를 만드셨는데요,
무슨 차이가 있는지 궁금합니다. 이렇게 선언하면 해당 클래스에서 point.x, point.y 로 Point 클래스의 멤버변수(x, y)를 가져올 수 있는건가요?
답변을 작성해보세요.
2
김동현
2021.07.26
첫번째 public class Circle 는 Class를 의미합니다.
두번째 public Circle() 은 class 내부의 Method입니다.
public Circle() {
point = new Point();
}
여기서 point는 Circle 클래스를 정의할 때 Point 클래스를 참조할 때 객체이름을
point로 지정한 것입니다. Class는 객체(Object)에 대해서 정의(변수와 함수)를 내려놓은
일종의 설계도면이고, 이를 활용하기 위해서는 '꼭' 객체 선언을 해야합니다.
point = new Point(); 이 부분이 Point Class에 대해서 새로운 객체를 선언한 것이고
이를 통해 Point Class의 변수인 int x 와 y 에 대해서 point.x, point.y를 통해
새로운 값을 넣어줄 수 있습니다.
Ex) point.x = 10; , point.y = 5 ;
답변 1