☕ JAVA
[Java] 인스턴스 메서드와 static 메서드
별이⭐
2024. 5. 13. 11:26
인스턴스 메서드와 static 메서드
인스턴스 메서드
- 인스턴스(객체) 생성 후,
참조변수.메서드이름()
으로 호출 - 인스턴스 멤버(인스턴스 변수, 인스턴스 메서드)와 관련된 작업 수행
- 메서드 내에서 인스턴스 변수 사용 가능
static 메서드(클래스 메서드)
- 객체 생성 X,
클래스이름.메서드이름()
으로 호출 - 인스턴스 멤버와 관련 없는 작업 수행
- 메서드 내에서 인스턴스 변수 사용 불가
static을 언제 붙일까?
- 변수에서는 공통 속성에 static을 붙인다.
- 공통 속성 → static 변수(클래스 변수), 개별 속성 → 인스턴스 변수
- 메서드에서는 인스턴스 멤버(인스턴스 변수, 인스턴스 메서드)를 사용하지 않는 메서드에 static을 붙인다.
- static 메서드는 ‘공통’과 관련 없다! 인스턴스 멤버 유무가 중요하다!
메서드 간의 호출과 참조
- static 메서드는 인스턴스 변수를 사용할 수 없다.
- 인스턴스 변수는 객체 생성 후 사용 가능하다.
- static 메서드는 객체 생성 없이 호출 가능하기 때문에 객체 생성 후 사용이 가능한 인스턴스 변수는 사용할 수 없다.
- static 메서드는 인스턴스 메서드를 호출할 수 없다.
- 인스턴스 메서드는 인스턴스 변수를 사용하는 메서드이다. 즉, 객체 생성 후 객체가 필요한 메서드이다.
- static 메서드는 항상 호출 가능하기 때문에 객체가 생성되어 있는지 아닌지 모른다. 그래서 static 메서드 내에서 인스턴스 메서드를 호출할 수 없다.