기본 생성자는 무엇입니까?
기본 생성자는 객체 지향 프로그래밍에서 객체를 생성하고 초기화하는 특수한 방법입니다. 여러 종류의 생성자가 있지만 기본 생성자는 객체를 만들고 초기화하는 것 외에도 두 가지 특정 기준 중 하나를 충족해야합니다. 매개 변수가 없어야하며,이 경우 널 (null) 생성자라고도 할 수 있거나 설정할 수있는 모든 매개 변수에 기본값을 지정해야합니다. 프로그래머가 생성자를 전혀 지정하지 않으면 일부 컴퓨터 언어는 암시 적으로 기본 nullary 생성자를 지정합니다. 생성자 유형이 작성되면 기본 nullary 생성자가 더 이상 지정되지 않으며 필요한 경우 명시 적으로 작성해야합니다.
객체 지향 상속을 허용하는 컴퓨터 언어의 경우 서브 클래스의 기본 생성자는 수퍼 클래스의 생성자와 정확하게 연결되어야합니다. 서브 클래스 생성자는 서브 클래스에 특정한 작업을 수행하기 전에 항상 수퍼 클래스 생성자를 호출해야합니다. Java®와 같은 일부 언어에서는 서브 클래스 생성자가 내재적으로 수퍼 클래스 기본 널 생성자를 호출합니다. 수퍼 클래스 기본 nullary 생성자가 없으면 하위 클래스 객체를 제대로 만들 수 없습니다. 이 경우 서브 클래스는 여전히 기본 생성자 유형을 가질 수 있지만 사용 가능한 수퍼 클래스 생성자는 서브 클래스에 고유 한 기본값을 전달하여 올바르게 호출해야합니다.
기본 nullary 생성자를 암시 적으로 생성하면 프로그래머가 지정하고 문서화해야하는 메서드 수를 줄일 수 있다는 장점이 있지만 코드 유지 관리 및 이해를 어렵게 만드는 단점도 있습니다. 일부 프로그래머는 기본 생성자를 생략하는 것이 좋지 않은 것으로 간주하지만 다른 프로그래머는 그렇지 않습니다. 개별 프로그래머가 이러한 프로그래밍 방법 중 하나를 준수하는 것을 막을 수있는 것은 없으므로 코드에 기본 nullary 생성자를 포함시키는 것은 프로그래머가 스타일을 선택하는 것입니다. 생성자가 포함되면 대부분의 사고 학교는 다른 생성 자나 방법과 마찬가지로 주석을 달고 문서화해야한다고 지시합니다.
모든 기본 생성자는 액세스 수정자를 첨부하여 생성자를 공용, 보호 또는 개인으로 만들 수 있습니다. 이를 통해 생성자에 지정된 클래스를 기반으로 특정 기능을 제공합니다. 공용 기본 생성자를 사용하여 다른 클래스에서 새 객체를 만들 수 있지만 보호 된 생성자는 자체 클래스와 하위 클래스에서만 호출 할 수 있습니다. 보호 된 기본 생성자는 종종 상속 계층 구조에서 볼 수 있습니다. 개인 생성자는 일반적으로 프로그래머가 아닌 일부 유형의 팩토리 메소드를 호출 할 수있는 자체 포함 클래스에서만 사용됩니다.