1. 생성자 constructor - 구슬치기 게임
(1) 문제
다음 조건을 만족하는 클래스를 정의해보자.
* 어린아이가 소유하고 있는 구슬의 개수 정보를 담을 수 있다.
* 놀이를 통한 구슬의 주고받음을 표현하는 메소드가 존재한다.
* 어린이의 현재 보유자산(구슬의 수)을 출력하는 메소드가 존재한다.
위의 두 번째 조건은 두 아이가 구슬치기를 하는 과정에서 구슬의 잃고 얻음을 의미하는 것이다.(이 문제 마지막까지 읽어야 필요한 메소드가 무엇인지 정확히 파악할 수 있다.) 위의 조건을 만족하는 클래스를 정의하였다면, 다음 조건을 만족하는 인스턴스를 각각 생성하자.
* 어린이1의 보유자산 -> 구슬 15개
* 어린이2의 보유자산 -> 구슬 9개
인스턴스의 생성이 완료되면 다음의 상황을 main 메소드 내에서 시뮬레이션 하자.
"1차 게임에서 어린이1은 어린이2의 구슬 2개를 획득한다."
"2차 게임에서 어린이2는 어린이1의 구슬 7개를 획득한다."
마지막으로 각각의 어린이가 보유하고 있는 구슬의 수를 출력하면서 프로그램을 종료한다.
(2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
class Child
{
String name;
int beads;
public Child(String name, int beads)
{
this.name = name;
this.beads = beads;
}
public void win(Child child, int beads)
{
this.beads += child.lose(beads);
}
public int lose(int beads)
{
if(this.beads < beads)
{
int temp = this.beads;
this.beads = 0;
return temp;
}
this.beads -= beads;
return beads;
}
public void printCS()
{
System.out.println(name + " " + beads);
}
}
class ChildMain
{
public static void main(String[] args)
{
Child child1 = new Child("어린이1", 15);
Child child2 = new Child("어린이2", 9);
child1.win(child2, 2);
child1.printCS();
child2.printCS();
System.out.println("===============");
child2.win(child1, 7);
child1.printCS();
child2.printCS();
}
}
|
cs |
'Java > Day6' 카테고리의 다른 글
[Java] 생성자 constructor (0) | 2021.11.07 |
---|