簡體   English   中英

將在一個類中創建的對象傳遞給另一類

[英]Pass an object created in one class to another class

我有一個名為StatisticFrame的類。 此類在方法內部創建一個名為stats的對象。 如何將這個從StatisticFrame類創建的對象傳遞給另一個類?

在您的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
 }

您可以將創建的對象作為參數傳遞另一個類構造函數或其方法

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

}

Another class需要一個方法作為argument ,期望您的stats對象並從您的類中調用該方法並傳遞stats對象

private void yourmethod(){

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


 class AnotherClass {

  public void thatMethod(Stats stats){

  }
 }

一種方法是,您可以在“另一個類”中創建方法,該方法將接受要傳遞的參數對象,然后從基類中調用該方法

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

有多種方法可以實現此目的。 要么將方法的返回類型設為stats ,然后在其他類中將StatisticFrame作為對象並調用該方法。

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

如果您不希望將返回類型設為Stats另一種方式,然后將Stats類型的全局private變量設為Stats並將其分配到您的方法中,然后一個public getter方法會將此對象返回給其他類。

您可以使用要接受新創建的對象的構造函數為要傳遞該對象的其他類創建一個對象。 使用接口可以使用某些回調函數的另一種方法

單程 :-

假設您有一個類Xyz,該對象要為其創建getter方法,而在另一類Abc中,則使該對象成為Xyz的對象,並使用該對象調用getter方法並將其返回值存儲在當前類中

第二種方式:-

使用繼承使該類成為超級類

類Abc擴展Xyz這樣,您將直接訪問超類中存在的所有對象,方法

希望這對你有意義

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM