인스턴스 멤버와 this
인스턴스 멤버는 객체를 생성한 뒤 사용할 수 있는 필드와 메소드를 말한다.
객체가 자기 자신을 가리킬 때 사용
정적은 고정되어있다라는 뜻이다. 정적 멤버는 필드에 고정되어있으며 객체를 생성하지 않고도 사용할 수 있는 필드와 메소드를 말한다.
*인스턴스 멤버 선언
public class Car {
int gas // 인스턴스 필드
void setSpeed(int speed) { // 인스턴스 메소드
this speed = speed;
//필드에 = int speed 대입
}
}
인스턴스 메소드를 선언할 때 메소드 내부에 this를 사용했는데 this는 자기 자신을 참조하는 용도이다
this.sepeed는 자기 자신이 가지고 있는 필드를 가리키고 speed는 매개변수로 받은 int speed를 가리킨다.
*인스턴스 멤버 사용
Car myCar = new Car(); // 객체 생성
myCar.gas = 10; // 필드 사용
myCar.setSpeed(60); // 메소드 사용
*정적 멤버 선언
public class calculator{
static double = pi = 3.14159;
static int plus(int x, int y){
return = x+y;
}
static int minus(int x, int Y){
return = x-y;
}
}
*정적 멤버 사용
double result1 = 10 * 10 * Calculator.pi;
int result2 = Calculator.plus(10, 5);
int result3 = Calculator.minus(10, 5);
객체가 없어도 실행된다는 정적 멤버의 특징 때문에 정적 메소드를 선언할 때 내부에 인스턴스 필드나 인스턴스 메소드를 사용할 수 없고 객체 자신 참조어인 this도 사용할 수 없다.