반응형

# 클래스 맴버와 인스턴스 맴버

  • 맴버는 구성원으로서, 객체도 변수, 메소드라는 구성원이 존재한다.

# 클래스 변수 와 인스턴스 변수

  • 인스턴스 변수 : 인스턴스마다 다른 값을 가지는 변수
  • 클래스 변수 : 해당 클래스에 따라 만들어진 모든 인스턴스들은 클래스가 가지고있는 변수의 값을 자연스럽게 갖게 된다.
  • 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();
    }
}

 

 

반응형

+ Recent posts