# 클래스 맴버와 인스턴스 맴버
- 맴버는 구성원으로서, 객체도 변수, 메소드라는 구성원이 존재한다.
# 클래스 변수 와 인스턴스 변수
- 인스턴스 변수 : 인스턴스마다 다른 값을 가지는 변수
- 클래스 변수 : 해당 클래스에 따라 만들어진 모든 인스턴스들은 클래스가 가지고있는 변수의 값을 자연스럽게 갖게 된다.
- static : static을 맴버(변수, 메소드) 앞에 붙이면 클래스의 맴버(클래스 변수)가 된다.
- 클래스 변수의 사용 용도 : 인스턴스에 따라 변하지 않는 값이 필요한 경우(PI), 인스턴스를 생성할 필요 없는 값을 클래스에 저장하고 싶은 경우, 값의 변경 사항을 모든 인스턴스가 공유해야 하는 경우
class Calculator2 {
static double PI = 3.14;
// 클래스 변수인 base가 추가되었다.
static int base = 0;
int left, right;
public void setOprands(int left, int right) {
this.left = left;
this.right = right;
}
public void sum() {
// 더하기에 base의 값을 포함시킨다.
System.out.println(this.left + this.right + base);
}
public void avg() {
// 평균치에 base의 값을 포함시킨다.
System.out.println((this.left + this.right + base) / 2);
}
}
class Main {
public static void main(String[] args) {
Calculator2 c1 = new Calculator2();
c1.setOprands(10, 20);
// 30 출력
c1.sum();
Calculator2 c2 = new Calculator2();
c2.setOprands(20, 40);
// 60 출력
c2.sum();
// 클래스 변수 base의 값을 10으로 지정했다.
Calculator2.base = 10;
// 40 출력
c1.sum();
// 70 출력
c2.sum();
}
}