无法从B类访问A类中的公共方法

时间:2012-11-08 01:15:46

标签: java class methods

我有两个班,A班和B班。

public class A {
    B testB = new B();
    testB.setName("test"); //**Error Syntax error on token(s), misplaced constructs
                           //**(same line above) Error Syntax error on "test"
}

//in a separate file
public class B {
    public String name;
    public void setName(String name){
        this.name = name;
    }
}

为什么我不能在A类的B类中访问这个函数“setName”?感谢。

3 个答案:

答案 0 :(得分:1)

您需要将该代码放在A的构造函数中......

public A() {
    B testB = new B();
    testB.setName("test");
}

...然后实例化它。

A someA = new A();

答案 1 :(得分:1)

您需要从另一个方法或构造函数中调用该函数。

    public class A {

      //Constructor
      public A(){
        B testB = new B();
        testB.setName("test");
      }

      //Method
      public void setup(){

        B testB = new B();
        testB.setName("test"); 
       }
    }

    /*Then in a main method or some other class create an instance of A 
and call the setup method.*/

    A a = new A();
    a.setup();

答案 2 :(得分:0)

testB.setName("test");

是一个语句,需要在代码块中。目前它位于不允许非声明性陈述的类块中。

因此将此statent移动到构造函数,方法或初始化程序块中将解决问题:

public class A {
   B testB = new B(); // B can remain here

   public A() {
     testB.setName("test");
   }
}