본문 바로가기

Java/객체지향 프로그래밍

클래스 멤버와 인스턴스 멤버간의 참조와 호출

728x90
  • 클래스 메서드와 인스턴스 메서드

 

클래스 메서드는 앞에 static이 붙어있다.

클래스 메서드는 객체를 생성하지 않고도 '클래스이름.메서드이름(매개변수)'로 호출이 가능하다.

 

인스턴스 메서드는 반드시 객체를 생성해야만 호출가능

 

인스턴스 메서드와 클래스 메서드의 차이점

 

메서드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드이다.

반면에 인스턴스와 관계없는 메서드를 클래스 메서드로 정의한다.

 

 

어떤 경우에 사용하나?

 

1. 클래스 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙인다.

(멤버 변수는 클래스 영역에 선언된 변수이며 멤버 변수는 클래스 변수, 인스턴스변수를 모두 통칭한다.)

2. 클래스 변수(static변수)는 인스턴스를 생성하지 않아도 사용할 수 있다.

3. 클래스 메서드 (static 메서드)는 인스턴스 변수를 사용할 수 없다.

4. 메서드 내에서 인스턴스 변수를 사용하지 않는다면, static을 붙이는 것을 고려한다.

 

 

  • 클래스 멤버와 인스턴스 멤버간의 참조와 호출

한 클래스 안에 클래스메서드와 인스턴스메서드 간의 호출

-> 서로 객체의 생성이나 참조변수 없이 직접 호출이 가능하지만 static 메서드는 인스턴스 메서드를 호출할 수 없다.

 

한 클래스 안에 변수와 메서드 간의 호출

-> 인스턴스 메서드는 인스턴스변수를 사용할 수 있지만 static메서드는 인스턴스 변수를 사용할 수 없다.

 

'Java > 객체지향 프로그래밍' 카테고리의 다른 글

메서드  (0) 2021.09.17
인스턴스 변수, 클래스변수, 로컬변수  (0) 2021.09.15