자바의 정석 기초편 ch6-26~29 static메서드와 인스턴스 메서드
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 메서드 호출 가능
인스턴스 메서드는 객체 생성을 해야만 호출할 수 있는 메서드다.

