Develop/Java

클래스

dawonny 2021. 7. 19. 00:15
728x90
반응형
package classinstance;

public 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);
    }
}
package classinstance;

public class Calculator3 {
	public static void sum(int left, int right){
        System.out.println(left+right);
    }

    public static void avg(int left, int right){
        System.out.println((left+right)/2);
    }
}
package classinstance;

public 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();
        
        Calculator3.sum(10, 20);
        Calculator3.avg(10, 20);

        Calculator3.sum(20, 40);
        Calculator3.avg(20, 40);
    }
	
}

메소드가 인스턴스 변수를 참조하지 않으면

불필요한 인스턴스 변수 생성할거 없이 바로 클래스 메소드 사용도 가능하다.

728x90
반응형