CH6-26~29(스태틱 메서드)
[자바의 정석 - 기초편] ch6-26~29 static메서드와 인스턴스 메서드
스태틱 메서드는 클래스 메서드라고도 한다. 메서드명 앞에 static이라는 keyword붙여주면 된다.
그외의 메서드를 모두 인스턴스 메서드라고 함.
가장 큰 차이는 용도에서 인스턴스 메서드는 인스턴스 멤버와 관련된 작업을 하는 메서드이고, 클래스 메서드는 인스턴스 멤버와 관련없는 작업을 하는 메서드라는 것임.
용도에 맞게 인스턴스 메서드는 인스턴스 변수 사용가능, 스태틱 메서드는 인스턴스 변수 사용불가임.
여기서 주목할것은 스태틱 메서드는 인스턴스 변수를 사용 불가능 하다는 것임. 이들은 본인들만의 지역변수를 사용한다.
스태틱 변수가 인스턴스 변수를 사용하지 못하는건 당연해보임. 스태틱 메서드는 인스턴스 생성 없이도 사용가능하기 때문임. 인스턴스 생성하지 않으면, 인스턴스 변수도 생성되지 않는다.
같은 맥락으로, 인스턴스 메서드를 사용하려면 그래서 인스턴스 생성이 필요한 것임. 인스턴스 메서드는 인스턴스 변수를 활용하니까..
메서드를 만들면 static을 붙일지 말지를 선택할 줄 알아야 한다. 이는 해당 메서드가 인스턴스 변수를 사용여부로 판단 가능함.
즉 객체의 인스턴스 변수들을 활용하는지.. 아닌지로 판단 가능.
참고로 객체는 그냥 인스턴스 변수들의 묶음으로 이해할 수 있다. 저자가 매우 강조하는 이해방식임.
정리
q1. 변수의 경우 static키워드는 언제 쓰는가?
a1. 클래스의 속성중 공통 속성(공유 멤버변수)에 static을 사용한다.