pullwall
Well done! 코딩
pullwall
전체 방문자
오늘
어제
  • 분류 전체보기 (151)
    • 개발환경 (2)
    • java study (21)
    • 백준 단계별 (51)
    • 알고리즘 (3)
    • AI (43)
    • 클라우드 (3)
      • Kubernetes in Google (3)
    • 논문 (5)
    • 리눅스 (1)
    • AWS (4)
    • 수학 (15)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바
  • 정렬알고리즘
  • LLM
  • Kubernetes
  • 자바독학
  • 쿠버네티스
  • 논문리뷰
  • 백준
  • 알고리즘
  • Ai
  • AWS
  • pytorch
  • 정렬
  • dataset
  • 수학
  • Google
  • Java
  • 선택정렬
  • 단계별
  • 백준 단계별

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
pullwall

Well done! 코딩

[Java Study] 나만의 앱 만들기 - 메소드 추가
java study

[Java Study] 나만의 앱 만들기 - 메소드 추가

2022. 7. 25. 14:18
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
    'java study' 카테고리의 다른 글
    • [Java Study] 나만의 앱 만들기 - 클래스 추가
    • [Java Study] 나만의 앱 만들기 - 반복문 추가
    • [Java Study] 나만의 앱 만들기 - 배열 추가
    • [Java Study] 나만의 앱 만들기 - 조건문 추가
    pullwall
    pullwall

    티스토리툴바