为什么Java中不能有静态的构造函数?
黄舟
黄舟 2017-04-17 16:28:37
0
2
445

我的理解是这样的:Java中,构造函数是用来实例化对象的,实例化时必定有确定的引用变量。但在调用静态函数时编译器还是通过解析原来的类来调用静态方法,不通过对象。因此构造函数不能是静态的。
这种理解正确吗?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답(2)
巴扎黑

클래스 메소드(정적 메소드)인지 인스턴스 메소드인지 중요한 것은 이 메소드가 클래스의 특정 인스턴스의 존재를 요구하는지, 이 메소드가 특정 인스턴스에 대해 작동해야 하는지 여부입니다. 수업의. 직설적으로 말하면 this의 존재가 필요한가 하는 것이다.

구성 방법은 클래스의 인스턴스가 생성된 후 새로운 특정 인스턴스 객체를 초기화하는 것입니다. 물론 클래스 메서드가 아닌 인스턴스 메서드와 유사합니다.

迷茫

생성자의 의미는 무엇인가요?
주 함수는 실제로 일부 인스턴스 속성을 초기화하는 것입니다. 이제 생성자가 정적으로 설계되었으므로 정적 메서드는 필연적으로 인스턴스 속성에 액세스합니다.
두 가지 해결 방법이 있습니다.
1. 내부 클래스가 외부 클래스에 대한 암시적 참조를 갖는 것처럼 JVM은 정적 생성자의 객체에 암시적으로 참조를 추가한 다음 이 참조를 사용할 수 있습니다. 객체의 속성은 코드에서 볼 수 없습니다. 이는 Java 언어 사양과 충돌합니다. 정적 메서드는 인스턴스 필드에 액세스할 수 없으므로 권장되지 않습니다.
2. Python과 같은 솔루션을 사용하세요. 생성자의 첫 번째 매개변수는 기본적으로 self와 같은 객체에 대한 참조이며, 그런 다음 self를 통해 객체의 인스턴스 필드에 액세스하지만 이 코드는 Java와 일치합니다. 스타일. ? 고소해서 죽겠습니다

그렇다면 인스턴스 메소드를 직접 사용하는 것은 어떨까요?

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿