static 메소드는 static한 필드(속성)만 사용할 수 있다.
static 변수는 인스턴스(객체)가 아닌 클래스에 귀속된다.
따라서, 인스턴스가 여러개 생성돼도 static 변수는 딱 하나만 있다.
변수 중에서 공통 속성(클래스 변수)에 static 을 붙인다.
static 메서드는 객체 생성 없이 호출할 수 있다.
클래스 이름으로 호출.
Ex) 클래스 메서드Math.random()
메서드를 만들었을 때 스태틱을 붙일 지 말지 어떻게 결정하나?
=> 인스턴스 변수를 사용하지 않을 때 사용.
스태틱 메서드와 인스턴스 메서드의 차이는 인스턴스 변수의 사용 여부
인스턴스 메서드는 인스턴스(객체)를 new로 생성하고 호출 할 수 있다.
인스턴스 메서드는 인스턴스 변수로 작업하기 때문에 객체가 필요하다
인스턴스 생성은 곧 인스턴스 변수 생성이다
class Plus {
int a, b; // 인스턴스 변수 iv
int add(){ // 인스턴스 메서드
return a + b;
}
// 클래스메서드(static 메서드)
static int add(int a, int b){ // 지역변수 lv
return a + b;
}
}
void main(){
Plus plus = new Plus(); // 인스턴스 생성
plus.a = 10;
plus.b = 20;
plus.add(); // 인스턴스 메서드 호출
plus.add(10, 20); // 클래스 메서드 호출
}