Java基础复习--constructor



java中class里的constructor是构造方法的意思。

 MvE思考者日记网-束洋洋个人博客

特征

 MvE思考者日记网-束洋洋个人博客

构造方法可以有任何访问修饰符或者没有修饰符;MvE思考者日记网-束洋洋个人博客

构造方法不能有任何非访问性质的的修饰符,例如static、final、synchronized、abstract(构造方法用于初始化一个实例对象,所以static修饰是没有任何意义的;多个线程不会同时创建内存地址相同的同一个对象,所以synchronized修饰没有意义,构造方法不能被子类继承,所以final和abstract修饰更没有意义);MvE思考者日记网-束洋洋个人博客

构造方法没有返回类型,void也不行MvE思考者日记网-束洋洋个人博客

构造方法命名与类名必须相同MvE思考者日记网-束洋洋个人博客

每个类至少有一个构造方法,一个类可以有多个重载的构造方法:MvE思考者日记网-束洋洋个人博客

  1. 隐藏构造函数,即默认构造方法,没有参数,修饰符是public并且方法体为空
  2. 显示定义构造函数。如果一个类中定义了一个或者多个构造方法,并且每一个构造方法都是带有参数形式的,那么这个类就没有默认的构造方法。(即实例化对象的时候必须传参数:new A() --> new A(a,……))

构造方法中可以使用this关键字,构造器中的this是指向同一个对象中不同参数的另一个构造器。MvE思考者日记网-束洋洋个人博客

  1. 构造方法中通过this关键字调用其他构造方法时,那么this必须放在第一行,否则会编译错误。
  2. 构造方法中只能通过this调用一次其他的构造方法。

构造方法中的super关键字都用于去指向父类,一般构造器中的super调用父类的构造方法MvE思考者日记网-束洋洋个人博客

 MvE思考者日记网-束洋洋个人博客

类中的执行顺序

 MvE思考者日记网-束洋洋个人博客

实例化子类对象时,程序会先调用父类的默认构造方法,然后再执行子类的构造方法。实例化类的对象时,类中的成员变量会首先进行初始化,如果其中的成员变量有对象,那么它们也会按照顺序执行初始化工作。在所有类成员初始化完成后,才调用对象所在类的构造方法创建对象--构造方法作用就是初始化。MvE思考者日记网-束洋洋个人博客

如果一个类中有静态对象,那么他会在非静态对象初始化前进行初始化,但只初始化一次。而非静态对象每次调用时都要初始化。MvE思考者日记网-束洋洋个人博客

  1. 主类的静态成员首先初始化
  2. 主类的父类的构造方法被调用
  3. 主类的非静态对象(变量)初始化
  4. 调用主类的构造方法

 

(转载本站文章请注明作者和出处 思考者日记网|束洋洋个人博客 ,请勿用于任何商业用途)

『访问 思考者日记网404页面 寻找遗失儿童』

告知
  •     本站90%以上文章均属原创,部分转载已加上原作者出处。 如需转载本站文章请您务必保留本站出处!
  •     打广告评论者请自重,请为广大网友提供一个健康干净的网络空间。
  •  感谢主机屋提供网站空间;
  •  感谢万网阿里云提供域名解析;
  •  感谢EmpireCMS提供CMS系统;
  •  感谢bootstrap展示本站前端页面;
  •  感谢Glyphicons Halflings提供字体;
  •  感谢大家一直以来对本站的喜爱,感谢大家!
近期文章 建议与反馈

 

网友评论
我也来说两句