JAVA 자바 (29) - 판매자 수익 계산 프로그램 만들기 07 : 메소드 method 도입
-
메소드는 서로 연관된 코드들을 그룹핑하여 이름을 붙인 정리정돈의 상자이다.
메소드를 만드려면 먼저 블럭 처리를 한 후 Alt+Shift+M을 누르면 메소드 생성창이 나오는데 그곳에 메소드 이름을 쓰고 Replace 부분은 체크 해재한 후 확인을 누르면 메소드명이 생성되며 아래쪽에 메소드가 생성된 것을 볼 수 있다. getVAT(valueOfSupply, vatRate)는 만들어진 메소드를 호출, 실행하는 코드이다.
valueOfSupply에 10000.0 값을 입력하면 getVAT(valueOfSupply, vatRate)를 통해 하단의 getVAT(double valueOfSupply, vatRate)라는 메소드의 값이 된다. 그 뒤 return의 값에 0.1값을 곱하게 되므로 double vat =getVAT(valueOfSupply, vatRate); 의 값은 1000원이 된다.
만약 getVAT() 괄호부분을 깔끔하게 정리하고 싶다면 위와 같이 정리하면 되지만 오류가 발생한다.
valueOfSupply가 Main 메소드의 중괄호 안에서 선언되어 있기 때문에 Main 메소드 안에서만 사용할 수 있는 local variable이기 때문.
그러므로 valueOfsupply 와 vatRate를 AccountingMethodApp class의 전역변수(모든 class에서 메소드로 사용가능하게 함)로 지정하여 모든 메소드에서 접근가능하도록 지정해야 한다.
자바에서는 전역변수를 Field라고 한다. Refactor에 들어가서 Convert Local Variable to Field를 누르고 창이 뜨면 Access midifier에 public을 체크하고 OK를 누른다. 현재는 valueOfSupply와 vatRate를 전역변수로 바꾼 상태이다.
getTotal() 괄호부분을 없애고자 한다면 위와 같이 설정한 후
getVAT를 입력하여 직접 호출한다. ( = valueOfSupply + getVAT() 는 getTotal()과 같다 )
마찬가지로 expenseRate도 메소드를 만든 후 expenseRate를 전역변수로 바꿔준다.
그다음 income의 메소드를 생성한다.
나머지 dividend 1,2,3 도 메소드를 생성하여 getIncome() 을 넣어준다.
그다음 println 출력되는 부분들을 메소드로 만들어 print라는 이름으로 만들고 블럭친 부분을 전부 지워준다.
필요없어진 코드들은 모두 지워준다.
위와 같이 만약 Expense값이 필요하다면 getExpense()라는 메소드를 호출하여 비용을 언제든지 가져올 수 있는 것이다.