-2

私は本当に理解することができません、どうすれば異なるクラスでsetメソッドとgetメソッドを使用できますか?クラス1、クラス2の2つのクラスが必要です。クラス1では、正しく機能するsetとgetを設定しましたが、クラス2のgetメソッドが必要です。これにより、クラス1のgetメソッドと同じテキストが返されます。

クラス1は正常に機能しますが、クラス2に何を入れる必要がありますか?

public class one {

private String name;

public one() {
}

public void setName(String name) {
    this.name = name;
}

public String getName() {
    return this.name;
}

}
4

4 に答える 4

3

あなたは新人として一度に多くのことをしようとしているのではないかと思います。

まず、クラスはオブジェクトの単なるテンプレートまたは設計図であることを理解してください。それを超えて、「Get」ter と「Set」ter は実際には、クラス内のプライベート データのパブリックな「ラッパー」にすぎません。これにより、クラスの作成者として、クラスに出入りするデータを制御できます。本当にそれだけです。

そのことを念頭に置いて、Getter と Setter は他のクラスやインスタンスについて何の考えも概念も持っていません (たまたまそのクラスのメンバーである場合を除きますが、ここではそうではないと思います)。そのため、あるクラスの 1 つの「ゲッター」が別のクラスから値を返すという考えは、まったく当てはまりません。

于 2012-10-09T20:14:38.983 に答える
0

setter メソッドと getter メソッドは、両方のクラスで個別になります。

Class1 { 
    int a; float b;

    void setA(int a) { this.a = a; }

    int getA() { return this.a; }
}

Class2 { 
    String s;

    void setS(string str) { this.s = str; }

    String getS() { return this.s; }
}

これとは別に、setter メソッドと getter メソッドに関してこれほど複雑なことはありません。

Class1ゲッターが与える値を常に返したいという特定の要件がある場合は、

次にClass2getter() メソッドで、

String getS()
{
    return obj1.getA().toString();
}
于 2012-10-09T20:13:54.013 に答える
0

のメソッドを再利用する場合はone、クラスtwoを as のサブクラスoneとして作成します。

 public class two extends one {
 }

正しい命名規則を使用することをお勧めします (クラス名の最初の文字を大文字にします)。

public class One {
}

public class Two extends One {
}

これがうまくいくことを願っています。

于 2012-10-09T20:13:42.860 に答える
0

セッターとゲッターは、クラスのフィールドの値を取得するために使用されるメソッドです。それらは、単純な値を返すことができるため、その値の背後にあるロジックから独立させるコード化の実践です。

public String getName() {
    return value; 
}

または、より洗練された何かを行います。

public String getName() {
    String modValue = new String();
    //Lots of code here
    return modValue;
}

他の何かを返す必要がある場合、または別のことを行う必要がある場合、この特定のクラスとやり取りするクラスは、影響を受けることなくセッターとゲッターを呼び出します (値の型を変更するなどの大きな変更を加えない限り...)。

One classOne = new One();
one.getValue(); //returns the value or executes some logic before. It doesn't matter
                //if it changes because the method is the same. Your classes do not
                //depend on each other.

ゲッターに代わるものは...これ...

classOne.value;

フィールドに直接アクセスしますが、これはコードのにおい、災害、およびシソーラスを持っていない多くの形容詞です。値を返す前に何かを行う必要がある場合は、このようにします (これは、数値を返し、丸める必要があると考えてください...すべてのコードを変更するか、取得するたびに丸める必要があります。 getter を返す前に丸めることができます)。

ここで設計を検討する必要があります。他のクラスの値とまったく同じ値を返したい場合は、クラスのインスタンスをクラスに持ち、getter 呼び出しを委譲することを考慮することができoneますtwo。それを正当化します。オブジェクトが関連していない場合は、その値を自分で設定する必要があります。

セッターとゲッターは、特定のコンテキストごとに関連しているため、クラスごとに定義されます。別のクラスが呼び出された、または別のクラスに関連しているゲッターを定義することはできません。ただし、これらのクラスが関連している場合を除き、一方が他方を含んでいるか、またはそれらの間に次のような何らかの接続があるためです (例をいくつか挙げます)。

  1. 値を複製する外部エージェント
  2. 両方のクラスで共有される外部オブジェクト
  3. 両方のクラスが処理する共通のデータ ソース
  4. 一方のクラスは他方のクラスの拡張であり、2 番目のクラスはメソッドをオーバーライドしています。
于 2012-10-09T20:16:17.387 に答える