>Java >java지도 시간 >Java의 재귀 생성자 호출

Java의 재귀 생성자 호출

WBOY
WBOY앞으로
2023-08-27 15:41:071469검색

Java의 재귀 생성자 호출

재귀 생성자 호출은 생성자가 자신을 호출할 때 발생하는 컴파일 시간 오류입니다. 이는 메소드가 필요한 만큼 자신을 호출하는 재귀와 유사합니다. 자신을 호출하는 메서드를 재귀 메서드라고 하며, 자신을 호출하는 생성자를 재귀 생성자라고 합니다.

이 기사에서는 몇 가지 예를 통해 Java의 재귀 생성자 호출 오류에 대해 알아봅니다.

재귀 생성자 호출

생성자

메서드와 매우 유사하지만 차이점은 메서드는 객체의 동작을 정의하는 반면 생성자는 이러한 객체를 초기화하는 데 사용된다는 것입니다. 메소드에 원하는 이름을 지정할 수 있지만 생성자는 클래스 이름과 동일해야 합니다. 또한 메서드는 값을 반환할 수 있지만 생성자는 반환 유형을 가질 수 없기 때문에 값을 반환하지 않습니다.

사용자가 생성자를 생성하지 않으면 Java 컴파일러가 자동으로 생성자를 생성합니다(우리는 이를 기본 생성자라고 부릅니다).

예 1

으아아아

출력

으아아아

생성자와 메서드의 유사성에도 불구하고 Java는 재귀 생성자를 허용하지 않습니다. 이것은 나쁜 프로그래밍 습관입니다.

예 2

다음 예에서는 재귀 생성자 호출 오류를 보여줍니다.

여기서 클래스를 생성하고 해당 생성자와 두 개의 매개변수를 정의하겠습니다. 그런 다음 본문 내부에서 동일한 생성자를 호출합니다.

으아아아

출력

으아아아

예 3

의 중국어 번역은 다음과 같습니다.

예 3

다음 예에서는 Java가 생성자 내부에 객체 생성을 허용하는지 확인하기 위해 생성자 내부에 객체를 정의해 보겠습니다.

으아아아

출력

으아아아

생성자 내부에 객체를 생성하면 객체 생성의 무한 루프가 발생하기 때문에 StackOverflowError가 발생합니다.

예 4

의 중국어 번역은 다음과 같습니다.

예 4

다음 예에서는 다른 생성자 내에서 생성자를 호출하는 것이 합법적임을 보여줍니다.

으아아아

출력

으아아아

결론

Java는 생성자의 재귀를 허용하지 않으므로 이러한 프로그래밍 방식은 당연히 피해야 합니다. 이 글에서는 생성자에 대한 논의를 시작으로 재귀 생성자를 설명하려고 합니다. 또한 무한 루프로 인해 발생한 StackOverflowError라는 또 다른 오류를 발견했습니다.

위 내용은 Java의 재귀 생성자 호출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제