본문 바로가기
Programming 기초/Java

[Java] 클래스와 인스턴스 - 활용

by 뭉제 2023. 4. 8.
목차
1. 클래스의 활용
2. 인스턴스의 활용

 

 

클래스의 활용


부가가치세와 총 가격을 구하는 프로그램을 클래스를 이용해 정리해 본다.

참고 https://mungje.tistory.com/28 

class Accounting{
    public static double valueOfSupply;
    public static double vatRate=0.1;
   
    public static double getVAT() {
        return valueOfSupply*vatRate;
    }
    
    public static double getTotal() {
        return valueOfSupply+getVAT();
    }
}

public class AccountingApp {
    public static void main(String[] args) {
    	Accounting.valueOfSupply=10000.0; //공급가
        
    	System.out.println("Value of supply: "+Accounting.valueOfSupply);
    	System.out.println("VAT: "+Accounting.getVAT());
    	System.out.println("Total: "+Accounting.getTotal());
    }
}

· Accounting 클래스를 새로 정의

  - valueOfSupply, vatRate -> static 필드

  - getVAT, getTotal -> static 메소드

-> 회계라는 이름을 가진 클래스에서 공급가, 부가가치세율, 총 판매가 등 의미를 보다 명확하게 파악 가능

-> IDE 프로그램에서 자동완성 기능을 이용 가능

 

 

인스턴스의 활용


공급가가 서로 다른데 번갈아가면서 부가가치세와 총 판매가를 출력해야 할 상황인 경우

클래스만 가지고 문제를 푼다면 그때마다 일일이 필드를 수정해야 하는 불편함이 있을 것이다.

 

이때 인스턴스를 생성해 문제를 해결할 수 있다.

 

class Accounting{
    public double valueOfSupply;
    public static double vatRate=0.1;
    
    public double getVAT() {
        return valueOfSupply*vatRate;
    }
    
    public double getTotal() {
        return valueOfSupply+getVAT();
    }
}

public class AccountingApp {
    public static void main(String[] args) {
    	Accounting a1=new Accounting();
    	a1.valueOfSupply=10000.0;
    	
        Accounting a2=new Accounting();
    	a2.valueOfSupply=20000.0;
    	
    	System.out.println("Value of supply: "+a1.valueOfSupply);
    	System.out.println("Value of supply: "+a2.valueOfSupply);
    	
    	System.out.println("VAT: "+a1.getVAT());
    	System.out.println("VAT: "+a2.getVAT());
    	
    	System.out.println("Total: "+a1.getTotal());
    	System.out.println("Total: "+a2.getTotal());
    }
}

실행결과

· 각각의 인스턴스는 서로에게 영향을 미치지 않는다.

  -> 인스턴스를 이용하면, 독립적으로 작업을 처리하게 만들 수 있다.

 

 

<참고> 생성자로 초기화

· Accounting에 생성자 추가 

public Accounting(double valueOfSupply) {
    this.valueOfSupply=valueOfSupply;
}

 

· 인스턴스 생성할 때 공급가 입력 

Accounting a1=new Accounting(10000.0);
Accounting a2=new Accounting(20000.0);

 

++ 부가가치세율도 같이 초기화

public Accounting(double valueOfSupply, double vatRate) {
    this.valueOfSupply=valueOfSupply;
    this.vatRate=vatRate;
}

 

'Programming 기초 > Java' 카테고리의 다른 글

[Java] 상속  (0) 2023.04.14
[Java] 생성자와 this  (0) 2023.04.11
[Java] 인스턴스  (0) 2023.04.05
[Java] 클래스  (0) 2023.04.02
[Java] static  (0) 2023.03.30

댓글