본문 바로가기

유튜브 스크립트/JAVA

[JAVA | 영상스크립트 | 백문이 불여일타!!] 메서드(리팩토링)

https://youtu.be/Duk3XobIiOU

 

1. 문제 설명

다음은 입출금을 나타내는 코드이다. 코드를 보면 한 클래스 안에 입금로직과 출금로직이 섞여서 진행되고 있다.

입금(deposit)과 출금(withdraw)을 메소드로 만들어서 리팩토링하면서 JAVA의 입출력,반복문, 조건문을 함께 공부할 수 있다.

public class RefactoringQ {
    public static void main(String[] args) {
        int balance = 10000; // 잔액

        // 입금 1000
        int depositAmount = 1000;
        balance += depositAmount;
        System.out.println(depositAmount + "원을 입금하였습니다. 현재 잔액: " + balance + "원");

        // 출금 2000
        int withdrawAmount = 2000;
        if (balance >= withdrawAmount) {
            balance -= withdrawAmount;
        System.out.println(withdrawAmount + "원을 출금하였습니다. 현재 잔액: " + balance + "원");
        } else {
        System.out.println(withdrawAmount + "원을 출금하려 했으나 잔액이 부족합니다.");
        }

        System.out.println("최종 잔액: " + balance + "원");
    }
}

2. 요구 사항

  • 입금액, 출금액, 잔액 등과 같은 변수를 생성하고 초기화한다.
  • 입출력을 사용하여 구분선과 메뉴바를 작성해야 한다.
  • 무한 반복문을 통해서 프로그램의 시작과 끝을 만든다.
  • 조건문을 사용하여 선택에 따라 다른 메서드에 접근하도록 한다.
  • 메서드를 사용하여 입금과 출금 기능을 구현한다.

3.문제 해결

public class RefactoringA {
    public static void main(String[] args) {
        int balance = 10000; // 잔액

        // 입금 1000
        int depositAmount = 1000;
        balance = deposit(balance, depositAmount);

        // 출금 2000
        int withdrawAmount = 2000;
        withdraw(balance, withdrawAmount);

        System.out.println("최종 잔액: " + balance + "원");
    }

    public static int deposit(int balance, int amount){

        balance += amount;
        System.out.println(amount + "원을 입금하였습니다. 현재 잔액: " + balance + "원");
        return balance;
    }

    public static int withdraw(int balance, int amount) {
        if(balance >= amount) {
            balance -= amount;
            System.out.println(amount + "원을 출금하였습니다. 현재 잔액: " + balance + "원");
        } else {
            System.out.println(amount +"원을 출금하려 했으나 잔액이 부족합니다.");
        }
        return balance;
    }

}

4. 스크립트

코드 확인

  • 잔액이 0원인 계좌에 10000원을 입금하고 5000원을 출금하는 코드

요구사항

  • 입출금 메서드 리팩토링 - 입금과 출금 로직을 메서드로 생성

코드작성

메서드를 만들기 위해서 접근제어자, 반환 타입, 이름, 본문 순으로 작성.

  • 접근제어자는 public, protected,default,private중 public으로 사용하여 모든 외부 호출을 허용.
  • static을 사용하여 클래스 메서드(정적 메서드)로 만들어서 객체생성없이 static클래스 내에서 사용할 수 있도록.
  • 반환타입은 잔액이기때문에 정수형인 int를 사용
  • 입금 메서드 이름 deposit
  • 메서드 호출시 매개변수에 넘길 인자값 정의, 메서드를 정의할 때 사용되는 변수를 파라미터,매개변수라고 한다.
  • 입금 메서드는 balance에 amount를 더한 값
  • 출력문 
  • 출금 메서드 이름 withdraw
  • 출금 메서드는 balance가 amount보다 크면 출금, 작으면 잔액이 부족합니다를 반복문을 사용
  • 메서드 호출
  • 메서드 호출 메서드 이름에 입력값 작성. 호출시 넘기는 값을 Argument(아규먼트), 한글로 인수 또는 인자라 한다.
  • 메서드 결과 반환 값으로 치환

리팩토링 후 좋아진 점

코드 구조를 한눈에 확인할 수 있음.

입금과 출금을 구분, 수정시 찾아가기 쉬움.

구조적으로 읽기 쉽고 유지보수하기 좋음.