1

我可以使用以下代码吗?它不会在 Object 上而是在 obj.i 上抛出任何错误。这是使用对象的合法方式吗?另外,除了使用普通语法 obj s = new obj(); 之外,我还有多少种方法可以创建对象?

public class Test {

    static int i;
    static Test obj;
    obj.i = 10; //am getting a compilation error here "Syntax error on token "i", VariableDeclaratorId expected after this token"

    public static void main(String[] args) {
        System.out.println(i+" "+ obj);
    }
}
4

2 回答 2

0

您需要在 obj.i 赋值语句周围放置一个静态块才能使其工作:

public class Test {
   static int i;
   static Test obj;
   static { obj.i = 10; }

   public static void main(String[] args) {
       System.out.println(i+" "+ obj);
   }
}
于 2013-02-08T08:05:02.817 回答
0

这不是,你没有初始化。此外,您可能不想使用static.

public static void main(String [] args) {
int i = 10;
Test obj = new Test();
obj.setI(i);
System.out.println("my objects I = "+ obj.getI());
}

现在在你的Test对象中

public class Test {
private int i;


public void setI(int i) {
this.i = i;
}

public int getI() {
return this.i;
}
}
于 2013-02-08T08:05:41.933 回答