对Java不熟悉,但对旧程序语言和结构化编程的老手,我有一个关于如何用Java完成某事的问题
我有三个课程,假设他们被称为CLASSA,CLASSB和TESTCLASSA。 CLASSA有一个带有实例变量的类定义,以及一些数据的构造函数。 TESTCLASSA创建CLASSA的实例,并通过为CLASSA创建对象的实例将数据传递给CLASSA。熟悉CLASSB有另一个带有实例变量的类定义,以及一些数据的构造函数。 TESTCLASSA创建CLASSB的实例,并通过为CLASSB创建对象的实例将数据传递给CLASSB。我试图从CLASSA访问CLASSB的数据。有人可以建议我如何去做这件事。非常感谢您提供的任何帮助/建议。
Wayne Hann答案 0 :(得分:0)
将变量声明为public:
public class classA {
public Integer data;
}
或创建一个公共getter(首选),例如:
public class classA{
private Integer data;
public Integer getData() {
return data;
}
}
答案 1 :(得分:-1)
如果你想从A类访问B类的属性那么你可能在方法中从你想要getData的地方创建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”方法。