※우선 이 글은 자바가 설치되어 있다는 가정하에 이클립스를 기반으로 작성합니다.
어제 복습을 하려고 모니터 앞에 앉았지만 진짜 어제부터 뭔가 가슴이랑 머리가 답답해서 집중이 하나도 안되네요. 어디에다가 스트레스를 풀어야 할 것 같은데 게임이나 그런 걸로도 안 풀리고 잠도 안 오고 몸에 화가 계속 쌓이는 것 같습니다. 속에 응어리진 것이 점점 커지는 것 같아요. 그 때문인지 요즘은 숨 쉬는 것도 뭔가 힘들어서 코 말고 입으로 헥헥대면서 들 이내 쉬고 있네요. 그래도 이제 막 시작 중인 공부인데 멈추면 안 된다는 생각에 제가 평소에 존경하고 대단하다 생각해서 자주 보는 분 블로그에 있는 예제 2개를 풀어봤어요. 지금까지 배운 것들을 사용하니까 여러분도 같이 풀어보셨으면 좋겠네요.
+) 이번 포스팅은 바로 코드보시는게 아니라 주어진 조건만 보고 한번 풀어보시고 모르겠으면 조금씩 보면서 풀어보세요. 바로 보는 것은 금지입니다.
1번 )
1. Main 클래스와 Student 클래스로 구성됩니다.
2. 학생 몇 명의 정보를 입력받을 것인지 사용자로부터 입력받고 그 크기만큼 배열크기를 설정합니다.
3. 학생의 정보는 이름, 주소, 전화번호, 이메일로 구성됩니다.
4. 생성된 객체를 배열에 저장합니다. -> ex) Student [] student = new Student [n];
코드
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
|
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("몇 명의 학생의 정보를 입력받을까요? : ");
int n = s.nextInt();
Student students = new Student("", "", "", "");
Student[] student = new Student[n];
for(int i = 0; i < student.length; i++) {
students.getName();
String name = s.next();
students.getAddress();
String address = s.next();
students.getPhone();
String phone = s.next();
students.getEmail();
String email = s.next();
student[i] = new Student(name, address, phone, email);
} //생성된 객체를 배열에 저장
for(int i = 0; i < student.length; i++) {
student[i].print();
}//배열에 저장된 객체들을 출력
}
}
|
cs |
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
|
public class Student {
private String name;
private String address;
private String phone;
private String email;
//변수 선언하고 getter, setter 생성
public String getName() {
System.out.print("이름 : "); //Main에서 get들을 호출하는 이유
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
System.out.print("주소 : ");
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhone() {
System.out.print("전화번호 : ");
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
System.out.print("이메일 : ");
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Student(String name, String address, String phone, String email) {
this.name = name;
this.address = address;
this.phone = phone;
this.email = email;
} //만약 주소, 휴대전화, 이메일 중 없는 것이 있는 학생이 있지만 값을 표시하기 싫다면 그 매개변수를
//삭제한 생성자를 만들어서 작성하면 됩니다. 필자는 설명으로 충분하다 생각하여 작성하지 않았습니다.
public void print() {
System.out.println(name + ", " + address + ", " + phone + ", " + email);
} //출력해주는 메소드입니다.
}
|
cs |
위의 출력 값과 생성자 설명을 보면 전화번호, 이메일, 주소가 없는 학생도 존재하므로 생성자를 그에 맞게 불필요한 것을 제거하고 추가로 작성해 주셔도 됩니다. 그렇게 되면 자신에게 맞는 생성자로 들어가 출력되므로 굳이 x와 같은 값을 의무적으로 작성하지 않아도 null값이 작성됩니다.
2번)
1. Main 클래스와 Student 클래스로 구성됩니다.
2. 이름, 전화번호, 생년월일을 입력하고 출력하는 코드입니다.
3. 입력에 따라 다른 값이 출력되는 메뉴 형식입니다. -> 1. 정보 입력 2. 정보 조회 3. 종료
4. 생성된 객체를 배열에 저장합니다. (배열의 크기는 10으로 정해놓겠습니다.)
코드
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
|
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
Student2 student = new Student2("", "", "");
String name;
String phone;
String birth;
Student2[] students = new Student2[10]; //임의로 설정한 배열크기
int count = 0;
for(int i = 0; i < 10; i++) {
System.out.println("메뉴");
System.out.println("1. 정보 입력");
System.out.println("2. 정보 조회");
System.out.println("3. 종료");
System.out.print("번호를 입력하세요. : ");
int n = s.nextInt();
if(n == 1) {
student.getName();
name = s.next();
student.getPhone();
phone = s.next();
student.getBirth();
birth = s.next();
for(int j = count; j <= count; j++) {
students[j] = new Student2(name, phone, birth); //생성된 객체를 배열에 저장
}
count++; //카운트를 증가시키는 이유는 증가시키지 않으면 모두 student[0]에 저장되어
} //값이 계속 덮어 씌워지기 때문이다.
else if(n == 2) {
System.out.println("정보 조회");
for(int k = 0; k <= count; k++) {
students[k].print(); //저장된 객체를 출력
}
}
else if(n == 3) {
System.out.print("프로그램을 종료합니다.");
break;
}
}
}
}
|
cs |
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
|
public class Student2 {
private String name;
private String phone;
private String birth;
public String getName() {
System.out.print("이름 : ");
return name;
}
public void setName() {
this.name = name;
}
public String getPhone() {
System.out.print("전화번호 : ");
return phone;
}
public void setPhone() {
this.phone = phone;
}
public String getBirth() {
System.out.print("생년월일 : ");
return birth;
}
public void setBirth() {
this.birth = birth;
}
public Student2(String name, String phone, String birth) {
this.name = name;
this.phone = phone;
this.birth = birth;
}
public void print() {
System.out.println("이름 : " + name);
System.out.println("전화번호 : " + phone);
System.out.println("생년월일 : " + birth);
}
}
|
cs |
이렇게 입력받은 정보들을 배열에 순차적으로 저장하고 조회하면 순차적으로 출력해주는 프로그램이 완성됩니다. 솔직히 지금 보면 어려운 게 아닌데 컨디션이 최악인 것 같아요. 문제 푸는 시간보다 끙끙거리고 꿍해있던 시간이 훨씬 길었던 것 같아요. 오늘 포스팅도 봐주셔서 감사합니다.
'자바 공부' 카테고리의 다른 글
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 7일차 (ArrayList) (0) | 2021.01.20 |
---|---|
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 6일차 (전화번호부) (0) | 2021.01.19 |
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 4일차 예제 풀이 (0) | 2021.01.16 |
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 4일차 (인터페이스(interface), 다형성(Polymorphism), 객체(Object)클래스) (0) | 2021.01.16 |
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 3일차 예제 풀이 (0) | 2021.01.15 |