강의

멘토링

로드맵

Inflearn brand logo image

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

지루한 전어님의 프로필 이미지
지루한 전어

작성한 질문수

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

생성자와 메서드

케이스 7번의 this.name = name; 구문질문

해결된 질문

작성

·

25

0

7분2초에 케이스 7에

this.name = name 은 child 객체를 의미하는건가요? 부모의 클래스라도?

답변 2

0

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

지금 생성한게 new Child()로 자식 객체를 만들었기 때문에 Child 인스턴스의 변수입니다.

 

부모의 클래스든 아니든 지금 생성한 객체가 Child 생성자인데,,

접근이 가능하냐는 말씀인지 정확히 의미를 모르겠습니다.

 

만약 new Child("weekend")라고 하면 어떻게 되시는 지를 묻는거라면

Child 클래스 내에 문자열이 있는 생성자가 없기 때문에 에러가 발생할 거고요,

 

main 함수에서 아래와 같이 접근한다면

public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        System.out.println(child.name);
    }
}

오류가 발생합니다.

Parent 클래스 안에 private으로 되어있기 때문에 그렇습니다.

다른 클래스에서는 private 변수에 접근할 수 없기 때문입니다.

 

만약 Parent 클래스에 public String name;으로 선언하면

System.out.println(child.name); 이 코드는 defaultName을 출력합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 지루한 전어님.

질문에 대해 객체 지향 프로그래밍의 핵심 개념 중 하나인 this 키워드에 대한 이해가 필요하신 것으로 보입니다.

this 키워드의 사용

  • this는 현재 객체(현재 클래스의 인스턴스)를 참조하는 데 사용됩니다. 따라서 this.name = name; 구문은 현재 객체의 name이라는 멤버 변수에 외부에서 전달된 name 값을 할당하는 것입니다.

  • this는 현재 클래스의 인스턴스를 가리키므로, this.name은 현재 객체(이 경우 child 객체)의 name 멤버 변수를 가리킵니다. 따라서 부모 클래스에서 정의된 멤버 변수라 하더라도, 자식 객체에서 this를 사용하게 되면 자식 객체의 컨텍스트에서 사용하게 됩니다.

자세히 알아보려면 아래 링크를 참조하여 유사한 질문에서 추가적인 정보를 얻어보실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

지루한 전어님의 프로필 이미지
지루한 전어

작성한 질문수

질문하기