자바

JAVA 자바 인스턴스 멤버와 this

알통몬_ 2017. 3. 12. 19:21
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

인스턴스 멤버

=>객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메서드 

각각 인스턴스 필드, 인스턴스 메서드라고 부릅니다. 

지금까지 포스팅했던 모든 필드와 메서드는 인스턴스 멤버들이었습니다. 

객체에 소속된 멤버이기 때문에 객체 없이는 사용할 수 없습니다. 

Car 클래스의 gas 필드와 setSpeed() 메서드가 아래와 같이 선언되어 있다고 해보면

public class Car {

       int gas;

     

       void setSpeed(int speed){

               .........

           }

}


gas 필드와 setSpeed()메서드는 인스턴 멤버이기 때문에 

외부 클래스에서 사용하기 위해서는 먼저 Car 객체(인스턴스)를 생성하고 

참조 변수는 myCar 또는 yourCar처럼 접근해야 합니다.

Car myCar = new Car();

myCar.gas = 10;

myCar.setSpeed(60);

or

Car yourCar = new Car();

yourCar.gas = 20;

yourCar.setSpeed(70);


위 코드가 실행된 후 메모리 상태는 인스턴스 필드 gas는 객체 마다 따로 존재하고, 

인스턴스 메서드 setSpeed()는 객체마다 존재하지 않고 메서드 영역에 저장되고 공유됩니다.


객체 외부에서 인스턴스 멤버에 접근하려면 =>

참조 변수를 사용하는 것처럼 객체 내부에서도 인스턴스 멤버에 접근하기 위해 this를 사용할 수 있습니다.

this.model이라고 하면 자신이 가지고 있는 model 필드라는 뜻입니다.

반응형