- 수업소개 -
메소드를 활용하면 무엇이 좋은지를 메소드를 도입하기 전과 도입 후의 차이점을 통해 비교해보겠습니다.
이전 수업에서 만들었던 [JAVA1 - 나의 앱 만들기] 코드를 수정하여 메소드를 쓰면 어떤 폭발적인 효과가 있는지 알아보자 [참고]
public class AccountingApp {
public static void main(String[] args) {
double valueOfSupply = 10000.0; //공급가
double vatRate = 0.1; //부가가치세율
double vat = valueOfSupply * vatRate; //부가세
double total = valueOfSupply + vat; //합계(공급가 + VAT) : 소비자 지불 금액
System.out.println("Value of supply : " + valueOfSupply);
System.out.println("VAT : " + vat);
System.out.println("Total : " + total);
}
}
이 코드가 굉장히 복잡한 코드라고 상상하고, 이 안에 사업을 위해 필요한 로직 뿐 아니라 다른 여러가지 로직들이 하나의 파일 안에 다 들어있다라고 생각해보자
이 total 을 구하는 코드가 1억개의 코드이고, 이 코드를 1년만에 다시 보거나 다른 사람이 코드를 처음 만났다라고 하면 이 코드의 취지를 파악하기는 아주 어렵다. 이럴 때 필요한 것이 "정리정돈"이다.
즉, 메소드를 이용해서 저 처리방법에 이름을 붙일 수 있다면, 코드를 훨씬 더 단정하게 정리정돈할 수 있고, 낯선 코드를 만난다고 하더라도 이름을 통해서 그 코드의 취지를 단박에 파악할 수 있다.
1. 부가세를 구하는 코드를 getVAT() 메소드로 만들어서 계산결과를 return 값으로 준다.
vat는 double 형이므로 return 데이터타입을 double 형으로 정의한다. public static double getVAT(){}
에러가 나는 이유는?
valueOfSupply 와 vatRate 는 메소드 안에서만 사용할 수 있는 지역변수이다. 이 두개의 변수를 AccountingApp 이라는 클래스 안에 있는 모든 메소드가 사용할 수 있게 하려면 main() 메소드 바깥, AccountingApp 클래스 안에 위치시켜서 전역변수로 만들면 된다.
변수 앞에 public static 을 붙여서 valueOfSupply 와 vatRate 가 AccountingApp이라는 클래스의 직접적인 소속이다 라고 정해준다.
실행결과 아까와 똑같이 잘 동작한다.
메소드를 통해서 얻을 수 있는 효과
- 코드의 단순화
부가세를 구하는 코드가 1억줄이었다고 한다면 이 코드를 메소드의 이름 한 줄로 바꾸는 것을 통해서 코드를 훨씬 더 단순화 시킬 수 있다. - 네이밍을 통한 코드의 의미 파악
코드의 구체적인 동작 방법의 이름을 붙이는 것을 통해서 코드의 기능이 무엇인지 아주 분명하게 전달할 수 있다. - 코드의 재사용
메소드를 통해서 구현되어 있는 결과를 재활용하고 있기 때문에 메소드의 내용만 수정하면 메소드를 사용하는 모든 곳에 적용이 된다.
public class AccountingApp {
//공급가
public static double valueOfSupply = 10000.0;
//부가가치세율
public static double vatRate = 0.1;
public static void main(String[] args) {
//부가세
//double vat = valueOfSupply * vatRate;
// double vat = getVAT();
//합계(공급가 + VAT) : 소비자 지불 금액
// double total = valueOfSupply + vat;
// double total = getTotal();
System.out.println("Value of supply : " + valueOfSupply);
System.out.println("VAT : " + getVAT()); //부가세
System.out.println("Total : " + getTotal()); // 합계
}
public static double getVAT() {
return valueOfSupply * vatRate;
}
public static double getTotal() {
return valueOfSupply + getVAT(); //vat값을 여기서 직접 구해오도록 한다.
}
}
'코딩공부 > JAVA' 카테고리의 다른 글
JAVA method [3] - 메소드의 출력 (0) | 2019.12.11 |
---|---|
JAVA method [2] - 메소드의 입력 값 (0) | 2019.12.11 |
JAVA method [1] - 메소드의 기본 형식 (0) | 2019.12.11 |
JAVA 제어문 [4] - 종합응용 (0) | 2019.10.30 |
JAVA 제어문 [3] - 반복문과 배열 (0) | 2019.10.30 |