728x90
간만에 쓰니까 또 많이 까묵었는데
그래도 확실히 까먹은 양이 많이 줄었다
인덱스 초기화방법으로 할려고하는데 중괄호로 선언초기화까지 같이 할려고 한다던가 ㅋㅋ
객체배열의 경우, 배열이랑 다르게 Arrays.toString() 메소드는 못쓰며 vo class에 만들어둔 toString() 혹은 그에 역할에 준하는 메소드로 값을 출력할 수 있는데 이때 변수명.toString() 써도 에러발생할 것이다. 변수명[index number].toString()으로 당황하지 말고 반드시 인덱스 번호를 지정해주자
/******************************** Object Array practice 5th ***************************************/
// 객체배열
//
// 배열 선언 : Stack 영역에 공간 생성(변수의 선언 : stack에 공간 차지)
// 배열 할당 : heap 영역에 공간 생성
// 배열 초기화 : 인덱스,중괄호,for문
// 배열 삭제 : null
// 배열 값 출력하는 방법 2가지 : for문 + vo클래스 toString메소드
// 배열 선언
Person02[] pArr01;
// 배열 할당
Person02[] pArr02 = new Person02[2];
Person02 pArr03[] = new Person02[2];
// 배열 초기화
// 방법1 : 인덱스
pArr02[0] = new Person02("a",22,'M',171,66);
pArr02[1] = new Person02("b",23,'M',185,69);
// 방법2 : 중괄호
// 선언과 동시에 할당
Person02[] pArr04 = {new Person02("김",25,'M',177,66),
new Person02("이",53,'M',177,66),
new Person02("박",32,'M',188,86)
};
// 방법3 : for문
for(int i=0; i < pArr03.length; i++) {
pArr03[i] = new Person02("for",20+i,'M',170+i,70+i);
System.out.println(pArr03[i]); // chap06_objectArray.model.vo.Person02@42a57993, @75b84c92
// System.out.println(Arrays.toString(pArr03[i])); // Arrays.toString()은 객체배열에 사용불가
System.out.println(pArr03[i].personInfo()); // for, 20, M, 170.0, 70.0 // for, 21, M, 171.0, 71.0
} // 객체배열 값 추출은 vo class에서 toString() 역할하는 메소드 사용해야함
// 배열 삭제
// 배열 출력
pArr03 = null;
System.out.println(pArr03); // null
// System.out.println(pArr02.personInfo()); // 변수 전체를 찍으면 에러발생
System.out.println(pArr02[0].personInfo()); // 인덱스 번호 지정해서 찍어야함
728x90
반응형
'small steps > 1일 1코딩 - 코딩을 내 몸처럼' 카테고리의 다른 글
[1일1코딩][Web] boardDetailView 4th (0) | 2022.08.20 |
---|---|
[1일1코딩][Java] 컬렉션 List 5th - equals(),toString() 추가제거 비교 (0) | 2022.08.19 |
[1일1코딩][Java] 컬렉션 List 4th - equals(),toString() 추가제거 비교 (0) | 2022.08.16 |
[1일1코딩][Java] 컬렉션 List 3rd - 반환타입을 if문과 연관지어 코딩 (0) | 2022.08.15 |
[1일1코딩][Java] 컬렉션 List 2nd (0) | 2022.08.14 |