인프런 영문 브랜드 로고
인프런 영문 브랜드 로고
채널톡 아이콘

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

pmrim01님의 프로필 이미지

작성한 질문수

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

Java에서 this와 super 키워드

자바에서 this

해결된 질문

작성

·

149

0

다음 사진처럼 꼭 this.x = x라고 해야하나요? 그냥 x = x라고 하면 오류가 날까요? 또는 매개변수를 그러면 y로 해서 x = y는 괜찮은걸까요? (이거는 가능했다고 앞에서 배운 거 같아서요!)

같은 변수일 때만 this를 사용하고, display는 변수로 x로 넘겨도 무방한 거 맞을까요?

image.png

답변 2

0

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

네, this 키워드를 꼭 써야하는 것은 아닙니다.

이것이라고 해서 해당 객체를 지정해서 명시해준 것 뿐입니다.

아래 예제도 가능합니다.

 

public class Person {
    private String name;
    private int age;

    public void setName(String newName) {
        name = newName; // this.name = newName; 와 동일
    }

    public void setAge(int newAge) {
        age = newAge; // this.age = newAge; 와 동일
    }
}

말씀하신 대로 Java 컴파일러가 어떤 변수인지만 알 수 있도록 구별되면 됩니다.

 

display를 변수 x로 넘긴다는 것이 무슨 의미신지 잘 모르겠습니다.

다시 한 번 말씀 부탁드려요.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

pmrim01님의 질문에 대해, “this 키워드를 사용하는 경우와 그렇지 않은 경우의 차이”에 관한 설명을 포함한 게시물을 추천해 드리겠습니다.

this 키워드는 자바에서 현재 객체의 멤버(변수, 메서드)에 접근할 때 사용됩니다. 특히, 생성자 또는 메서드의 매개변수 이름과 클래스의 멤버 변수 이름이 같을 경우, 이 둘을 구분하기 위해 this 키워드를 사용합니다. 예를 들어, this.x = x; 구문에서 this.x는 클래스의 멤버 변수 x를 가리키고, 단순 x는 메서드나 생성자의 매개변수를 가리킵니다. 이는 변수의 ‘섀도잉’ 문제를 해결하기 위해 필요합니다.

x = y와 같은 할당에서 y가 매개변수로 전달된다면, 이는 this 키워드 없이도 충분히 작동합니다. 왜냐하면 이 경우 x는 클래스의 멤버 변수를 의미하고, y는 지역 변수(매개변수)를 의미하기 때문에 이름 충돌이 없습니다.

this 키워드에 대한 질문과 유사한 주제로 질문된 다음 링크가 도움이 될 것 같습니다:
- 생성자 문제 질문 this() 질문

위 링크에서는 this와 관련된 더 깊이 있는 설명과 상황에 따른 사용 예시를 다룹니다. 이 내용이 pmrim01님의 질문에 있어 꼭 필요한 this 키워드의 사용 범위와 목적을 이해하는 데 도움이 될 것입니다.

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

pmrim01님의 프로필 이미지
pmrim01
질문자

그러면 x = x는 오류인걸까요?

pmrim01님의 프로필 이미지

작성한 질문수

질문하기