Java OOPS示例java虚拟机流程

时间:2016-02-25 09:28:07

标签: java oop

class Test{
    public static void main(String[] args) {
        Hello h=new Hello();

        System.out.println(h.a);
    }
}

class Hello{
     int a;//even i add static modifier it gives the same result
     a=10;
}

欺骗异常

a=10 - >预期的标识符

我想通过jvm

的内部功能来解决这个错误的原因

2 个答案:

答案 0 :(得分:1)

它与JVM本身无关,但与Java语言规范无关。这不是有效的Java。

要修复它,您可以在声明变量时指定值:

class Hello{
     int a=10;
}

您还可以使用初始化块...

class Hello{
     int a;
     {a=10;}
}

...或者将它放在构造函数

class Hello{
     int a;
     public Hello{a=10;}
}

请注意,您还需要更改main方法,因为它是static

Hello h = new Test().new Hello();

答案 1 :(得分:0)

更改代码如下: int a = 10; 否则,您必须在方法和/或构造函数中包装赋值。您无法直接在类定义中编写代码。您只能声明实例和类变量,构造函数和方法。 同样在这种情况下不是抛出异常的虚拟机,代码根本就不会编译。