簡體   English   中英

試圖從另一個類中訪問數據。

[英]Trying to access data from one class in another.

我是 Java 新手,但對舊的過程語言和結構化編程很熟悉,我有一個關於如何在 Java 中完成某些事情的問題

我有三個類,假設它們被稱為 CLASSA、CLASSB 和 TESTCLASSA。 CLASSA 有一個帶有實例變量的類定義和一個用於某些數據的構造函數。 TESTCLASSA 創建 CLASSA 的實例,並通過為 CLASSA 創建對象的實例將數據傳遞給 CLASSA。 類似地,CLASSB 有另一個帶有實例變量的類定義,以及一些數據的構造函數。 TESTCLASSA 創建 CLASSB 的實例,並通過為 CLASSB 創建對象的實例將數據傳遞給 CLASSB。 我正在嘗試從 CLASSA 訪問 CLASSB 的數據。 有人可以建議我如何去做這件事。 非常感謝您提供的任何幫助/建議。

韋恩·漢恩

要么將變量聲明為 public:

public class classA {
  public Integer data;
}

或創建一個公共 getter(首選),例如:

 public class classA{
    private Integer data;

    public Integer getData() {
      return data;
    }
  }

如果您想從 A 類訪問 B 類的屬性,那么您可以在要從中獲取數據的方法中創建 B 的對象,例如

private String nameofA;

public String getNameofA() {
    return nameofA;
}

public void setNameofA(String nameofA) {
    this.nameofA = nameofA;
}
public String getClassBData(){
    B b = new B();
    return b.getNameofB();
}

否則,您將創建 B 類型的類級別實例或依賴項。

public class TestClassA{

    public static void main(String[] args) {
        B b = new B();
        b.setNameofB("class B Name");
        A a = new A("class A Name",b);
    }
}
class A{
    private String nameofA;
    private B b = new B(); //either this 
    public String getNameofA() {
        return nameofA;
    }

    public A(String nameofA, B b) {//or constructor
        super();
        this.nameofA = nameofA;
        this.b = b;
    }


    public void setNameofA(String nameofA) {
        this.nameofA = nameofA;
    }
    public String getClassBData(){
        B b = new B();  // or creating local instance 
                        //but here a new instance will be created
        return b.getNameofB();
    }
}

那么只有您才能訪問 B 實例的數據。無論如何,如果您在 B 中的方法不是私有的或受保護的(假設 A 不擴展 B),您可以通過創建或傳遞 B 的實例來訪問該方法到您要訪問的“A”方法。

暫無
暫無

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

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