• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

디폴트 생성자 안에 또 생성자를 만들 수도 있나요?

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)를 가져올 수 있는건가요? 

답변 1

답변을 작성해보세요.

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 ;

김동현님의 프로필

김동현

2021.07.26

빠져있는게 있어 추가 설명드리면,   클래스명과 동일하고, 리턴 자료형이 없는것을 생성자라고 표현합니다. 메소드의 한 종류입니다.