Study/Java

인스턴스 멤버와 this

sowon02 2025. 7. 8. 16:48

객체지향 프로그래밍(OOP)을 학습하면서 자주 마주치는 개념이 “인스턴스 멤버”this 키워드임.
이 두 개념은 객체의 상태와 동작을 관리하기 위한 핵심 개념으로, 자바를 제대로 다루기 위해 반드시 이해해야된다......


인스턴스란?

인스턴스는 클래스로부터 생성된 구체적인 객체를 의미한다.

클래스는 설계도이며, 인스턴스는 그 설계도로부터 메모리에 만들어진 실체이다.

예를 들어 Car라는 클래스를 만들면, Car myCar = new Car(); 를 통해 만들어진 myCar가 인스턴스다. 이 인스턴스를 통해 클래스에 정의된 변수와 메서드를 사용할 수 있다.

 

인스턴스 멤버란?

인스턴스 멤버는 인스턴스가 생성될 때 함께 생성되어 인스턴스에 속하게 되는 변수와 메서드를 말한다.

클래스 내부에서 static 키워드 없이 선언된 변수와 메서드는 모두 인스턴스 멤버이다.

인스턴스 변수는 인스턴스마다 개별적으로 존재하여 서로 다른 값을 가질 수 있다. 인스턴스 메서드는 인스턴스 변수의 값을 사용하거나 변경하는 동작을 수행한다. 인스턴스 멤버는 인스턴스가 생성되어야 비로소 사용 가능하며, 클래스명으로 직접 접근할 수 없고 반드시 인스턴스를 통해 접근해야 한다.

 

this란?

this는 인스턴스 자신을 가리키는 참조 변수로, 인스턴스 메서드와 생성자 내부에서 사용 가능하다.

자바에서는 인스턴스 메서드를 호출할 때 해당 인스턴스의 참조가 this라는 이름으로 메서드 내부에 전달된다. 이를 통해 메서드 내부에서 인스턴스 변수와 지역 변수의 이름이 동일할 때 구분할 수 있다.

또한 생성자 내부에서 다른 생성자를 호출할 때 this() 형태로 사용하여 코드 중복을 줄이고 초기화 과정을 일원화할 수 있다.

 

예를들어, 

    Car(String model){
        this.model = model;
    }
 
    Car(String model){
        model = model;
    }

 

첫 번째 this.model = model;은 필드에 있는 model에 인자값을 대입하는 것을 의미하고,

두 번째 model = model;은 인자값에 인자값을 대입하는 것을 의미한다.

 

즉,

  • 필드에 있는 model과 매개변수 model 둘 다 존재하고, 매개변수 model은 로컬 변수이다.
  • 메서드 내에서 model을 사용할 경우 가장 가까운 매개변수 model을 인식하지만, 실제 필드를 바꿔야 할 때는 this.를 사용해 구분해주면 된다.

'Study > Java' 카테고리의 다른 글

싱글톤(Singleton)  (0) 2025.07.08
정적 멤버와 static  (0) 2025.07.08
접근제어자  (0) 2025.07.08
상속(Inheritance)와 다형성(Polymorphism)  (0) 2025.07.07
캡슐화(Encapsulation)  (0) 2025.07.06