Javaチュートリアル、ウィキペディア検索、スタックオーバーフロートローリング、およびコードサンプルの読み取りに何時間も費やしたにもかかわらず、コンストラクターは私を混乱させます。MEがコンストラクターを少しよく理解できるようにするために、私が答えようとしている3つの関連する質問があります。
まず、コンストラクターはクラスと同じ名前にする必要があるという印象を受けました。検討:
public class Money {
public Money(long l) {
this.value = l;
}
public Money(String s) {
this.value = toLong(s);
}
public long getLong() {
return this.value;
}
public String getString() {
return toString(this.value);
}
}
私はこれを4つのコンストラクターとして見ています...正しいですか?したがって、コンストラクターは、それらを含むクラスと同じ名前ではないようです。誰かがそれを確認できますか?
第二に、私はsetメソッドとgetメソッドを理解することを妨げているようです。検討:
public class GetSetSample {
public int getFoo() {
return int Foo;
}
public void setFoo(int fooValue) {
int Foo = fooValue;
}
}
なぜ私はこれを行うことができないのですか?
public class getFoo(int fooValue){
foo=fooValue;
}
foo = getFoo(12)
他のクラス/メソッドから使用しますか?
3番目の質問はもう少し難解ですが、全体像を理解するのに役立ちます...これは私の学習スタイルであり、デバッグ時にプログラムフローを追跡する能力に役立ちます。get
およびメソッドは、私とのset
「to」および「from」の関係を示唆しています。たとえば、値をコンストラクターに「渡し」、結果をgetメソッドから「from」で受け取ります。「to」と「from」はあなたの視点によって変わるように思えます。setMethod
変数が別のクラスまたはメソッドからのものであり、結果のオブジェクト(たとえば)に適切なパラメーターを設定している場合でも、オブジェクトのパラメーターを設定GetMethod
しget
てthis.foo
いると思いset
ます。どこにいてget
もset
が使用される場合、メインメソッドまたは単一のコンストラクターを持つスタンドアロンクラスでは、「set」は常にパラメーターの送信に関連付けられ、get
常にそのパラメーターを持つオブジェクトの受信に関連付けられます。それは良い理解ですか?または私は重要な部分を逃していますか?