본문 바로가기

자바 (Java)/요약

Chpt 6. 객체 지향 프로그래밍 - 주제 4. 메서드에는 static과 인스턴스 메서드가 있다.

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 메서드 호출 시 인스턴스(객체)가 생성되지 않았을 수 있기 때문이다.
반응형