0

我有两个班,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”?谢谢。

4

3 回答 3

1

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

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

...然后实例化它。

A someA = new A();
于 2012-11-08T01:17:31.780 回答
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();
于 2012-11-08T01:18:07.913 回答
0
testB.setName("test");

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

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

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

   public A() {
     testB.setName("test");
   }
}
于 2012-11-08T01:17:28.057 回答