프로그래밍 언어/자바의 정석 기초편

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

life grow 2022. 8. 1. 22:51

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

 

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

static 메서드 예: Math.round(), Math.random()

 

static 메서드와 인스턴스 메서드는 iv 사용 여부로 나뉜다.

im을 쓴다는 게 iv를 쓴다는 소리다. 

iv를 사용하면 인스턴스 메서드

iv를 사용하지 않으면 static 메서드

 

6-27 static메서드와 인스턴스 메서드 

 

static 메서드 == 클래스 메서드

static 메서드는 객체생성없이 호출할 수 있는 메서드이다.

static 메서드는 iv를 사용하지 않을때 붙인다.

static 메서드는 자기 작업에 필요한 값들을 매개변수로 다 받는다.

iv가 필요없다.

 

인스턴스 메서드는 입력 값이 없다.

iv값을 쓰니까 매개변수 입력이 필요 없다.

 

객체: iv 묶음. 인스턴스 변수 묶음

 

static 메서드에 return a + b의 a, b는 lv이다.

기준은 가까움이다.

매개변수 (long a, long b)에 제일 가깝다.

 

클래스 메서드 호출: 클래스이름.메서드이름();

인스턴스메서드: 참조변수이름.메서드이름();

 

6-28 static을 언제 붙여야 할까?

 

메서드: 명령문 집합

객체생성을 안 하니까 참조변수를 못쓰는 것이다.

모든 객체에 공통적인 메서드라 static을 붙이는 게 아니다.

iv 안쓸 때 static 붙인다.

 

im(인스턴스 메서드): iv를 사용하는 메서드

 

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

 

인스턴스 메서드:

인스턴스 변수(iv) 사용 가능

클래스 변수(cv) 사용 가능(객체 생성 안해도 메모리에 올라가니까)

언제나 사용가능

인스턴스 메서드(im)는 객체 생성 후 호출 가능

 

인스턴스 메서드가 호출됐다는 건 이미 객체가 생성됐다는 말이다.

iv가 이미 존재한다는 얘기다.

 

static 메서드:

인스턴스 변수(iv) 사용불가

static 메서드는 객체 생성 없이 사용 가능하지만(항상 호출 가능)

iv는 객체생성 후 호출이 가능하다.

static 메서드가 호출 했을 때 객체가 있을지 없을지 알 수 없다.

클래스 변수(cv)는 사용 가능

 

마찬가지로 static 메서드는  인스턴스 메서드(im)를 호출할 수 없다.

객체가 있을지 없을지 모르기 때문이다.

 

반대로 인스턴스 메서드는 static 메서드 호출 가능 

인스턴스 메서드는 객체 생성을 해야만 호출할 수 있는 메서드다.