강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

cyj1498님의 프로필 이미지
cyj1498

작성한 질문수

Do it! 자바 프로그래밍 입문 with 은종쌤

클래스와 객체1 (4)

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

작성

·

170

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

첫번째 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 ;

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

cyj1498님의 프로필 이미지
cyj1498

작성한 질문수

질문하기