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(아규먼트), 한글로 인수 또는 인자라 한다.
- 메서드 결과 반환 값으로 치환
리팩토링 후 좋아진 점
코드 구조를 한눈에 확인할 수 있음.
입금과 출금을 구분, 수정시 찾아가기 쉬움.
구조적으로 읽기 쉽고 유지보수하기 좋음.
'유튜브 스크립트 > JAVA' 카테고리의 다른 글
[JAVA | 영상스크립트 | 백문이 불여일타!!] 생성자 (0) | 2024.08.28 |
---|---|
[JAVA | 영상스크립트 | 백문이 불여일타!!] 참조형 (0) | 2024.08.26 |
[JAVA | 영상스크립트 | 백문이 불여일타!!] 클래스와 배열 (0) | 2024.08.26 |
[JAVA | 영상스크립트 | 백문이 불여일타!!] 메소드(입출력프로그램) (0) | 2024.08.26 |