728x90
04. 은행 계좌 만들기 (4)1 입금, 출금2 접근제어자3 계좌이체4> 생성자5 this4. 생성자 두 클래스에 생성자를 만들어 봅시다. Person 클래스 Person의 생성자 2개를 만들 것입니다. (1) 파라미터로 '이름'을 뜻하는 String형 값 pName과 '나이'를 뜻하는 int형 값 pAge를 받고 초기값을 설정합니다. 인스턴스 변수 cashAmount은 0으로 시작합니다. 단, pAge가 음수면 인스턴스 변수 age는 12로 설정합니다.(2) 파라미터로 '이름'을 뜻하는 String형 값 pName, '나이'를 뜻하는 int형 값 pAge, 그리고 '보유 현금'을 뜻하는 int형 값 pCashAmount를 받고 초기값을 설정합니다. (1)번과 마찬가지로 pAge가 음수인 경우에는 ag..
03. 은행 계좌 만들기 (3)1 입금, 출금2 접근제어자3> 계좌이체4 생성자5 this3. 계좌이체 지금까지 만들어 온 은행 시뮬레이션 프로그램에 송금 기능을 담당하는 transfer 메소드를 써봅시다. 메소드 오버로딩의 개념을 이용해서 BankAccount 클래스에 두 개의 transfer 메소드를 쓰고, Person 클래스에도 두 개의 transfer 메소드를 쓰겠습니다. 송금 메소드 작성 (BankAccount.java) 송금은 계좌 - 계좌 방식으로 이루어집니다. 하지만 사용자의 편리함을 위해서 아래의 두 메소드를 만들겠습니다.public class BankAccount { // 저번 과제에서의 코드를 포함해주세요! // 첫 번째 파라미터: 받는 사람 (Person) // 두..
02. 은행 계좌 만들기 (2)1 입금, 출금2> 접근제어자3 계좌이체4 생성자5 this2. 접근제어자 Person 클래스와 BankAccount 클래스의 모든 인스턴스 변수들을 private으로 설정해주세요. 각 변수에 해당하는 'setter'(예: setName)과 'getter'(예: getName) 메소드를 써주고, BankDriver에서 오류가 나지 않도록 적절히 적용해주세요! 프로그램을 수정하여 오류가 나오지 않도록 하고, 테스트 케이스는 유지하여 이전 문제와 같이 아래의 출력값이 나오도록 해야 합니다. 테스트이 실행결과가 나와야 합니다.30000원 입금하였습니다. 잔고: 530000원, 현금: 70000원true170000원 출금하였습니다. 잔고: 360000원, 현금: 240000원..
01. 은행 계좌 만들기 (1)1> 입금, 출금2 접근제어자3 계좌이체4 생성자5 this1. 입금, 출금메서드 1. 입금 (1) 입금을 성공하면 true를 리턴, 실패하면 false를 리턴합니다.(2) 입금 성공 시, 현재 잔고(balance)에 파라미터로 받은 금액(amount)을 더합니다.(3) 입금 성공 시, 계좌주의 현금액(cashAmount)을 입금액만큼 줄입니다.(4) 입금할 금액이 음수이면 입금 실패입니다(0원은 입금 성공).(5) 계좌주의 현금이 입금액보다 작을 경우 입금 실패입니다.(6) 입금 실패 시 다음과 같은 내용 출력입금 실패입니다. 잔고: xx원, 현금: xx원 (7) 입금 성공 시 다음과 같은 내용 출력xx원 입금하였습니다. 잔고: xx원, 현금: xx원 2. 출금 (1) 출..
[기본 개념] 1 | (5.1) 변수의 초기화1> 변수의 초기화2> 명시적 초기화(explicit initialization)3> 초기화 블럭(initialization block)4> 멤버변수의 초기화 시기와 순서1. 변수의 초기화 변수를 선언하고 처음으로 값을 저장하는 것을 '변수의 초기화'라고 한다. 멤버변수는 자동적으로 변수의 자료형에 맞는 기본값으로 초기화가 이루어지지만 지역변수는 사용하기 전에 반드시 초기화를 해야 한다. class InitTest { int x ; // 인스턴스변수 int y = x ; // 인스턴스변수 void method1( ) { ..
[기본 개념] 1 | (4.1) 생성자1> 생성자란?2> 기본 생성자(default constructor)3> 매개변수가 있는 생성자4> 생성자에서 다른 생성자 호출하기 - this( ), this5> 생성자를 이용한 인스턴스의 복사1. 생성자란? 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. 클래스 내에 선언되며, 리턴값이 없다. 그렇다고 해서 void를 사용하지는 않고 아무것도 적지 않는다. 1. 생성자의 이름은 클래스의 이름과 같아야 한다.2. 생성자는 리턴 값이 없다. 생성자는 다음과 같이 정의하며, 오버로딩이 가능하므로 하나의 클래스에 여러 개의 생성자가 존재할 수 있다. 클래스이름(타입 변수명, 타입 변수명, . . . ) { // ..
[기본 개념] 1 | (3.1) 오버로딩1> 오버로딩이란?2> 오버로딩의 조건3> 오버로딩의 예4> 오버로딩의 장점5> 가변인자(varargs)와 오버로딩1. 오버로딩이란? 메서드도 변수와 마찬가지로 각기 다른 이름을 가져야 하는데 자바에서는 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 이처럼 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '오버로딩(overloading)'이라고 한다.2. 오버로딩의 조건 오버로딩이 성립하기 위한 조건은 다음과 같다. 1. 메서드의 이름이 같아야 한다.2. 매개변수의 개수 또는 타입이 달라야 한다. 매개변수가 다르면 서로 구별될 수 있기에 오버로딩이 가능하며 위 조건을 만족시키지 못하는 메서드는 중복 정의로 에러가..
[기본 개념] 1 | (2.6) 클래스/인스턴스 메서드, 클래스/인스턴스 멤버간 호출1 선언 위치에 따른 변수의 종류2 클래스변수와 인스턴스변수3 메서드4 메서드의 선언과 구현5 메서드의 호출6 return문7 JVM의 메모리구조8 기본형 매개변수와 참조형 매개변수9 참조형 반환타입10 재귀호출11> 클래스 메서드와 인스턴스 메서드12> 클래스 멤버와 인스턴스 멤버간의 호출11. 클래스 메서드와 인스턴스 메서드 변수에서 그랬듯이, 메서드 앞에 static이 붙어 있으면 클래스메서드이고 붙어 있지 않으면 인스턴스 메서드이다. 클래스 메서드도 클래스변수처럼, 객체를 생성하지 않고도 '클래스이름.메서드이름(매개변수)'와 같은 식으로 호출할 수 있다. 인스턴스 메서드는 메서드의 작업을 수행하는데 인스턴스 변수..