如果仅在对象初始化期间给定内存,如何初始化类成员变量(实例变量)?

时间:2019-09-03 15:20:01

标签: java class oop

我们知道一个类可以包含仅通过新的classname()获得内存的对象。 然后如何为类的实例分配一些值。

class Work{
   public int a = 55;
}

class DoStuff{
      public static void main(String[] args){
      Work obj = new Work(); // intialises variable now
      System.out.println(obj.a) // a already has value 55
   }
}

1 个答案:

答案 0 :(得分:1)

Java中初始化块和构造函数的执行顺序

  • 每次在JVM中首次加载类时,静态初始化块都会运行
  • 初始化块以它们在程序中出现的顺序运行。
  • 实例初始化块在类初始化时和构造函数调用前执行。通常将它们放在大括号内的构造函数上方。

https://www.geeksforgeeks.org/order-execution-initialization-blocks-constructors-java/

因此,在您的情况下,public int a = 55;Work类的构造函数之前被调用。 JVM首先为对象保留内存,然后开始初始化所有对象属性。