이름과 나이를 가진 한 사람 한 사람 만들어서 꺼내쓰기
-> 디폴트 생성자 (파라미터 없는것)
숫자를 저장할 수 있는 파라미터 필요
-> 배열의 길이가 되었으면 좋겠음
-> 저장할 수 있는 건 person이고 person배열이 있으면 좋겠음
person의 배열 타입
-> 타입 이름 + 대괄호[]
-> 선언만 한것 생성 전임
-> 길이를 알지 못해서 선언만 하고 생성은 못하는 이유
-> 선언과 생성을 분리 시켜놓음
-> family배열의 요소 3개가 만들어짐
-> 개체 필드하고 같은특성
-> 만들어지기만 하면 : 저장되는게 참조타입(Person)은 모두 'NULL'값을 기본으로 가짐
-> 안에 Person은 들어있지 않음
-> 가족수는 바뀌었지만(3명 -> 4명)
SetFamilyCount호출해서 4로 바꾸려고해서 배열의 길이도 늘려야 하는데 -> 배열의 길이가 늘어나는건 불가능하다.
3개짜리 배열 , 4개짜리 배열 따로 만들고
주소 갈아치기하면 됨
-> 새로운 배열 생김
-> family 첫번째 요소부터 familyCount 길이 만큼
-> 임시 배열의 주소값을 family배열이 가져가서 길이를 늘림
-> 가족 배열에 null값이 3개들어있음
-> name.length , age.length상관없음
->family배열 꺼내서(getter,setter해놨으니까) -> famliy.getFamily()
(Person 배열타입의 family)
-> familyCOUNT하고
-> familㅛcount = family하고 같음 : familycount를 길이로 쓰고 있으니까
객체 f로 바꾸기
f객체의 getFamily 데이터들은 배열 요소에 집어넣어야 하니까 인덱스 [i] 붙여줌
-> 각 요소에 아무 내용도 없는 Person 채우기
-> 이름하고 나이는 여전히 없음
-> 값은 채워져있으니 getter만 가져오면 됨
-> i번째로 하면 0번째라고 시작해서 보기가 좋지 않음 -> (i + 1)
-> 최종프로젝트에 사용되지 않음, 약간 위험할 수 있음
(아무리 잘짜고 이미 짜여져있는 자바 클래스를 이길 수 없음)
-> person을 3개 만드는 NEW person 의 상태
-> 가족수저장, 가족배열도 만들어짐
->내용을 채워주는 역할을 안해서 setter필요
-> String, int 써서 setter가 필요 없음
-> setter를 호출할 필요가 없음(간결해짐)
-> 배열에 저장된 요소 한개
-> person임
-> getName()을 추가로 붙임(
-> 이름은 마음대로 잡고(family) Person[] 타입 잡기
-> 디폴트생성자로 만들고
family[i] 불러서 이름 집어넣기(setName)
-> 향상 for문
-> 몇번째 가족은 안하는것
-> 몇번쨰 가족인지 알고싶으면 일반 for문쓰기
-> length 파란색 변수 : 필드값(변수) 참조하는 건 상관없음
-> 나중에)
-> size라는 메소드로 제공하면 (family.size가 3번 호출됨 -> 애초에 이렇게 짜면 안됨)
-- 향상 for문 쓸 때 조심해야 하는 부분
->
-> 2번째 데이터꺼낼때 NULL값을 꺼냄 아무것도 없는데 Null.getName 되는것
여기서 문제 발생
-> 객체는 항상 null값 조심해야 함!
-> 향상 for문 쓸때 if(p! = null) 쓰기!
-> addFamily 메소드 호출 가족 생성, deletFamliy() 호적 빼기
-> 클래스 이름에도 array들어감 (나중에 수정하는 방법도 배움 -> 간단한 프로그램형태로 배울 수 있음)