반응형

static 메서드 : 앞에 static이 붙은 것

인스턴스 메서드 : 앞에 static이 붙지 않은 것

 

인스턴스 메서드

- 인스턴스 생성 후, '참조변수.메서드이름()'으로 호출

- 인스턴스 멤버(iv, im)와 관련된 작업을 하는 메서드

- 메서드 내에서 인스턴스 변수(iv) 사용가능

 

static 메서드(클래스메서드) -> Math.random()

- 객체생성없이 '클래스이름.메서드이름()'으로 호출

- 인스턴스 멤버(iv, im)와 관련없는 작업을 하는 메서드

- 메서드 내에서 인스턴스 변수(iv) 사용불가

객체는 iv 묶음이다.

static 메서드는 객체(iv)가 필요 없다.

 

★여기서 long add() {return a+b}는 iv(인스턴스변수), static long add(long a, long b) {return a+b}는 lv(지역변수)인데, 이것을 구분하는 방법은 저 위에 long a,b(인스턴스 변수)를 사용하냐 안하냐로 나뉜다.

아래에 선언한 static 메서드는 매개변수 (long a, long b)를 따로 사용하고 있기에 iv(인스턴스 변수)를 사용하는 것이 아니게 된다.

 

반응형