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

ll0913님의 프로필 이미지

작성한 질문수

Do it! 자바 프로그래밍 입문 with 은종쌤

클래스와 객체1 (4)

24분 57초에 질문 있습니다!!

작성

·

285

0

Student 클래스에 보시면

   public Student() {
            korea = new Subject();
            math = new Subject();
            
        } 

public Student2 (int id, String name) {
            studentID = id;
            studentName = name;
            
            korea = new Subject("국어");
            math = new Subject("수학");
        }

 

이렇게 있는데 저기 빨간 글씨인 첫번째 퍼블릭 스튜던트는 없어도 되는거 아닌가요? 두번째 퍼블릭 스튜던트가 있으면 첫번째건 없어도 되는거죠? 또 첫번째가 있다면 두번째가 없어도 되는 거 맞나요? 둘다 있을 필요는 없지 않나요?

        

답변 1

0

매개변수를 받지 않은 생성자를 '디폴트 생성자'라고 하고,
따로 생성자를 정의해두지 않으면

public Student() {}

의 형태로 자동으로 코드에 추가됩니다.(실제로는 안보이지만)

반면 'Student2'처럼 매개변수를 받도록 생성자를 추가하는 경우
디폴트 생성자는 따로 자동으로 추가되지 않습니다.

해서, 국어와 수학 과목의 객체만 생성하는
디폴트 생성자를 따로 정의한 것입니다.

다만 이 수업에서 'StudentTest' 클래스에서는
해당 기본 생성자를 사용하지는 않았습니다.

ll0913님의 프로필 이미지

작성한 질문수

질문하기