• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

22.08.06 16:45 작성 조회수 195

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

@k1m2njun님의 프로필

@k1m2njun

2023.03.12

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

public Student() {}

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

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

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

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