본문 바로가기
Spec UP - Backend/나도코딩의 자바기본편

Chap_07. 클래스 메소드

by TIS_Ha 2023. 4. 21.
반응형

BlackBox 클래스 내에 클래스 변수를 생성하였다.

메소드 앞에 static을 붙이면 클래스 메소드가 되며, 해당 클래스에서 생성된 모든 객체에 공통적으로 사용될 때 사용한다.

 

아래와 같이 _06_ClassMethod를 생성하여 BlackBox.callServiceCenter() 메소드를 호출하면 서비스센터 전화번호가 출력된다.

 

클래스 메소드에 대하여 조금 더 살펴보자.

BlackBox 클래스 내에는 4개의 인스턴스 변수와 1개의 클래스 변수, 1개의 클래스 메소드가 들어있다.

  • 인스턴스 변수 : modelName, resolution, price, color
  • 클래스 변수 : canAutoReport
  • 클래스 메소드 : callServiceCenter()

인스턴스변수는 각각 클래스로부터 만들어진 객체들마다 서로 다른 값을 가질 수 있는 특징을 가진다.

클래스 변수/메소드는 변수/메소드 앞에 static이 함께 정의되며, 클래스로부터 만들어지는 모든 객체에 공통으로 적용된다.

이 때 클래스 메소드 callServiceCenter() 에서 인스턴스 변수(modelName)에 접근하려고 하면 위와 같이 오류가 발생된다.

인스턴스 변수는 객체가 만들어져야 접근할 수 있는 변수 이기 때문이다.

대신 클래스 메소드 callServiceCenter() 에서도 클래스 변수(canAutoReport)에는 접근이 가능하다.

 

클래스 메소드를 사용할 때는 해당 메소드 내에서 인스턴스 변수의 사용이 필요없는 경우에 사용해야하는 점을 유의하자.

반응형

'Spec UP - Backend > 나도코딩의 자바기본편' 카테고리의 다른 글

Chap_07. 생성자  (0) 2023.04.25
Chap_07. This  (1) 2023.04.25
Chap_07. 메소드 오버로딩  (0) 2023.04.21
Chap_07. 클래스 변수와 메소드  (0) 2023.04.20
Chap_07. 클래스와 인스턴스 변수  (0) 2023.04.20

댓글