목차
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 |
댓글