将在一个类中创建的对象传递给另一个类

时间:2012-07-06 10:05:05

标签: java

我有一个名为StatisticFrame的班级。此类在方法内创建名为stats的对象。如何将从StatisticFrame类创建的此对象传递给另一个类?

7 个答案:

答案 0 :(得分: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
 }

答案 1 :(得分: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 String paint(ApplesTestDrive obj){
        System.out.println("Paint apple one: " + obj.bucket);
    }

}

答案 2 :(得分:1)

Another class需要一个方法作为argument,需要您的stats对象并从您的类中调用该方法并传递您的统计信息对象

private void yourmethod(){

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


 class AnotherClass {

  public void thatMethod(Stats stats){

  }
 }

答案 3 :(得分: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

答案 4 :(得分:1)

您可以通过多种方式实现这一目标。或者将方法的返回类型设为stats,然后在其他类中创建StatisticFrame的对象并调用该方法。

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

其他方式如果您不想将返回类型设为Stats,请创建类型为private的全局Stats变量,并在您的方法中指定此变量,然后为{{1} } public方法会将此对象返回给其他类。

答案 5 :(得分:0)

您可以使用接受新创建的对象的构造函数为要传递对象的其他类创建对象。  另一种使用接口

可以使用回调函数的方法

答案 6 :(得分:0)

单向: -

假设您有一个类Xyz 你想要的对象为它做getter方法,在另一个类Abc中创建Xyz的对象,并用该对象调用getter方法并将它的返回值存储在当前类中

第二种方式: -

使用继承使类成为超级

类Abc扩展了Xyz 通过这个你将直接访问超类

中存在的所有对象,方法

希望这对你有意义