인스턴스 메서드와 static 메서드
인스턴스 메서드
- 인스턴스(객체) 생성 후,
참조변수.메서드이름()
으로 호출 - 인스턴스 멤버(인스턴스 변수, 인스턴스 메서드)와 관련된 작업 수행
- 메서드 내에서 인스턴스 변수 사용 가능
static 메서드(클래스 메서드)
- 객체 생성 X,
클래스이름.메서드이름()
으로 호출 - 인스턴스 멤버와 관련 없는 작업 수행
- 메서드 내에서 인스턴스 변수 사용 불가
static을 언제 붙일까?
- 변수에서는 공통 속성에 static을 붙인다.
- 공통 속성 → static 변수(클래스 변수), 개별 속성 → 인스턴스 변수
- 메서드에서는 인스턴스 멤버(인스턴스 변수, 인스턴스 메서드)를 사용하지 않는 메서드에 static을 붙인다.
- static 메서드는 ‘공통’과 관련 없다! 인스턴스 멤버 유무가 중요하다!
메서드 간의 호출과 참조
- static 메서드는 인스턴스 변수를 사용할 수 없다.
- 인스턴스 변수는 객체 생성 후 사용 가능하다.
- static 메서드는 객체 생성 없이 호출 가능하기 때문에 객체 생성 후 사용이 가능한 인스턴스 변수는 사용할 수 없다.
- static 메서드는 인스턴스 메서드를 호출할 수 없다.
- 인스턴스 메서드는 인스턴스 변수를 사용하는 메서드이다. 즉, 객체 생성 후 객체가 필요한 메서드이다.
- static 메서드는 항상 호출 가능하기 때문에 객체가 생성되어 있는지 아닌지 모른다. 그래서 static 메서드 내에서 인스턴스 메서드를 호출할 수 없다.
'☕ JAVA' 카테고리의 다른 글
[Java] 생성자 this()와 참조 변수 this (0) | 2024.05.22 |
---|---|
[Java] 기본형 매개변수와 참조형 매개변수, 참조형 반환타입 (0) | 2024.05.21 |
[Java] 메서드(method) (0) | 2024.05.12 |
[Java] 클래스 변수, 인스턴스 변수, 지역 변수 (0) | 2024.05.11 |
[Java] 오버로딩(overloading)과 오버라이딩(overriding) (0) | 2024.05.04 |