인프런 커뮤니티 질문&답변

정현재님의 프로필 이미지
정현재

작성한 질문수

자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!!

상속 특징

19-2 장면 질문입니다.

작성

·

251

1

안녕하십니까 강의 보면서 공부하고 있는 대학생입니다. 그19-2장면에서 맨 밑에 왼 쪽에 나와 있는 코딩에서 배열을 설정하는데

ParentClass childs[] = new ParentClass[2]라고 되있는데 원래 배열 만들 때 예를 들어서

int[] arr = new int[3]이런식으로 자료형 옆에 []를 붙여서 배열을 만들었었는데 왜 여기서는 ParentClass가 아니고 childs 옆에 붙는지 여쭤보고 싶습니다. 그리고

childs[0] = new FirstClass();라는게 childs[0] 안에 들어있는게 FirstClass라는 새로 만든 객체의 주소가 들어있는 것이고 저걸로 FirstClass,SecondClass 생성자를 호출한 것인지 여쭤보고 싶고 밑에 for문에서 중간에 childs.length라고 되있는데 왜 갑자기 길이를 넣었고 어째서 i가 1일 때 멈추는지 여쭤보고 싶습니다. 사실 전체적으로 잘 모르겠어서 질문이 좀 많습니다 죄송합니다..

답변 2

0

배열 선언 방법은 타입 or 변수이름 뒤에 대괄호[] 를 붙여서 선언하는 방법이 있습니다.

이 코드에서는 변수이름 뒤에 붙이는 방법을 사용했네요.

childs[0] = new FirstChildClass(); 를 통해서 객체생성을 했고, 객체생성을 하면 생성자호출이 자동으로 됩니다. 여기에서는 자식이 부모로부터 상속받고 있기 때문에 자식객체를 생성하면 제일 처음 부모의 생성자를 호출하고 이후에 자식의 생성자 호출됩니다.

childs.length는 childs배열의 길이를 구하는 메서드이고, childs를 처음 선언하고 객체만들때 배열의 크기로 2로 지정해주었습니다.(ParentClass childs[] = new ParentClass[2])

그래서 길이가 2가 되겠네요. 조건문에 조건이 i=0; i<2이니까 0일때 한번, 1일때 한번 이렇게 되겠네요.

0

배열 선언 방법은 타입 or 변수이름 뒤에 대괄호[] 를 붙여서 선언하는 방법이 있습니다.

이 코드에서는 변수이름 뒤에 붙이는 방법을 사용했네요.

childs[0] = new FirstChildClass(); 를 통해서 객체생성을 했고, 객체생성을 하면 생성자호출이 자동으로 됩니다. 여기에서는 자식이 부모로부터 상속받고 있기 때문에 자식객체를 생성하면 제일 처음 부모의 생성자를 호출하고 이후에 자식의 생성자 호출됩니다.

childs.length는 childs배열의 길이를 구하는 메서드이고, childs를 처음 선언하고 객체만들때 배열의 크기로 2로 지정해주었습니다.(ParentClass childs[] = new ParentClass[2])

그래서 길이가 2가 되겠네요. 조건문에 조건이 i=0; i<2이니까 0일때 한번, 1일때 한번 이렇게 되겠네요.

정현재님의 프로필 이미지
정현재

작성한 질문수

질문하기