: 한 요소에 2개 이상의 데이터로 표현되는 정보가 들어 있다면 무조건 객체로 만들어야 한다.
: 그래야 데이터 유실이 없다.
: 사람의 정보인 이름, 나이를 각각 배열로 넣고 관리하면 수정할 때 같이 수정해주어야 하는데 번거롭다
: 수정하다가 사람이 실수로 같이 못지우는 실수가 있으면 데이터 관리가 어려워진다.
import java.util.ArrayList;
public class ObjectArrayList{
public static void main(String[] args){
Person p1 = new Person();
// Person 클래스의 객체를 생성하기 위해 새로운
// Person 객체를 만들어서 변수 p1에 담는다.
p1.age = 24;
p1.name = "홍길동";
// p1과 연결된 Person객체의 변수에 값을 넣는다.
Person p2 = new Person();
// Person 클래스의 객체를 생성하기 위해 새로운
// Person 객체를 만들어서 변수 p2에 담는다.
p2.age = 30;
p2.name = "이순신";
// p2와 연결된 Person객체의 변수에 값을 넣는다.
Person p3 = new Person();
// Person 클래스의 객체를 생성하기 위해 새로운
// Person 객체를 만들어서 변수 p3에 담는다.
p3.age = 41;
p3.name = "을지문덕";
// p3와 연결된 Person객체의 변수에 값을 넣는다.
Person p4 = new Person();
// Person 클래스의 객체를 생성하기 위해 새로운
// Person 객체를 만들어서 변수 p4에 담는다.
p4.age = 32;
p4.name = "황진이";
// p4와 연결된 Person객체의 변수에 값을 넣는다.
ArrayList<Person> people = new ArrayList<>();
// Person 클래스에 관련된 새로운 ArrayList를 만들어서
// people이라는 변수에 ArrayList의 참조값을 넣는다.
people.add(p1);
// ArrayList의 0번째 방에 p1 Person 리모컨 넣기
people.add(p2);
// ArrayList의 1번째 방에 p1 Person 리모컨 넣기
people.add(p3);
// ArrayList의 2번째 방에 p1 Person 리모컨 넣기
people.add(p4);
// ArrayList의 3번째 방에 p1 Person 리모컨 넣기
for(int i = 0; i < people.size(); i++){
Person p = people.get(i);
p.introduce;
}
// 1. 숫자를 담을 수 있는 i의 변수에 0을 담고,
// people에서 조절하는 ArrayList 리모컨,
// ArrayList 길이 (4) 만큼 i에서 1씩 증가한다.
// 2. Person 클래스에, people에서 조절하는 ArrayList 리모컨으로,
// ArrayList의 i번째 방 리모컨(=i 방에 들어가있는 p1의 리모컨)을
// 변수 p에 담는다. > 변수 p는 객체 변수와 메서드 상세에 닿을 수 있음
// 3. 변수 p를 통해 p1에 있는 객체 리모컨으로 introduce() 매서드를
// 실행시킨다.
// 결과 : 배열 안에 있는 객체,
// 그 객체 안에 있는 introduce() 매서드를 실행시킨다.
}
}
public class Person{
// 사람 관련된 정보와 실행파일을 담은 Person 클래스
String name; // Person관련 이름 변수 선언
int age; // person관련 나이 변수 선언
public void introduce(){
// Persom 클래스의 소개 실행파일
System.out.println("안녕하세요 "+age+"살 "+name+"입니다.");
}
// 실행 할 곳에 sout()안에 있는 변수를 받아 문구와 변수를 출력한다.
}

- 배열과 객체는 있는 그대로 넣는 것이 아니라 조정할 수 있는 참조값(리모컨)만 들어간다.
그래서 배열에 있는 객체를 활용 할 때는
먼저 한 변수에 배열의 방 리모컨 (= 들어가 있는 객체 하나) 을 넣는다.
배열의 방 하나의 리모컨이자 들어가 있는 하나의 객체의 리모컨을 변수로 조종하여 객체의 변수나, 메서드를 활용한다.