【问题标题】:Using Objects in a similar way to Variables in Java以与 Java 中的变量类似的方式使用对象
【发布时间】:2013-02-08 08:01:09
【问题描述】:

我可以使用以下代码吗?它不会在 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);
    }
}

【问题讨论】:

  • 你想做什么?不,只有一种方法可以初始化对象,使用 new

标签: java variables object global-variables


【解决方案1】:

您需要在 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);
   }
}

【讨论】:

  • 那么您是通过实例访问静态i 吗?你不应该向 OP 解释它没有多大意义吗?你也从未初始化过obj
【解决方案2】:

这不是,你没有初始化。此外,您可能不想使用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;
}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多