본문 바로가기
자바 Java

클래스 변수, 인스턴스 변수

by MEHAVING 2019. 9. 8.
반응형

클래스 변수 Static Field

모든 인스턴스에서 사용(접근)할 수 있는 변수

인스턴스를 통해 접근 할 수도 있지만 애초에 클래스를 통해서도 접근 할 수 있다.

변수 앞에 static을 적어 클래스의 소속 변수라는 것을 알려준다

 

인스턴스 변수 Non-Static Field

인스턴스마다 다른 값을 가지는 변수

- 클래스에서 this.를 사용해 인스턴스에서 변수를 지정하도록 만들어 줄 수 있음

 

package org.opentutorials.javatutorials.classninstance;
 
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);
    }
}
 
public class CalculatorDemo2 {
 
    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();
 
    }
 
}

 

 


 

인스턴스 메소드는 클래스 멤버에 접근 할 수 있다

- 인스턴스 메소드가 생성되어있다면 이미 클래스가 생성되어 있다는 것을 의미한다

클래스 메소드는 인스턴스 멤버에 접근 할 수 없다

 

반응형

댓글