>Java >java지도 시간 >Java 생성자: \'void\' 생성자와 \'non-void\' 생성자의 차이점은 무엇입니까?

Java 생성자: \'void\' 생성자와 \'non-void\' 생성자의 차이점은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-27 12:06:14579검색

Java Constructors: What's the Difference Between

Java 생성자 이해: "void" 대 "non-void"

Java에서 생성자는 클래스의 인스턴스. 일반 메서드와 달리 생성자는 반환 유형을 지정하지 않습니다. 대신 클래스 자체와 이름이 동일합니다. 그러나 Java에서는 소위 "void" 생성자를 허용하여 혼동을 허용합니다.

예 1: Non-Void 생성자

다음 코드에서 생성자 class1( )는 반환을 지정하지 않고 선언됩니다. 유형:

public class class1 {
    public static Integer value = 0;
    public class1() {
        da();
    }
    public int da() {
        class1.value = class1.value + 1;
        return 5;
    }
    public static void main(String[] args) {
        class1 h = new class1();
        class1 h2 = new class1();
        System.out.println(class1.value); // Output: 2
    }
}

설명:

  • class1() 생성자는 static 필드 값을 0으로 초기화합니다.
  • 인스턴스가 h인 경우 class1의 h2가 생성되면 생성자가 호출됩니다.
  • da() 메서드 값을 증가시켜 최종 값은 2가 됩니다.

예제 2: Void 생성자

이제 "void"가 있는 이 코드를 생각해 보세요. 생성자:

public class class1 {
    public static Integer value = 0;
    public void class1() {
        da();
    }
    public int da() {
        class1.value = class1.value + 1;
        return 5;
    }
    public static void main(String[] args) {
        class1 h = new class1();
        class1 h2 = new class1();
        System.out.println(class1.value); // Output: 0
    }
}

설명:

  • class1() "void" 생성자는 값 필드를 초기화하거나 메서드를 호출하지 않습니다.
  • 인스턴스 h와 h2가 생성되면 기본 생성자가 호출되며 이는 어떠한 작업도 수행하지 않습니다. 초기화.
  • 결과적으로 값 필드는 초기 값 0으로 유지됩니다.

결론:
Java에서 반환 유형을 선언하는 생성자는 , 비록 그것이 무효이더라도 전혀 생성자가 아닙니다. 그것들은 단지 방법일 뿐입니다. 클래스 인스턴스를 초기화하는 실제 생성자는 반환 유형을 지정하지 않습니다. 생성자가 명시적으로 정의되지 않은 경우 Java는 초기화를 수행하지 않는 기본 생성자를 자동으로 추가합니다. Java에서 올바른 클래스 초기화를 위해서는 이러한 차이점을 이해하는 것이 중요합니다.

위 내용은 Java 생성자: \'void\' 생성자와 \'non-void\' 생성자의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.