innn

static 메서드와 인스턴스 메서드 본문

JAVA/자바의 정석 기초편_남궁성(2020)

static 메서드와 인스턴스 메서드

33삼 2022. 6. 25. 15:10

스태틱이 붙은 게 스태틱 메서드

인스턴스 메서드 

- 인스턴스 생성 후 '참조변수.메서드이름()'으로 호출 (왜냐? 객체 생성하니까. 생성시 참조변수를 활용해서 호출해야함)

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

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

 

스태틱 메서드(클래스 메서드)

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

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

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

 

= > 결론 iv 사용여부에 따라 달려있다. (사용하면 인스턴스 메소드, 사용안하면 스태틱 메소드)

 

a, b는 인스턴스 변수 

클래스 전체에서 사용할 수 있음.

 

static 메소드의 매개변수 (a,b)는 lv 

유효범위가 클래스 메서드 내에서만 가능하다.

return의 ab는 가까운 쪽에 속한다. 즉 lv임.

 

위의 클래스 메서드, 인스턴스 메서드 사용법

 

스태틱 메서드라는 건 그냥 객체 생성없이 호출 가능한 것이라는 것만 알고 있지 그 이상은 모른다.

본인이 만들때 스태틱을 붙일지 말지를 고민해야함.

언제 붙여? iv를 사용하지 않을때 붙임

iv를 사용하면 스태틱을 못 붙여. 왜냐면 객체는 iv를 묶어놓은 것이니까.

객체는 변수 묶어놓은거다. iv묶음이다.

인스턴스 메서드를 호출하려면 왜 객체를 생성하냐? 왜냐면 iv를 가지고 작업을 하니까 필요한 것이다.

 

static 메서드는 공통으로 쓰냐마냐 가 아니라.\

인스턴스 변수를 안 쓸 때 붙이는 것임.

 

공통 기능의 차이가 아니라 iv의 차이라는 것이다.
iv라는 것은 객체 생성 후에 호출 가능하다
static 메서드가 인스턴스 메서드 호출하는 것만 안된다.

 

결론 : static 메서드는 static 메소드를 호출 가능하다.

static 메서드는 인스턴스 변수 사용 불가능하다

인스턴스 변수는 객체를 생성해야 사용 가능하기 때문이다.

왜? 객체라는 말 자체가 인스턴스 변수(멤버)를 묶어 놓은것이라. 이를 먼저 생성을 해야 사용이 가능한 것이다.

static 메서드는 같은 이유로 인스턴스 메서드 호출이 불가능하다.

 

iv, im(인스턴스 멤버) 를 쓸 수 없는 이유는 static 메서드 호출은 객체 생성 없이 항상 호출 가능하기 때문에,

객체 생성없이 iv 묶음인 객체의 멤버를 사용할 수 없는 것이다.

'JAVA > 자바의 정석 기초편_남궁성(2020)' 카테고리의 다른 글

단일 상속, Object 클래스  (0) 2022.07.06
포함 관계(Composite, has-a, 90%가 포함 관계!!)  (0) 2022.07.06
상속관계  (0) 2022.07.06
생성자(Constructor)  (0) 2022.06.26
오버로딩(Overloading)  (0) 2022.06.25