java对象初始化的三种方法,java创建对象初始化对象

  java对象初始化的三种方法,java创建对象初始化对象

  步骤1:加载类。一个java对象在初始化之前会被类加载,一个类对象会在JVM中生成。加载一个类会做以下事情,下面给出递归描述。

  如果该类有父类,则先加载其父类。

  i 初始化该类静态成员

  ii 执行该类静态代码块

  步骤2:创建一个对象。如果这个类有父类,那么在创建对象时,会先创建其父类的对象,在外层包装子类的属性和方法,然后返回子类的引用。递归描述如下。

  如果该类有父类,先创建父类的对象。

  i 初始化该类普通成员

  ii 执行普通代码块

  iii 调用该类构造方法

  示例:

  这个类对象充当一个成员变量。

  公共类信息{公共信息(字符串){

  system . out . println(s);

  }

  }父类

  公共类父级{

  public static Info info=new Info(“父静态成员”);//静态成员

  public Info info2=new Info(“父公共成员”);//普通成员

  静态{//静态代码块

  System.out.println(父静态块);

  }

  {//公共代码块

  System.out.println(父公共块);

  }

  Public Parent() {//父类构造方法

  System.out.println(Parent。parent());

  }

  }子类

  公共类子扩展父{

  public static Info info=new Info(“子静态成员”);//静态成员

  public Info info2=new Info(子公共成员);//普通成员

  静态{//静态代码块

  System.out.println(子静态块);

  }

  {//公共代码块

  System.out.println(“子公共块”);

  }

  Public Child() {//子类构造方法

  System.out.println(Child。child());

  }

  }下面测试类的加载过程。我们不是创建一个对象,而是直接加载类,而且是一个加载的子类。

  公共类InitObjectTest{

  公共静态void main(String[] args) {

  尝试{

  //class . forname(“Parent”);

  class . forname(“Child”);

  }catch(异常e){

  }

  //system . out . println(================现在,我们在下面创建一个对象=========);

  //new Parent();

  }

  }测试结果:

  如何解决写爬虫IP受阻的问题?立即使用。

  测试结果符合上面写的加载类规则。首先初始化父类的静态成员,然后执行父类的静态块,再初始化子类的静态成员,最后执行子类的静态块。我们可以看到,静态成员确实是在类被加载时被初始化的。

  注意:类只加载一次,之后创建的对象不会再加载,这也是静态代码块只执行一次的原因。

  推荐教程:java入门教程以上是如何用java初始化对象的细节。请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: