입금, 출금 과제

기록하는 용도·2022년 6월 9일
0

메소드를 학습하고 메소드 내용을 작성한다.

  1. 입금
    (1) 입금을 성공하면 true를 리턴, 실패하면 false를 리턴합니다.
    (2) 입금 성공 시, 현재 잔고(balance)에 파라미터로 받은 금액(amount)을 더합니다.
    (3) 입금 성공 시, 계좌주의 현금액(cashAmount)을 입금액만큼 줄입니다.
    (4) 입금할 금액이 음수이면 입금 실패입니다(0원은 입금 성공).
    (5) 계좌주의 현금이 입금액보다 작을 경우 입금 실패입니다.
    (6) 입금 실패 시 다음과 같은 내용 출력:
    입금 실패입니다. 잔고: xx원, 현금: xx원
    (7) 입금 성공 시 다음과 같은 내용 출력:
    xx원 입금하였습니다. 잔고: xx원, 현금: xx원

  2. 출금
    (1) 출금을 성공하면 true를 리턴, 실패하면 false를 리턴합니다.
    (2) 출금 성공 시, 현재 잔고에서 파라미터로 받은 금액을 뺍니다.
    (3) 출금 성공 시, 계좌주의 현금액을 출금액만큼 늘려줍니다.
    (4) 출금할 금액이 음수이면 출금 실패입니다(0원은 출금 성공).
    (5) 출금할 금액이 잔고보다 크면 출금 실패입니다.
    (6) 출금 실패 시 다음과 같은 내용 출력:
    출금 실패입니다. 잔고: xx원, 현금: xx원
    (7) 출금 성공 시 다음과 같은 내용 출력:
    xx원 출금하였습니다. 잔고: xx원, 현금: xx원

public class Person {
    String name;
    int age;
    int cashAmount;
    BankAccount account;
}
public class Main {
    public static void main(String[] args) {
        // 사람 선언
        Person p1 = new Person();
        p1.name = "김신의";
        p1.age = 28;
        p1.cashAmount = 30000;


        // 은행 계좌 생성
        BankAccount a1 = new BankAccount();
        a1.balance = 100000;

        p1.account = a1;
        a1.owner = p1;

        // 3 - 4. write code here
        Person p2 = new Person();
        BankAccount a2 = new BankAccount();
        a2.owner = p2;
        p2.account = a1;

        p2.cashAmount = 100000;
        a2.balance = 500000;

        System.out.println(a2.deposit(30000));
        System.out.println(a2.withdraw(170000));
        System.out.println(a2.deposit(620000));
        System.out.println(a2.withdraw(890000));
    }
}
public class BankAccount {
    int balance;
    Person owner;

    // 파라미터 : 입금할 액수(정수)
    // 리턴 : 성공여부(불린)
    boolean deposit(int amount) {
        // 1. write code here
        if (amount<0 || owner.cashAmount < amount){
            System.out.println("입금 실패입니다. 잔고: "+ balance+"원, 현금: " + owner.cashAmount+"원");
            return false;
        }
        else{
            balance += amount;
            owner.cashAmount -= amount;
            System.out.println(amount+"원 입금하였습니다. 잔고: " + balance +"원, 현금: "+ owner.cashAmount +"원");
            return true;
        }

    }

    // 파라미터 : 출금할 액수(정수)
    // 리턴 : 성공여부(불린)
    boolean withdraw(int amount) {
        // 2. write code here
        if (amount < 0 || balance < amount) {
            System.out.println("출금 실패입니다. 잔고: "+ balance+"원, 현금: " + owner.cashAmount+"원");
            return false;
        }
        else{
            owner.cashAmount += amount;
            balance -= amount;
            System.out.println(amount+ "원 출금하였습니다. 잔고: " + balance +"원, 현금: " + owner.cashAmount +"원");
            return true;
        }

    }

    // 첫 번째 파라미터 : 받는 사람(Person)
    // 두 번째 파라미터 : 이체할 금액(정수)
    // 리턴 : 성공여부(불린)
    // boolean transfer(Person to, int amount) {
    // (다음 과제에서 사용하므로, 우선 skip합니다.)
    // }
}

0개의 댓글