试图从另一个类中访问数据。

时间:2018-02-26 09:44:48

标签: java

对Java不熟悉,但对旧程序语言和结构化编程的老手,我有一个关于如何用Java完成某事的问题

我有三个课程,假设他们被称为CLASSA,CLASSB和TESTCLASSA。 CLASSA有一个带有实例变量的类定义,以及一些数据的构造函数。 TESTCLASSA创建CLASSA的实例,并通过为CLASSA创建对象的实例将数据传递给CLASSA。熟悉CLASSB有另一个带有实例变量的类定义,以及一些数据的构造函数。 TESTCLASSA创建CLASSB的实例,并通过为CLASSB创建对象的实例将数据传递给CLASSB。我试图从CLASSA访问CLASSB的数据。有人可以建议我如何去做这件事。非常感谢您提供的任何帮助/建议。

Wayne Hann

2 个答案:

答案 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”方法。