![](/img/trans.png)
[英]JavaFx sending data from one window/class to another. Not receiving data
[英]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.