1

という名前のクラスがありStatisticFrameます。statsこのクラスは、メソッド内に名前が付けられたオブジェクトを作成します。StatisticFrameクラスから作成されたこのオブジェクトを別のクラスに渡すにはどうすればよいですか?

4

7 に答える 7

4

StatisticFrameクラスにレシーバーオブジェクト(たとえば、TargetFrameクラスタイプ)を指す変数を保持してから、レシーバーオブジェクトで定義されたメソッド(たとえば、SetStatsObject(object obj))を呼び出してオブジェクトを受け取ります。

StaticFrameクラスは次のようになります

class StatisticFrame {

     private TargetFrame targetObject = null;

     public StatisticFrame (TargetFrame obj) {
          this.targetObject = obj;
     }      

     public void Send (Object stats) {
          object stats = GetStatsObject(); // this will create and returns stats object
          targetObject.SetStatsObject(stats);
     }

     //... 
 }

TargetFrame(受信オブジェクトのクラス)は次のようになります。

class TargetFrame {

     public void SetStatsObject(Object stats) {
            // Do what ever you want with stats
     }

     // .....rest of the methods follows
 }
于 2012-07-06T10:29:56.877 に答える
2

作成したオブジェクトを引数として別のクラスコンストラクターまたはそのメソッドに渡すことができます。

class Apples{
    public static void main(String[] args){

        ApplesTestDrive obj = new ApplesTestDrive();
        ApplesSampleTestDrive objOne = new ApplesSampleTestDrive();
        // Pass created object obj as argument to ApplesSampleTestDrive method.
        objOne.paint(obj);

        }
    }

class ApplesTestDrive{
    public String bucket;
    public ApplesTestDrive(){
      bucket = "blue";
    }
}

class ApplesSampleTestDrive{

    public void paint(ApplesTestDrive obj){
        System.out.println("Paint apple one: " + obj.bucket);
    }

}
于 2012-07-06T10:30:48.933 に答える
1

Another classargumentオブジェクトを期待statsし、クラスからそのメソッドを呼び出して統計オブジェクトを渡すメソッドが必要です

private void yourmethod(){

 Stats stas =
 AnotherClass ac = new AnotherClass();
ac.thatMethod(stats);
}


 class AnotherClass {

  public void thatMethod(Stats stats){

  }
 }
于 2012-07-06T10:07:51.757 に答える
1

方法の1つは、渡すオブジェクトを引数オブジェクトとして受け入れる「別のクラス」にメソッドを作成し、そのメソッドを基本クラスから呼び出すことです。

class Sender{
    public void createAndSend(Reciever reciver){
        String s="some data from Producer";
        reciver.recieve(s);
    }
}

class Reciever{
    public void recieve(String data){
        System.out.println("I recieved "+data);
    }
}

//lets test it
class TestX{
    public static void main(String[] args) {
        Sender s=new Sender();
        Reciever r=new Reciever();
        s.createAndSend(r);

    }
}

出力:I recieved some data from Producer

于 2012-07-06T10:13:56.197 に答える
1

これを実現する方法はいくつかあります。メソッドの戻り型をとして作成しstats 、他のクラスでStatisticFrameそのメソッドのオブジェクトを作成して呼び出すことができます。

StatisticFrame sf=new StatisticFrame();
Stats st=sf.method();

別の方法として、戻り型を作成したくない場合は、型のStatsグローバルprivate変数を作成Statsし、これをメソッドに割り当てます。そうすると、1つのpublic getterメソッドがこのオブジェクトを他のクラスに返します。

于 2012-07-06T10:14:58.160 に答える
0

新しく作成したオブジェクトを受け入れるコンストラクターを使用して、オブジェクトを渡す他のクラスのオブジェクトを作成できます。インターフェイスを使用していくつかのコールバック関数を使用できる別の方法

于 2012-07-06T10:25:03.237 に答える
0

一方通行 :-

1つのクラスXyzがあり、そのオブジェクトのgetterメソッドを作成し、別のクラスAbcでXyzのオブジェクトを作成し、そのオブジェクトを使用してgetterメソッドを呼び出し、その戻り値を現在のクラスに格納するとします。

2番目の方法:-

継承を使用してクラスをスーパーにします

クラスAbcはXyzを拡張しますこれにより、uは、スーパークラスに存在するすべてのオブジェクト、メソッドに直接アクセスします。

これがあなたにとって理にかなっていることを願っています

于 2017-06-16T08:04:23.440 に答える