答えて
class A
のコンストラクタは、class A
のオブジェクトを構成します。
オブジェクトの構築は一度しか行われず、その後はメソッド(関数)を使用してオブジェクトの状態を変更することができます。
プログラマーが自分のクラスにコンストラクターを書き込んでいない場合、Javaコンパイラーはクラス(public constructor without any parameters)
のコンストラクターを単独で配置します。
コンストラクタがプログラマによって提供された場合、コンパイラはデフォルトのコンストラクタを作成しません。プログラマは、明示的なコンストラクタのシグネチャに従って、自分のクラスのオブジェクトの作成を知り、それを望んでいると仮定します。
コンストラクタの呼び出しはチェーンされています。クラス関係の下に存在するとします。
Child.java extends Parent.java and Parent.java extends GrandParent.java
。 Child child = new Child();
が行われている場合
は今、1つのオブジェクトのみが作成され、それがChild.java
のですが、オブジェクトがParent
、その後Child
の特徴と、その後GrandParent
最初のすべての機能を持っています。
したがって、GrandParent.java
の最初のコンストラクタが呼び出され、Parent.java
が呼び出され、最後にChild.java
のコンストラクタが呼び出されます。
コンストラクタは特殊で、他のメソッドとは異なります。
コンストラクタの意図は、オブジェクトを作成することですので、あなたがnew
演算子を使用するたびに、コンストラクタが呼び出され、新しいオブジェクトが作成されます。コンストラクタを直接呼び出すことはできません。あなたはそれを呼び出すために新しい演算子が必要です。 getInstance()
のようないくつかのクラス定義メソッドがあっても、それはまだnew
演算子を使ってオブジェクトを構築し、作成したオブジェクトを返します。
* PSコンストラクタを呼び出さずに(シリアル化のような)オブジェクトを作成する方法がありますが、ここでの議論の文脈から外れています。
私はメソッドのようなコンストラクタを使いたいと思っていて、コンストラクタを何度も再利用する理由があります。 – Rajesh
私は自分の答えを編集しました。なぜコンストラクターがその言語に含まれているのかを理解してください。コンストラクタを(newを使用して)複数回呼び出すと、コンストラクタを呼び出したときと同じくらい多くの異なる新しいオブジェクトを作成します。 –
@Rajeshは、他の人も私も含めて、ここに投稿してコンストラクタのコンセプトやインテントを手に入れることができました。私が投稿したすべてのコメントと答えを読んだり、コンストラクタとmerhodsの意図が何であるかという概念を理解したりすることをお勧めします。あなたの問題を解決するための適切なツールを適用する(上記のように問題をXY問題にしない) –
コンストラクタは、オブジェクトの作成時に一度だけ呼び出されます。
達成したいことについて具体的にお考えですか?
しかし、あなたは次の2つのうちのいずれかを試すことができると思います。
'b' の新しいオブジェクトを作成するためにコンストラクタを呼び出すと、オブジェクトに割り当て:
void setI(int i){
this.i = i;
}
b.setI(1);
int x = 10;
while(x > 0)
{
a b = new a(x);
}
- 1. コンストラクターが2回呼び出される
- 2. コンストラクターが他のコンストラクターを呼び出す
- 3. 関数を呼び出す複数回
- 4. mallocを複数回呼び出す
- 5. angular2ルートガードを複数回呼び出す
- 6. deleteRowsAtIndexPathsを複数回呼び出す
- 7. Gradle buildConfigを複数回呼び出す
- 8. BeforeShowDayを複数回呼び出す
- 9. google.script.run.withSuccessHandlerを複数回呼び出す
- 10. ReactDOM.renderを複数回呼び出す
- 11. jQuery UIコンストラクターを呼び出す
- 12. コンストラクターでメソッドを呼び出す
- 13. コンストラクターが2回呼び出されました。リアクションコンポーネント
- 14. ngOnInitとコンストラクターが2回呼び出される
- 15. メソッドの呼び出しが複数回
- 16. 複数のCTEを同じクエリで複数回呼び出す
- 17. 角2関数呼び出し* ng複数回呼び出すため
- 18. ISerializationコンストラクターが呼び出されない
- 19. クリックビュー内でメソッドを呼び出す複数回呼び出される
- 20. Reactjs AJAX呼び出しを複数回呼び出す(1回のクリックで1回だけ!)
- 21. 角度4 Subscribeメソッド呼び出しを複数回呼び出し
- 22. js関数をワンクリックで複数回呼び出す
- 23. タイマ(Elapsed関数を複数回呼び出す)
- 24. JQuery setTimeoutは常に関数を複数回呼び出す
- 25. locationManager.requestWhenInUseAuthorization関数を複数回呼び出す方法は? Cordova
- 26. djangoでsetUp関数を複数回呼び出すTestCase
- 27. データステップ内でマクロ変数を複数回呼び出すSAS
- 28. javascript clickイベントのaddEventListener関数を複数回呼び出す
- 29. Jquery関数が複数回呼び出す
- 30. Node.jsで関数が複数回呼び出されます
あなたはどのようなものです:setterメソッドを使用して
達成しようとしている?クラスaの複数のインスタンスや変数 'i'の値を複数回出力することはありますか? – javaPhobic
これは明らかに[XY問題](http://xyproblem.info)です。達成しようとしていることと、コンストラクターを複数回呼び出すことが有用であると思われる理由を教えてください。 –
'while(x> 0) { b = new a(x--); } ' –