2012-07-06 136 views
1

我有一个名为StatisticFrame的类。该类在方法内创建一个名为stats的对象。我怎样才能将从StatisticFrame类创建的这个对象传递给另一个类?将一个类中创建的对象传递给另一个类

+1

可以为您发布您的代码 – 2012-07-06 10:06:55

+0

你的问题中不包含类名接收对象和统计信息对象。 – 2012-07-06 10:32:34

回答

4

使用一些回调函数保持一个变量,该变量指向接收对象(比如类型TargetFrame类的)在StatisticFrame类,然后调用方法(比如SetStatsObject(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

Another class需要一种方法为argument是希望你stats对象,然后调用您的类的方法,并通过你的统计对象

private void yourmethod(){ 

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


class AnotherClass { 

    public void thatMethod(Stats stats){ 

    } 
} 
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

1

有很多方法可以实现这一点。或者将返回类型的方法设置为stats,然后在其他类中您可以使对象为StatisticFrame并调用该方法。如果

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

其他方式,你不想做的返回类型Stats然后让Stats类型的全球private变量,并在你的方法分配这一点,然后一个publicgetter方法将这个对象返回其他类。

0

您可以为其他类创建一个对象,以便使用接受新创建对象的构造函数传递该对象。 另一种方式,你可以使用接口

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); 
    } 

} 
+0

不能轻松得多 – taruntejae 2016-12-07 12:38:41

0

一种方法: -

假设你有一个类的Xyz 想要使getter方法为它在别的ABC类做XYZ三个对象,并使用该对象调用的getter对象方法和它的收益存放在当前类

第二个办法: -

使用继承使类超级

ABC类扩展的Xyz 通过该U将直接获得进入所有对象,目前在超类中的方法

希望这是有意义的,你

相关问题