클래스의 메서드 연습

Mia Lee·2021년 11월 22일
0

JAVA

목록 보기
47/98
package ex_method;

public class Test1 {

	public static void main(String[] args) {
		
		/*
		 * Account 인스턴스 생성 후 데이터 저장 후 출력
		 * 계좌번호 : 111-1111-111
		 * 예금주명 : 홍길동
		 * 현재잔고 : 10000원
		 * 
		 */
		
		Account acc = new Account();
		
		// Account 인스턴스에 계좌 정보 데이터 저장
		acc.accountNo = "111-1111-111";
		acc.ownerName = "홍길동";
		acc.balance = 10000;
		
		System.out.println("계좌번호 : " + acc.accountNo);
		System.out.println("예금주명 : " + acc.ownerName);
		System.out.println("현재잔고 : " + acc.balance + " 원");

		acc.deposit(5000);
		
		System.out.println("==================================");
		
		// withdraw() 메서드를 호출하여 출금할 금액 전달 후
		// 출금 성공 시 출금된 금액을 리턴받기
		int myMoney = acc.withdraw(5000);
		System.out.println("출금된 금액 : " + myMoney + " 원");
		
		myMoney = acc.withdraw(20000);
		System.out.println("출금된 금액 : " + myMoney + " 원");
		
	}

}

/*
 * 은행계좌(Account) 클래스 정의
 * 멤버변수
 * 1) 계좌번호(accountNo, 문자열) ex) "111-1111-111"
 * 2) 예금주명(ownerName, 문자열) ex) "홍길동"
 * 3) 현재잔고(balance, 정수) ex) 10000
 * 
 * 메서드 정의
 * 1) 입금(deposit)
 *   - 매개변수 1개(정수형 amount - 입금할 금액)
 *   - 리턴값 없음
 *   - 입금할 금액(amount)를 전달받아 현재잔고(balance)에 누적 후 출력
 *   출력결과
 *   입금된금액 : XXX원
 *   현재잔고 : XXX원
 * 
 * 2) 출금(withdraw)
 *   - 매개변수 1개(정수형 amount - 출금할 금액)
 *   - 리턴값 있음(int - 출금된 금액)
 *   - 출금할 금액(amont)를 전달받아 현재잔고(balance)와 비교
 *     => 만약, 현재잔고보다 출금할 금액이 클 경우 출금 불가능하므로
 *        "출금 불가! (잔액 부족)" 출력
 *        "출금할 금액 : XXX원, 현재잔고 : XXX원" 출력 후 메서드 종료
 *     => 아니면(현재잔고보다 출금할 금액이 크지 않을 경우) 출금 가능하므로
 *        출금할 금액만큼 현재잔고에서 차감한 후 출금할 금액만큼 리턴
 * 
 */
class Account {
	
	// 멤버변수
	String accountNo;
	String ownerName;
	int balance;
	
	// 입금 메서드
	public void deposit(int amount) {
		// 입금할 금액(amount)를 현재잔고(balance)에 누적
		balance += amount;
		
		// 입금금액과 현재잔고 출력
		System.out.println("입금된 금액 : " + amount + " 원");
		System.out.println("현재잔고 : " + balance + " 원");
		
	}
	
	// 출금 메서드
	public int withdraw(int amount) {

		if (amount > balance) { // 잔고가 부족하여 출금이 불가능할 경우
			System.out.println("출금 불가! (잔액 부족)");
			System.out.println("출금할 금액 : " + amount + " 원, 현재잔고 : " + balance + " 원");
			
			// if문 외부에서  리턴을 수행
			// 출금금액을 0으로 만들어서 수행
//			amount = 0;
			
			return 0;
			
		} else {
			// 출금할 금액 < 현재잔고 경우 -> 출금 가능
			balance -= amount;
			System.out.println("출금할 금액 : " + amount + " 원, 현재잔고 : " + balance + " 원");
			
		}
		
		return amount;
		
	}
	
}






















0개의 댓글