黑马程序员技术交流社区

标题: java中一个类的初始化过程是怎么样的? [打印本页]

作者: ↘ふ紫铯幽夢    时间: 2014-5-31 10:26
标题: java中一个类的初始化过程是怎么样的?
本帖最后由 ↘ふ紫铯幽夢 于 2014-5-31 20:06 编辑
  1. class   Person{
  2.     //成员变量
  3.     private String name;
  4.     private Integer age;
  5.     //构造代码块
  6.    {
  7.        this.age=30;
  8.     }
  9.   //构造函数
  10.    public Person(){
  11.      }
  12. }
复制代码
比如我们写了这样一个类,当我们在new Person()时,这个对象的初始化过程是。比如什么时候默认初始化,显示初始化,构造代码块什么时候执行。

作者: 小钟    时间: 2014-5-31 11:10
看看这个图吧!也许能帮到你!
  1. class Fu {
  2.         int num = 1;//最先num默认初始化=0;当调用了Fu类构造函数在赋值为=1;
  3.        
  4.         //Fu类构造代码块;
  5.         {
  6.                 show();//被Zi类覆盖,调用Zi类show()方法;
  7.                 System.out.println("fu构造代码块!" + num);
  8.         }

  9.         Fu() {
  10.                 super();
  11.                 //Fu类num显示初始化=1;
  12.                 //Fu类构造代码块;
  13.                 System.out.println("fu构造方法!" + num);
  14.         }

  15.         void show() {
  16.                 System.out.println("fu show方法!" + num);
  17.         }
  18. }

  19. class Zi  extends Fu{
  20.         int num = 2;//最先num默认初始化=0;当调用了Zi类构造函数在赋值为=2;

  21.         //Zi类构造代码块;
  22.         {
  23.                 System.out.println("zi构造代码块!" + num);
  24.         }

  25.         Zi() {
  26.                 super();
  27.                 //Zi类num显示初始化=2;
  28.                 //Zi类构造代码块;
  29.                 System.out.println("zi构造方法!" + num);
  30.         }

  31.         void show() {
  32.                 System.out.println("zi show方法!" + num);
  33.         }
  34. }

  35. public class Test9 {

  36.         public static void main(String[] args) {
  37.                 // TODO Auto-generated method stub
  38.                 new Zi();
  39.         }

  40. }

  41. /*
  42. zi show方法!0     //此时Zi类num还没有被赋值为=2;
  43. fu构造代码块!1
  44. fu构造方法!1
  45. zi构造代码块!2
  46. zi构造方法!2
  47. */
复制代码

作者: 、海    时间: 2014-6-14 09:56
学习!!!
作者: 沐子松/kf    时间: 2014-6-14 10:50
学习                
作者: DxxD    时间: 2015-3-10 10:56
确实讲得不错,赞一个
作者: 灵韵依存    时间: 2015-11-23 22:03
好好看一下,分析中
作者: innovator    时间: 2016-6-1 16:29
小钟 发表于 2014-5-31 11:10
看看这个图吧!也许能帮到你!

编程简单明了,虽然对于我这种新手来说省略的权限范围等修饰词看起来不够明晰,不过对默认修饰的理解也是一种启发




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2