반응형
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 |
댓글