참고:
클래스에 개인 생성자가 있으면 컴파일러는 인수가 없는 기본 생성자를 제공하지 않도록 지시합니다.
개인 생성자는 인스턴스화할 수 없습니다.
this()는 생성자에서 주석 처리되지 않은 첫 번째 문이어야 합니다. 댓글은 상관없습니다. 어디든 허용됩니다.
Java의 생성자 오버로드는 인스턴스 클래스에서 둘 이상의 생성자를 사용하는 것을 의미합니다. 그러나 오버로드된 각 생성자는 서로 다른 서명을 가져야 합니다. 컴파일이 성공하려면 각 생성자에 서로 다른 인수 목록이 포함되어야 합니다.
메서드 시그니처가 서로 다른 한 동일한 클래스에 여러 생성자를 가질 수 있습니다. 메소드를 오버로드할 때 메소드 이름과 매개변수 목록이 일치해야 합니다. 생성자의 경우 이름은 클래스 이름과 동일해야 하므로 항상 동일합니다. 오버로드되기 위해서는 생성자에 다른 매개변수가 있어야 합니다.
위에서 생성자 중 하나는 단일 int 매개변수를 사용합니다. 다른 하나는 int와 String을 사용합니다. 이러한 매개변수 목록은 서로 다르기 때문에 생성자가 성공적으로 오버로드됩니다.
하지만 여기에는 문제가 있습니다. 약간의 중복이 있습니다. 우리가 정말로 원하는 것은 첫 번째 생성자가
를 사용하여 두 번째 생성자를 호출하는 것입니다.
두 개의 매개변수.
생성자 체이닝
오버로드된 생성자가 서로 호출하는 경우입니다. 한 가지 일반적인 기술은 각각
생성자는 모든 작업을 수행하는 생성자에 도달할 때까지 하나의 매개변수를 추가합니다.
결과: 15 16 6
main() 메서드는 하나의 매개변수로 생성자를 호출합니다. 해당 생성자는 두 번째 하드 코딩된 값을 추가하고 두 개의
을 사용하여 생성자를 호출합니다.
매개변수. 해당 생성자는 하드 코딩된 값을 하나 더 추가하고 생성자를 호출합니다
세 개의 매개변수를 사용합니다. 3개 매개변수 생성자는 인스턴스 변수를 할당합니다.
생성자 체이닝은 생성자를 호출할 때 사용됩니다.
다른 생성자에서.
오버로딩과 체인 연결의 장점
생성자 오버로딩과 체이닝을 함께 사용하면 유연성, 효율성 및 유지 관리 가능한 코드를 제공할 수 있습니다. 오버로드를 사용하면 다양한 초기화 시나리오를 지원할 수 있으며, 연결을 사용하면 공유 논리를 중앙 집중화하고 중복성을 줄일 수 있습니다.
위 내용은 생성자 오버로드 및 생성자 연결.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!