package quiz10;
public class User {
private String name;
private int age;
private int rrn;
//기본생성자
public User() {
}
//모든멤버변수를 초기화 생성자
public User(String name, int age, int rrn) {
super();
this.name = name;
this.age = age;
this.rrn = rrn;
}
//getter, setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getRrn() {
return rrn;
}
public void setRrn(int rrn) {
this.rrn = rrn;
}
}
Main
package quiz10;
import java.util.Arrays;
import java.util.Scanner;
public class MainClass {
public static void main(String[] args) {
/* 문제1
* 1. 클래스 User를 생성하세요
* 2. 멤버변수 name: String , rrn : int, int age 를 선언후 은닉 처리합니다 (private 지정)
* 3. User 클래스에는 기본생성자, 모든 멤버변수를 초기화 하는 생성자 2개를 생성하세요.
* 4. main에서 User객체를 생성 후
* (홍길동, 20, 123123 )을 저장 하고 값을 확인하세요.
*/
User us = new User("홍길동",20,123123);
/* 문제2
* 1. 2개의 크기를 갖는 User배열을 선언하세요. (User배열은 User클래스를 저장할 수 있습니다.)
* 2. 두번째 User객체를 생성하세요. ("김길동", 30, rrn값)을 저장.
* 3. User배열에 두 객체를 저장하세요.
* 4. 향상된 포문을 사용해서 *모든변수*를 출력하세요.
* ex) User[] arr = new User[2];
*/
User[] arr = new User[2];//객체-클래스도 타입. 배열에 담을 수 있다.
User us2 = new User("김길동", 30, 123456);//힙영역
arr[0]=us;//스택영역, 주소값 -이는 다시 힙 영역과 연결됨.
arr[1]=us2;//주소값
for(User us3 : arr) {//us3는 변수일 뿐. 중요한 건 arr에 있는 us와 us2가 객체니까 "같은 형식"의 객체로 받는다는 것
System.out.println(us3.getName());
System.out.println(us3.getAge());
System.out.println(us3.getRrn());
}
/* 문제 3
* 1. 5개의 크기를 갖는 User배열을 선언하세요.
* 2. 5번회전하는 while 안에서 Scanner객체를 이용하여 name, rrn, age을 입력받으세요
* 3. while문 안에서 User객체를 생성하고, 입력받은 name과 rrn, age을 저장하세요.
* 4. while문 안에서 User객체를 User배열에 저장하세요.
* 5. Arrays.toString(배열명) 을 이용하여 저장되는 값을 확인하세요.
*/
User[] arr5 = new User[5];
int i=0;
while(i<5) {
Scanner scan = new Scanner(System.in);
String name=scan.next();
int age=scan.nextInt();
int rrn=scan.nextInt();
User use = new User(name,age,rrn);
arr5[i]=use;
i++;
}
System.out.println(Arrays.toString(arr5));
}
}
User[] arr = new User[2];//객체-클래스도 타입. 배열에 담을 수 있다.
User us2 = new User("김길동", 30, 123456);//힙영역
arr[0]=us;//스택영역, 주소값 -이는 다시 힙 영역과 연결됨.
arr[1]=us2;//주소값
객체도 배열에 담긴다! 중요한 건 arr에 있는 us와 us2가 객체니까 "같은 형식"의 객체로 받는다는 것.
홍길동
20
123123
김길동
30
123456
김
24
12315
이
45
2123487
박
12
45649
최
34
2137485
조
21
45677
[quiz10.User@7a0ac6e3, quiz10.User@71be98f5, quiz10.User@6fadae5d, quiz10.User@17f6480, quiz10.User@2d6e8792]
마지막에 출력된 구문은 객체가 생성된 주소. 요지는 반복문에서 객체를 생성해서 배열에 담았을 때 객체가 생성되었음을 파악하는 것.
'JAVA' 카테고리의 다른 글
221012 클래스를 멤버변수로 받기, 클래스를 받는 생성자 만들기 (0) | 2022.10.12 |
---|---|
221011 replaceAll 문자열 자르기 (0) | 2022.10.11 |
221011 생성자와 getter setter 단축키 (0) | 2022.10.11 |
221011 은닉-getter와 setter (0) | 2022.10.11 |
221011 접근제한자 (0) | 2022.10.11 |