java中构造器是什么意思?它有哪些内容?

BSO 2020-10-12 16:24:40 java常见问答 5240

随着人们对于新技术的深入了解,大家越发主动地开始学习新知识。java作为一门非常重要的编程语言,自然是大家的首选。今天就来为大家介绍一些java基础知识,也就是java中构造器是什么意思以及它有哪些内容?一起来看看吧。

一、 首先说一下什么是构造器

构造器通常也叫构造方法构造函数,构造器在每个项目中几乎无处不在。当你new一个对象时,就会调用构造器。构造器格式代码如下:

[修饰符, 比如public] 类名(参数列表, 可以没有参数)
{
    //这里不能有return
}

二、 然后介绍一下默认构造器

如果没有定义构造器,则会默认一个无参构造器,这就是为什么你定义了一个对象,比如People,没有定义任何构造器却可以new这个对象,比如new People()。如果自定义了构造器,则会覆盖默认构造器。

三、 如何禁止对象被外部创建

一些特殊需求,不希望定义的对象被外部创建(典型的就是单例了),那直接将构造器的修饰符改为private即可。这样就不能在外部通过new来创建这个对象了。

四、 构造器重载

与普通方法一样,构造器也支持重载。一个对象中是可以支持同时定义多个构造器,通过不同的参数列表来实现重载。经常看到代码中new一个对象时,有时传入参数,有时又可以不用传。比如:new People()跟new People("张三"),这里就是重载了。

五、 构造器的继承

子类构造器会默认调用父类无参构造器,如果父类没有无参构造器,则必须在子类构造器的第一行通过super关键字指定调用父类的哪个构造器。final类是不允许被继承的,编译器会报错。很好理解,由于final修饰符指的是不允许被修改,而继承中,子类是可以修改父类的,这里就产生冲突了,所以final类是不允许被继承的。

a) 构造器、静态代码块、构造代码块

b) 无继承的情况下的执行顺序

静态代码块:只在程序启动后执行一次,优先级最高

构造代码块:任何一个构造器被调用的时候,都会先执行构造代码块,优先级低于静态代码块

构造器:优先级低于构造代码块

总结一下优先级:静态代码块 > 构造代码块 > 构造器

c) 有继承的情况下的执行顺序:

父类静态代码块:只在程序启动后执行一次,优先级最高

子类静态代码块:只在程序启动后执行一次,优先级低于父类静态代码块

父类构造代码块:父类任何一个构造器被调用的时候,都会执行一次,优先级低于子类静态代码块

父类构造器:优先级低于父类构造代码

子类构造代码块:子类任何一个构造器被调用的时候,都会执行一次,优先级低于父类构造器

子类构造器:优先级低于子类构造代码块

总结一下优先级:父类静态代码块 > 子类静态代码块 > 父类构造代码块 > 父类构造器 > 子类构造代码块 > 子类构造器

以上就是关于java中构造器是什么意思以及它有哪些内容的主要内容了。如果你对java知识感兴趣,想要了解更多java基础以及常见问题,敬请关注奇Q工具网。

推荐阅读:

java构造函数使用方法,详细解析

java语言构造方法的特点是什么?和成员方法区别在哪?

java spring中构造方法怎么注入?接口注入怎么做?