1. 아래 실행 결과와 같이 출력하는 다음 main()을 가진 Song 클래스를 작성하라.
Song 클래스는 노래 제목 title필드, 생성자, getTitle()메소드로 구성이 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package com.example;
public class Song {
String title;
public Song(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
public static void main(String[] args) {
Song myChat = new Song("Good Morning");
Song yourChat = new Song("Good Evening");
System.out.println("나의 인사는" + myChat.getTitle());
System.out.println("너의 인사는" + yourChat.getTitle());
}
}
|
cs |
2. 다음은 이름(name 필드)과 전화번호(tel 필드)를 가진 Phone클래스이다.
이름과 전화번호를 입력받아 2개의 Phone 객체를 생성하고, 출력하고
main() 메소드를 작성하시오.
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
|
package com.example;
import java.util.Scanner;
public class Phone {
private String name;
private String tel;
public Phone(String name, String tel){
this.name = name;
this.tel = tel;
}
public String getName() {return name;}
public String getTel() {return tel;}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("이름과 전화번호 입력>>");
Phone phone1 = new Phone(scanner.next(), scanner.next());
System.out.print("이름과 전화번호 입력>>");
Phone phone2 = new Phone(scanner.next(),scanner.next());
System.out.println(phone1.getName() + "의 번호 " + phone1.getTel());
System.out.println(phone2.getName() + "의 번호 " + phone2.getTel());
scanner.close();
}
}
|
cs |
3. 사각형을 표현하는 다음 Rect 클래스를 활용하여 Rect 객체 배열을 생성하고
사용자로부터 4개의 사각형을 입력받아 배열에 저장한 뒤 배열을 검색하여
사각형 면적의 합을 출력하는 main()메소드를 가진 RectArray 클래스를 작성하라.
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
|
package com.example;
import java.util.Scanner;
class Rect {
private int width, height;
public Rect(int width, int height) {
this.width = width;
this.height = height;
}
public int getArea() {
return width * height;
}
}
public class RectAry {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Rect[] a = new Rect[4];
for(int i = 0; i < a.length; i++) {
System.out.print(i + 1 + ".");
System.out.print("너비와 높이를 입력하시오.");
int width = sc.nextInt();
int height = sc.nextInt();
a[i] = new Rect(width,height);
}
System.out.println("저장완료");
int result = 0;
for(int i = 0; i < a.length; i++) {
result = result + a[i].getArea();
}
System.out.println("사각형 넓이의 합은 " + result + "입니다.");
}
}
|
cs |
4. 이름(name)과 전화번호(tel)필드, 생성자 및 필요한 메소드를 가진 Phone 클래스를 작성하고
다음 실행 사례와 같이 작동하도록 main()을 가진 PhoneMagager 클래스를 작성하라.
한 사람의 전화번호는 하나의 Phone 객체로 다룬다.
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
package com.example;
import java.util.Scanner;
class Phone {
private String name, tel;
public Phone(String name, String tel) {
this.name = name;
this.tel = tel;
}
public String getName() {
return name;
}
public String getTel() {
return tel;
}
}
public class PhoneManager {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("인원수>>");
int num = sc.nextInt();
Phone [] phone = new Phone[num];
for(int i=0; i<num; i++) {
System.out.print("이름과 전화번호(번호는 연속적으로 입력)>>");
String name = sc.next();
String tel = sc.next();
phone[i] = new Phone(name, tel);
}
System.out.println("저장되었습니다...");
while(true) {
System.out.print("검색할 이름>>");
String name = sc.next();
String tel = "";
if(name.equals("exit")) {
System.out.println("프로그램을 종료합니다...");
break;
}
else {
for(int i=0; i<num; i++) {
if(name.equals(phone[i].getName()))
tel = phone[i].getTel();
}
}
if(tel=="") {
System.out.println(name+"이 없습니다.");
}
else {
System.out.println(name + "의 번호는 " + tel + " 입니다.");
}
}
}
}
|
cs |
5. CircleManager는 static 메소드를 가진 클래스이다.
StaticTest 클래스는 static 메소드를 활용하는 사례를 보여준다.
실행 결과를 참고하여 코드를 완성하라.
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
|
package com.example;
class Circle {
private int radius;
public Circle(int radius) { this.radius = radius; }
public int getRadius() { return this.radius; }
public void setRadius(int radius) { this.radius = radius; }
}
class CircleManager {
static void copy(Circle src, Circle dest) {
dest.setRadius(src.getRadius());
}
static boolean equals(Circle a, Circle b) {
if(a.getRadius() == b.getRadius())
return true;
else
return false;
}
}
public class StaticTest {
public static void main(String[] args) {
Circle pizza = new Circle(5);
Circle waffle = new Circle(1);
boolean res = CircleManager.equals(pizza, waffle);
if(res = true)
System.out.println("pizza와 waffle 크기 같음");
else
System.out.println("pizza와 waffle 크기 다름");
CircleManager.copy(pizza, waffle);
res = CircleManager.equals(pizza, waffle);
if(res = true)
System.out.println("pizza와 waffle 크기 같음");
else
System.out.println("pizza와 waffle 크기 다름");
}
}
|
cs |
6. 다음은 가로 세로로 구성되는 박스를 표현하는 Box 클래스와 이를 이용하는 코드이다.
Box의 draw()는 fill 필드에 지정된 문자로 자신을 그린다.
실행 결과를 보면서 코드를 완성시켜라.
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
|
package com.example;
public class Box {
private int width, height;
private char fillChar;
public Box() {
this(10, 1);
}
public Box(int width, int height) {
this.width = width;
this.height = height;
}
public void draw() {
for(int i=0; i<height; i++) {
for(int j=0; j<width; j++)
System.out.print(fillChar);
System.out.println();
}
}
public void fill(char c) {
this.fillChar = c;
}
public static void main(String[] args) {
Box a = new Box();
Box b = new Box(20, 3);
a.fill('*');
b.fill('%');
a.draw();
b.draw();
}
}
|
cs |
⭐보너스 문제 1. 두사람이 번갈아 하는 겜블링 게임을 만들어보자.
0에서 2사이의 정수 3개를 랜덤하게 발생시켜 모두 같으면 승리한다.
선수는 Player 클래스로 표현한다. 실행 결과를 참고하여 다음 코드를 완성하라.
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
|
package com.example;
import java.util.Scanner;
class Player {
private String name;
public Player(String name) { this.name = name; }
public String getName() { return name; }
}
public class GamblingGame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Player [] p = new Player[2];
for(int i=0; i<p.length; i++) {
System.out.print("선수 이름 입력 >>");
p[i] = new Player(scanner.next());
}
int n=0; // 두 선수가 번갈아 게임하기 위한, n은 배열 p[]의 인덱스
while(true) {
System.out.print(p[n].getName() + "씨, <Enter 외 아무키나 치세요>");
scanner.next(); // 입력된 키를 읽고 버림
int [] val = new int [3];
for(int i=0; i<val.length; i++) {
val[i] = (int)(Math.random()*3); // 0~2 사이의 랜덤수 발생
System.out.print(val[i] + "\t");
}
System.out.println();
if(val[0]==val[1] && val[1]==val[2]) {
System.out.println(p[n].getName() + "님이 승리하였습니다.");
break;
}
n++; // 다음 선수 인덱스, p[0] -> p[1]
n = n%2; // 인덱스가 2가 되면 다시 0으로 돌리기 위해. p[1] -> p[1], p[2] -> p[0]
}
scanner.close();
}
}
|
cs |
'Back-End > Java' 카테고리의 다른 글
[Spring] Legacy Project 구조와 설정하기 (0) | 2021.06.04 |
---|---|
[Spring] Legacy Project 특징 및 설정하는 방법 (1) | 2021.06.02 |
명품 JAVA 에센셜 3장 실습 문제풀이 (0) | 2021.05.23 |
명품 JAVA 에센셜 2장 실습 문제풀이 (1) | 2021.05.12 |
JAVA 이클립스Eclips 알아두면 유용한 단축키 (0) | 2021.05.11 |