2012-07-06 105 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將直接獲得進入所有對象,目前在超類中的方法

希望這是有意義的,你