자바의정석

[자바의 정석 - 기초편] ch6-26~29 static메서드와 인스턴스 메서드

유호야 2022. 3. 10. 16:19
반응형

ch6-26 static 메서드와 인스턴스 메서드

Math.random() 역시 static 메서드

따라서 Math를 사용한다. 

 

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

iv 사용여부에 따라서 일반 메서드 / static 메서드를 구분할 수 있다.

가까운 쪽 lv

a + b ; 


클래스 메서드 호출의 경우
객체 생성 없이 호출 가능하다.

인스턴스메서드는 객체(인스턴스)를 먼저 만들고, 메서드를 호출할 수 있다.


그렇다면 메서드에 static을 붙일지 말지, 어떻게 결정하느냐?

iv 인스턴스 변수를 사용하지 않을 때, static을 붙인다

iv의 사용여부

필요한 값들을 지역변수로 받는다 따라서 iv 인스턴스 변수가 필요 없다.

인스턴스 메서드는 iv 가 있기 때문에 지역변수가 필요 없다. 

객체라는 것은 iv의 묶음이다. 

변수가 필요

객체는 변수의 묶음

 

ch6-28 static을 언제 붙여야 할까?
> 속성(멤버변수) 중에서 공통 속성에 static을 붙인다. 

> 인스턴스멤버(iv, im)을 사용하지 않는 메서드에 static을 붙인다. 

메서드는 명령문 집합
메서드는 iv를 쓰느냐 안쓰느냐에 따라서 static이 존재

인스턴스 메서드가 iv를 사용하는 메서드이기 때문에
메서드 안에서 iv 사용 여부를 파악하자!

 

 


 

static 메서드는 객체 생성 없이 호출 가능하기 때문에
그 객체가 존재한다는 보장이 없어서, iv를 사용 불가능하다. 

 


ch6-29 메서드 간의 호출과 참조

인스턴스 메서드에서 다른 인스턴스 메서드를 호출 가능한다.
static 메서드의 호출도 가능하다.

하지만, static 메서드는 인스턴스 메서드를 호출할 수 없다. 
인스턴스 메서드를 호출할 때는 객체가 필요한데, 객체가 생성되어 있는지 불확실하기 때문

 static 메서드가 인스턴스 메서드를 호출하지 못한다 (iv 사용을 못한다)

 



QnA

객체란 iv 묶음
static메서드는 언제나 호출가능

반응형