본문 바로가기
Java/이것이 자바다

이자바 6장(클래스) 확인문제

by k-mozzi 2022. 11. 24.
반응형

- 15번

package ch6;

class MemberService {

	boolean login(String id, String password) {
		if ("hong".equals(id) && "12345".equals(password)) {
			return true;
		} else {
			return false;
		}
	}

	void logout(String id) {
		System.out.println("로그아웃 되었습니다.");
	}
}

public class Exercise15 {

	public static void main(String[] args) {
		MemberService memberService = new MemberService();
		boolean result = memberService.login("hong", "12345");
		if (result) {
			System.out.println("로그인 되었습니다.");
			memberService.logout("hong");
		} else {
			System.out.println("id 또는 password가 올바르지 않습니다.");
		}
	}

}

 

 

- 16번

package ch6;

class Printer {
	void println(int num) {
		System.out.println(num);
	}
	void println(boolean tf) {
		System.out.println(tf);
	}
	void println(double likeF) {
		System.out.println(likeF);
	}
	void println(String word) {
		System.out.println(word);
	}
}

public class Exercise16 {

	public static void main(String[] args) {
		Printer printer = new Printer();
		printer.println(10);
		printer.println(true);
		printer.println(5.7);
		printer.println("홍길동");
	}

}

 

 

- 17번

package ch6;

class Printer2 {
	static void println(int num) {
		System.out.println(num);
	}
	static void println(boolean tf) {
		System.out.println(tf);
	}
	static void println(double likeF) {
		System.out.println(likeF);
	}
	static void println(String word) {
		System.out.println(word);
	}
}

public class Exercise17 {

	public static void main(String[] args) {
		Printer2.println(10);
		Printer2.println(true);
		Printer2.println(5.7);
		Printer2.println("홍길동");
	}

}

 

 

- 19번

package ch6;

class Count {
	static final int MAX_BALANCE = 1000000;
	static final int MIN_BALANCE = 0;
	private int balance;
	
	int getBalance() {
		return balance;
	}
	
	void setBalance(int balance) {
		if(balance >= MIN_BALANCE && balance <= MAX_BALANCE) {
			this.balance = balance;
		}
	}
}

public class Exercise19 {

	public static void main(String[] args) {
		Count account = new Count();
		
		account.setBalance(10000);
		System.out.println("present money: " + account.getBalance());
		
		account.setBalance(-100);
		System.out.println("present money: " + account.getBalance());
		
		account.setBalance(2000000);
		System.out.println("present money: " + account.getBalance());
		
		account.setBalance(300000);
		System.out.println("present money: " + account.getBalance());
	}

}

 

 

- 20번

package ch6;

import java.util.Scanner;

class Account {
	private String ano;
	private String owner;
	private int balance;

	public Account(String ano, String owner, int balance) {
		this.ano = ano;
		this.owner = owner;
		this.balance = balance;
	}

	public String getAno() {
		return ano;
	}

	public void setAno(String ano) {
		this.ano = ano;
	}

	public String getOwner() {
		return owner;
	}

	public void setOwner(String owner) {
		this.owner = owner;
	}

	public int getBalance() {
		return balance;
	}

	public void setBalance(int balance) {
		this.balance = balance;
	}
}

public class Exercise20 {
	private static Account[] accountArray = new Account[100];
	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;
			}
		}
		System.out.println("프로그램 종료");
	}

	// 계좌 생성하기
	private static void createAccount() {
		System.out.println("--------------");
		System.out.println("create account");
		System.out.println("--------------");

		System.out.print("account number: ");
		String ano = scanner.next();

		System.out.print("accounter name: ");
		String owner = scanner.next();

		System.out.print("first deposit: ");
		int balance = scanner.nextInt();

		Account account = new Account(ano, owner, balance);

		for (int i = 0; i < accountArray.length; i++) {
			if (accountArray[i] == null) {
				accountArray[i] = account;
				System.out.println("result: account is created.");
				break;
			}
		}
	}

	// 계좌 목록보기
	private static void accountList() {
		System.out.println("--------------");
		System.out.println("account list");
		System.out.println("--------------");

		for (int i = 0; i < accountArray.length; i++) {
			if (accountArray[i] != null) {
				System.out.println(accountArray[i].getAno() + '\t' + accountArray[i].getOwner() + '\t'
						+ accountArray[i].getBalance());
			}
		}
	}

	// 예금하기
	private static void deposit() {
		System.out.println("--------------");
		System.out.println("deposit");
		System.out.println("--------------");

		System.out.print("account number: ");
		String ano = scanner.next();

		System.out.print("deposit amount: ");
		int balance = scanner.nextInt();

		Account account = findAccount(ano);

		if (account == null) {
			System.out.println("result: there is no existing account");
		}

		account.setBalance(account.getBalance() + balance);
		System.out.println("result: deposit success");
	}

	// 출금하기
	private static void withdraw() {
		System.out.println("--------------");
		System.out.println("withdraw");
		System.out.println("--------------");

		System.out.print("account number: ");
		String ano = scanner.next();

		System.out.print("withdraw amount: ");
		int balance = scanner.nextInt();

		Account account = findAccount(ano);

		if (account == null) {
			System.out.println("result: there is no existing account");
		}

		if (account.getBalance() < balance) {
			System.out.println("you can not withdraw more than your deposit");
		}

		account.setBalance(account.getBalance() - balance);
		System.out.println("result: withdraw success");
	}

	// Account 배열에서 ano와 동일한 Account 객체 찾기
	private static Account findAccount(String ano) {
		Account account = null;
		for (int i = 0; i < accountArray.length; i++) {
			if (accountArray[i] != null) {
				if (accountArray[i].getAno().equals(ano)) {
					account = accountArray[i];
					break;
				}
			}
		}
		return account;
	}

}

 

728x90
반응형

'Java > 이것이 자바다' 카테고리의 다른 글

인터페이스  (0) 2023.03.14
상속  (0) 2023.03.08
이자바 5장(참조 타입) 확인문제  (0) 2022.11.23
이자바 4장(조건문과 반복문) 확인문제  (0) 2022.11.23
어노테이션  (0) 2022.10.21

댓글