728x90
1. static (클래스) vs. 인스턴스 메서드
메서드 종류 | 객체 생성 필요 | 인스턴스 멤버와 관련된 작업 |
인스턴스 멤버 사용 가능 여부 |
사용 방법 |
인스턴스 메서드 (메서드이름) | O | O | O | 참조 변수.메서드 이름 |
static 메서드 (static + 메서드이름) | X | X | X | 클래스 이름.메서드 이름 |
인스턴스 메서드는 인스턴스 멤버와 관련된 작업을 하는 메서드이다. 그렇기 때문에 객체 생성이 꼭 필요한 것이다. 반대로 static 메서드는 객체를 생성하지 않아도 사용 가능하다. static 메서드 사용 시점에 객체가 생성되지 않았을 경우 인스턴스 멤버들은 사용 불가하기 때문에 static 메서드는 인스턴스 멤버를 사용할 수 없는 것이다. 위 표에서 2-4번째 열이 모두 연관 있음을 알아두자.
[참고] 멤버는 변수와 메서드 모두 포함하는 말이며 멤버 변수는 static, 인스턴스 변수 모두 포함하는 말이다.
2. static을 붙여야 하는 경우
멤버 | 기준 |
변수 | 모든 객체의 공통 속성을 갖음 |
메서드 | 인스턴스 멤버(iv, im)를 사용하지 않는 경우 |
3. static, 인스턴스 멤버 간의 사용, 호출
static 메서드가 인스턴스 멤버를 사용, 호출할 수 없다는 것만 알아두자.
Q. static 메서드는 static 메서드 호출 가능?
A. O
Q. static 메서드는 인스턴스 변수 사용 가능?
A. X
Q. 왜 static 메서드는 인스턴스 멤버를 사용할 수 없을까?
A. static 메서드 호출 시 인스턴스(객체)가 생성되지 않았을 수 있기 때문이다.
반응형
'자바 (Java) > 요약' 카테고리의 다른 글
Chpt 6. 객체 지향 프로그래밍 - 주제 6. 멤버, 지역 변수의 초기화 (0) | 2023.10.24 |
---|---|
Chpt 6. 객체 지향 프로그래밍 - 주제 5. 생성자는 변수 초기화 메서드이다. (0) | 2023.10.24 |
Chpt 6. 객체 지향 프로그래밍 - 주제 3. 매개변수와 반환타입 (0) | 2023.10.24 |
Chpt 6. 객체 지향 프로그래밍 - 주제 2. 클래스는 변수와 메서드의 묶음이다. (1) | 2023.10.23 |
Chpt 6. 객체 지향 프로그래밍 - 주제 1. 클래스와 객체 (0) | 2023.10.23 |