은행 계좌를 만들때 필요한 클래스는 무엇이 있을까?
우선 돈을 입금하고 출금하는 사람과 그 돈이 입금되고 출금되는 은행 계좌 이렇게 두가지를 생각할 수 있다.
이 사람과, 은행 계좌는 딱 한가지로만 정해진게 아니고 여러명, 여러 계좌로 이루어져 있을 수 있다.
1) 고객
public class Client {
String Name;
int Age;
int Cash;
BankAccout Account;
이런식으로 Client 라는 이름을 가진 클래스를 선언해준뒤,
사람에 대한 정보를 입력받을 변수를 선언한다.
이름, 나이, 현금
그리고 BankAccount 라는 자료형을 가진 accout 변수를 선언한다.
이 BankAccount는 바로 다음 은행 계좌에서 클래스로 선언해 준다.
2) 은행계좌
public class BankAccount {
int balance;
Client owner;
BankAccount 라는 이름을 가진 클래스를 선언해준다.
이후 BankAccout 클래스에서 필요한 변수인 잔고를 선언해준뒤,
앞에서 선언한 클래서 사람(Person)을 자료형으로 가진 owner 변수를 선언해준다
앞에서 엮어준 두 코드를 살펴보자
BankAccount Account;
Client owner;
이 두 선언은 서로 다른 클래스에서 각자의 객체들을 엮어주는 역할을 한다.
3) Main
Java는 main을 제일 먼저 실행한다고 했는데, 앞에서 작성한 클래스들에서는 main을 찾아볼 수 없다.
그러니 이 클래스들을 사용해서 프로그램을 실행할 main을 만들어준다.
이름은 SBank라고 선언하겠다.
public class SBank {
public static void main(String[ ] args) {
System.out.println( ); // 출력창 한 줄 띄우기 위함
Client c1 = new Client( );
c1.Name = "한승우"
c1.Age = 30;
c1.Cash = 50000;
System.out.println(c1.Name);
System.out.println(c1.Age);
System.out.println(c1.Cash);
main 내에서 Client 클래스 c1을 선언해주고
c1 고객의 이름, 나이, 현금을 입력해준다
다음으로는 20만원이 들어가 있는 c1의 은행계좌를 만들어야 한다.
BankAccount b1 = new BankAccount( );
b1.balance = 200000;
선언을 해준 후 c1과 b1을 엮어주면 되는데
c1.Account = b1;
b1.owner = c1;
b1의 은행계좌가 c1의 것이라고 하는 것이다
c1은 한승우라는 이름이고 30살이며 현금은 50000을 가지고 있다.
c1의 은행 계좌에는 20만원이 들어있다
이 은행 계좌를 이용해서 할 수 있는 입금, 출금에 대한 클래스
입금은 deposit 이라는 변수
출금은 withdraw 라는변수로 선언을 해야한다
public class BankAccount {
int balance;
Client owner;
boolen deposit(int CashAmount) {
if (CashAmount >= 0 & owner.Cash > CashAmount) {
balance += CashAmount;
owner.Cash -= CashAmount;
return true;
}
else {
return false;
}
}
boolean withdraw(int CashAmount) {
if (balance >= CashAmount & CashAmount >= 0) {
balance -= CashAmount;
owner.Cash += CashAmount;
return true;
}
else {
return false;
}
}
}
BankAccount 클래스에 선언한 입금, 출금 메소드이다.
boolean deposit은 boolean형의 자료형을 가진 deposit이라는 이름을 가진 변수를 선언하는 것이다.
이 변수는 int CashAmount 라는 정수형 입력 변수를 받는다.
if 문을 살펴보기 전에 입금을 받으려면 아무숫자나 받으면 안된다.
우리는 두 조건을 둘 것이다.
1. 현금은 무조건 양수인 숫자로만 입력받아야한다.
2. 고객이 가지고 있는 현금이 입력 받는 입금 액수보다 많아야 한다.
이 두가지의 조건을 지킨 입력값을 받으려면 if 문에서 숫자들을 걸러줘야한다.
그래서 if 조건 내용에
1. CashAmount >= 0
현금은 무조건 양수인 숫자로만 입력받아야한다.
2. owner.Cash > CashAmount
고객이 가지고 있는 현금이 입력 받는 입금 액수보다 많아야 한다.
이 두가지 조건을 충족하는 숫자만 입력가능하게 한 것이다
이 두 조건을 충족한다면
balance += CashAmount; 입금할 돈을 계좌에 넣어주고
owner.Cash -= CashAmount; 입금한 돈만큼 현금에서 빼줘야 한다.
그 후 boolean형 자료형에 맞게 true를 return해준다.
이렇게 똑같은 과정으로 withdraw 변수도 선언해주면 입금, 출금 메소드를 다 만든 것이다.
이렇게만 입력하면 출력값이 따로 없어
얼마가 입, 출금 되었는지 입,출금 뒤 잔고가 얼마인지 입,출금이 실패되었으면 실패되었다고 출력을 해야한다
public class BankAccount {
int balance;
Client owner;
boolen deposit(int CashAmount) {
if (CashAmount >= 0 & owner.Cash > CashAmount) {
balance += CashAmount;
owner.Cash -= CashAmount;
Syetem.out.pritln(CashAmout + "원 입금하였습니다. 잔고: " + balance + "원, 현금: " + owner. Cash + "원");
return true;
}
else {
return false;
Syetem.out.pritln("입금을 실패하였습니다. 현재 고객님 잔고: " + balance + "원, 현금: " + owner. Cash + "원");
}
}
boolean withdraw(int CashAmount) {
if (balance >= CashAmount & CashAmount >= 0) {
balance -= CashAmount;
owner.Cash += CashAmount;
Syetem.out.pritln(CashAmout + "원 출금하였습니다. 잔고: " + balance + "원, 현금: " + owner. Cash + "원");
return true;
}
else {
Syetem.out.pritln("출금을 실패하였습니다. 현재 고객님 잔고: " + balance + "원, 현금: " + owner. Cash + "원");
return false;
}
}
}
'JAVA' 카테고리의 다른 글
[Java] 수업 정리 22 (24.11.19) (0) | 2024.11.24 |
---|---|
[Java] 수업 정리 21 (24.11.19) (0) | 2024.11.24 |
[Java] 수업 정리 19 (24.11.19) (0) | 2024.11.24 |
[Java] 수업 정리 18 재귀함수 (24.11.19) (0) | 2024.11.24 |
[Java] 수업 정리 17 메소드(Method), 리턴(return) (24.11.19) (0) | 2024.11.24 |