728x90
double vat = valueOfSupply*vatRate;
만약 위의 코드를
double vat = getVAT(valueOfSupply, vatRate);
위와 같이 수정하여 getVAT 이라는 코드를 다른 곳에 숨겨놓을 수 있다면?
이를 위하여 우리는 메소드를 사용한다.
블럭을 잡고 -> Refactor -> Extract Method (단축키 : Alt+Shift+M)

그리고 위와 같이 설정해 주었다.
public class AccountingApp {
public static void main(String[] args) {
double valueOfSupply = Double.parseDouble(args[0]);
double vatRate = 0.1;
double expenseRate = 0.3;
double vat = getVAT(valueOfSupply, vatRate);
double total = valueOfSupply+vat;
double expense = valueOfSupply*expenseRate;
double income = valueOfSupply-expense;
double devidend2 = income*0.3;
double devidend3 = income*0.2;
double devidend1 = income*0.5;
System.out.println("Value of supply : "+valueOfSupply);
System.out.println("VAT : "+vat);
System.out.println("Total : "+total);
System.out.println("Expense : "+expense);
System.out.println("Income : "+income);
System.out.println("Dividend 1 : "+devidend1);
System.out.println("Dividend 2 : "+devidend2);
System.out.println("Dividend 3 : "+devidend3);
}
private static double getVAT(double valueOfSupply, double vatRate) {
return valueOfSupply*vatRate;
}
}
위와 같이 getVAT 메소드가 자동으로 생성된 것을 확인할 수 있다.
또한 getVAT의 메소드가
private static double getVAT() {
return valueOfSupply*vatRate;
이라면 동작하지 않는다. 왜냐하면 valueOfSupply와 vatRate는 main안에서 선언된 지역변수이기 때문이다.
이 둘을 전역변수로 선언하는 작업을 해보도록 하자.
변수에 블럭 잡고 -> Refactor -> Convert Local Variable to Field
에서 변수 이름을 설정한 후 Public을 선택하고 진행하면 된다.
public class AccountingMethodApp {
public static double valueOfSupply;
public static double vatRate;
public static double expenseRate;
public static void main(String[] args) {
valueOfSupply = 10000.0;
vatRate = 0.1;
expenseRate = 0.3;
print();
}
private static void print() {
System.out.println("Value of supply : "+valueOfSupply);
System.out.println("VAT : "+getVAT());
System.out.println("Total : "+getTotal());
System.out.println("Expense : "+getExpense());
System.out.println("Income : "+getIncome());
System.out.println("Dividend 1 : "+getDividend1());
System.out.println("Dividend 2 : "+getDividend2());
System.out.println("Dividend 3 : "+getDividend3());
}
private static double getDividend1() {
return getIncome()*0.5;
}
private static double getDividend2() {
return getIncome()*0.3;
}
private static double getDividend3() {
return getIncome()*0.2;
}
private static double getIncome() {
return valueOfSupply-getExpense();
}
private static double getExpense() {
return valueOfSupply*expenseRate;
}
private static double getTotal() {
return valueOfSupply+getVAT();
}
private static double getVAT() {
return valueOfSupply*vatRate;
}
}
최종 코드. 훨씬 깔끔한 모습이다.
메소드는 서로 연관된 코드를 모아서 이름을 붙인 정리정돈 상자다.
728x90
'java study' 카테고리의 다른 글
[Java Study] 나만의 앱 만들기 - 클래스 추가 (0) | 2022.07.25 |
---|---|
[Java Study] 나만의 앱 만들기 - 반복문 추가 (0) | 2022.07.22 |
[Java Study] 나만의 앱 만들기 - 배열 추가 (0) | 2022.07.22 |
[Java Study] 나만의 앱 만들기 - 조건문 추가 (0) | 2022.07.22 |
[Java Study] 나만의 앱 만들기 - 입력값 도입 (0) | 2022.07.18 |