adavaj P(출처 이것이 자바다)/클래스
Chapter06 클래스 확인문제 (풀어야함)
Hesitater
2021. 9. 24. 19:08
728x90
ex13
ex14
ex15
ex16
ex17
ex18
public class 클래스 {
//정적필드
private static 클래스 singleton = new 클래스();
//생성자
private 클래스() {}
//정적 메소드
static 클래스 getInstance() {
return singleton;
}
}
Ex19
- Setter와 Getter를 이용
- 0과 1000000 은 MiN_BALANFE 와 MAX_BALANCE 상수 선언
- Setter의 매개값이 음수이거나 백만원을 초과하면 현재 balance값을유지
Ex20
package chap06.exercises.ex20;
import java.util.Scanner;
public class BankApplication {
private static Account[] accountArray = new Account[100];
private static int size = 0;
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
boolean run = true;
while(run) {
System.out.println("================================");
System.out.println("1.계좌생성 | 2.계좌목록 | 3.예금 | 4.출금 | 5,종료");
System.out.println("================================");
System.out.print("선택>");
int selectNo = scanner.nextInt();
if( selectNo == 1) {
createAccount();
} else if( selectNo == 2) {
accountList();
} else if ( selectNo == 3) {
deposit();
} else if ( selectNo == 4) {
withdraw();
} else if ( selectNo == 5) {
run = false;
}
}
scanner.close();
System.out.println("프로그램 종료");
}
//계좌생성하기
private static void createAccount() {
System.out.println("---------");
System.out.println("계좌생성");
System.out.println("---------");
// 계좌번호 입력
System.out.print("계좌번호:");
String ano = scanner.next();
// 계좌주 입력
System.out.print("계좌주:");
String owner = scanner.next();
// 초기입금액 입력
System.out.print("초기입금액:");
int money = scanner.nextInt();
// Account 객체 생성
Account newAccount = new Account(ano, owner, money);
// accountArray 배열에 할당
accountArray[size++] = newAccount;
System.out.println("결과: 계좌가 생성되었습니다.");
}
//계좌 목록 보기
private static void accountList() {
System.out.println("---------");
System.out.println("계좌목록");
System.out.println("---------");
for (int i = 0; i < size; i++) {
System.out.print(accountArray[i].getAno() + "\t");
System.out.print(accountArray[i].getOwner() + "\t");
System.out.println(accountArray[i].getBalance());
}
}
//예금하기
private static void deposit() {
System.out.println("-----------");
System.out.println("예금");
System.out.println("-----------");
// 계좌번호
System.out.print("계좌번호:");
String ano = scanner.next();
//예금액
System.out.println("예금액:");
int money = scanner.nextInt();
Account account = findAccount(ano);
account.setBalance(account.getBalance() + money);
System.out.println("결과: 예금이 성공되었습니다.");
}
//출금하기
private static void withdraw() {
System.out.println("-----------");
System.out.println("출금");
System.out.println("-----------");
//계좌번호
System.out.print("계좌번호:");
String ano = scanner.next();
//출금액
System.out.print("출금액:");
int money = scanner.nextInt();
Account account = findAccount(ano);
account.setBalance(account.getBalance() - money);
System.out.println("결과: 출금이 성공되었습니다.");
}
//Account 배열에서 ano와 동일한 Account 객체 찾기
private static Account findAccount(String ano) {
for (int i = 0; i < size; i ++) {
if(accountArray[i].getAno().equals(ano)) {
return accountArray[i];
}
}
return null;
}
}
결과값
================================
1.계좌생성 | 2.계좌목록 | 3.예금 | 4.출금 | 5,종료
================================
선택>1
---------
계좌생성
---------
계좌번호:111
계좌주:김태희
초기입금액:10000
결과: 계좌가 생성되었습니다.
================================
1.계좌생성 | 2.계좌목록 | 3.예금 | 4.출금 | 5,종료
================================
선택>1
---------
계좌생성
---------
계좌번호:222-222
계좌주:전지현
초기입금액:20000
결과: 계좌가 생성되었습니다.
================================
1.계좌생성 | 2.계좌목록 | 3.예금 | 4.출금 | 5,종료
================================
선택>2
---------
계좌목록
---------
111 김태희 10000
222-222 전지현 20000
================================
1.계좌생성 | 2.계좌목록 | 3.예금 | 4.출금 | 5,종료
================================
선택>3
-----------
예금
-----------
계좌번호:111
예금액:
20000
결과: 예금이 성공되었습니다.
================================
1.계좌생성 | 2.계좌목록 | 3.예금 | 4.출금 | 5,종료
================================
선택>4
-----------
출금
-----------
계좌번호:222-222
출금액:1000
결과: 출금이 성공되었습니다.
================================
1.계좌생성 | 2.계좌목록 | 3.예금 | 4.출금 | 5,종료
================================
선택>2
---------
계좌목록
---------
111 김태희 30000
222-222 전지현 19000
================================
1.계좌생성 | 2.계좌목록 | 3.예금 | 4.출금 | 5,종료
================================
선택>5
프로그램 종료