私はPythonコーダーですが、最近はJavaに夢中になりました。私はコードの特定の部分を理解しようとしていますが、Javaをあまりよく知らないことに関連していると思う困難にぶち当たっています。なぜメソッドを2回指定するのですか? - Java
私には、クラス定義メソッドが2回呼び出されることがありました。なぜそれが不思議ですか?例:
次のコードは、ApplicationCreator.javaというファイルから取得したものです。私は、PublicクラスのApplicationCreatorが本質的に2回インスタンス化していることに気づいたか、ここで何か不足していますか?
public class ApplicationCreator<MR> implements
IResourceObjectCreator<BinaryRuleSet<MR>> {
private String type;
public ApplicationCreator() {
this("rule.application");
}
public ApplicationCreator(String type) {
this.type = type;
}
だからここに私の質問:
1)なぜクラスは、クラス内で自身のインスタンスを作成しますか?
2)なぜ2回繰り返すのですか?または、これはApplicationCreatorクラスの特定のパラメータを新しい値に設定する方法ですか?
アドバイスをいただければ幸いです。
これはコンストラクタと呼ばれます。 1つはパラメーターを取り、もう1つはパラメーターを取りません。その場合、ハードコーディングされた値を使用して、他のコンストラクターを呼び出すことによって自身を構築します。別の 'new'キーワードが使用されていないので、一つのオブジェクトだけがインスタンス化されます –
ああ。これは、この例では、引数を持たないクラスをインスタンス化するか、1つの引数(型)を使用してクラスをインスタンス化するかによって、コードがそれぞれ最初のコンストラクタまたは2番目のコンストラクタを実行するということですか? – Z101
これは「オーバーロード」と呼ばれ、コンストラクタまたはメソッドを複数回、異なるパラメータで定義する機能を指します。メソッドを呼び出すときのパラメータの数とタイプによって、呼び出されるメソッドが決まります。 – 4castle