인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

pmg4289님의 프로필 이미지
pmg4289

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

Java언어 기출문제의 변형

17분8초 내용입니다.

해결된 질문

작성

·

79

0

맨 첫째줄에 X y = new Y(); 이 부분을 시행하면

클래스 x와 y의 기본 빈괄호들은 호출하는게 맞지 않나여?

x1y2x1y2y2로 답이 나오는데.. 생성자가 없다는게 무슨말인지도 모르겠네요 ㅠ

답변 1

1

주말코딩님의 프로필 이미지
주말코딩
지식공유자

생성자는 클래스의 이름하고 같아야합니다.

class Y extends X {
// 이 부분의 블럭
}

에 해당하는 곳에, Y라고 이름 지어진 메서드가 있나요?

없습니다.

 

메서드가 딱 2개 있습니다. method1, method2가 그 이름들이죠.

생성자는 메서드와 똑같이 생겼으나, 클래스 이름하고 같아야 합니다.

 

생성자로 사용하려면

public int Y() {
}

이런 식으로 메서드의 이름이 클래스 이름과 완전하게 같아야 생성자입니다.

 

우리가 변수를 만들 때

X y = new Y(); 이렇게 만들었죠?

이걸 자연어로 풀어서 설명하면,

X 형태의 y라는 변수를 선언할건데, new(하나의 객체를 생성) 키워드를 쓸거야.

그런데 나는 Y에 매개변수가 없는 생성자(Y())로 변수를 태어나게 하고 싶어.

라는 뜻입니다. new 뒷 부분이 어떤 생성자로 태어나게 할 지를 쓰는 겁니다.

 

Y()가 없는데 어떻게 사용해요? 라고 질문하실 수 있는데,

없으면 아무 일도 일어나지 않은 기본 생성자를 Java가 뒷 단에서 알아서 만들어줍니다.

생성이 됐는데 아무 것도 출력하지 않았을 뿐입니다.

 

혹시 나머지는 이해하셨을까요?

pmg4289님의 프로필 이미지
pmg4289

작성한 질문수

질문하기