我的理解是这样的:Java中,构造函数是用来实例化对象的,实例化时必定有确定的引用变量。但在调用静态函数时编译器还是通过解析原来的类来调用静态方法,不通过对象。因此构造函数不能是静态的。
这种理解正确吗?
巴扎黑2017-04-17 16:30:37
クラス メソッド (静的メソッド) であってもインスタンス メソッドであっても、重要なのは、このメソッドがクラスの特定のインスタンスの存在を必要とするかどうか、そしてこのメソッドが特定のインスタンスに対して動作する必要があるかどうかだと思います。クラスの。端的に言えば、〈🎜〉の存在が必要かどうかです。 this
迷茫2017-04-17 16:30:37
コンストラクターの重要性は何ですか?
主な機能は、実際にはいくつかのインスタンス属性を初期化することです。コンストラクターは静的になるように設計されているため、静的メソッドは必然的にインスタンス属性にアクセスします。
解決策は 2 つあります。
1. 内部クラスが外部クラスへの暗黙的な参照を持つのと同じように、JVM は静的コンストラクターのオブジェクトへの参照を暗黙的に追加し、この参照を使用します。 インスタンスへのアクセスオブジェクトのプロパティはコードからは見えません。これは Java 言語の仕様と矛盾します。静的メソッドはインスタンス フィールドにアクセスできないため、お勧めできません。
2. Python のようなソリューションを使用します。コンストラクターの最初のパラメーターは、デフォルトでは self などのオブジェクトへの参照であり、self を通じてオブジェクトのインスタンス フィールドにアクセスしますが、このコードは Java に準拠しています。スタイル?死ぬほど文句言われます
とても便利なので、インスタンス メソッドを直接使用してみてはいかがでしょうか?