java中的构造器-程序的初始化

java继续延续C++中在创建对象时自动调用构造器(一种特殊的方法),创建对象时,如果其类具有构造器,java就会在用户有能力操作对象之前自动调用相应的构造器,从而保证初始化的进行。
一、简介
(一)定义
1.构造方法
与类名一致,没有返回类型的特殊方法,用来初始化对象。
2.语法
访问修饰符 构造方法名(){
//初始化代码
}
3.样例
在这里插入图片描述
在创建对象-new family()时,将会为对象分配存储空间,并调用了相应的构造器。这样就可以确保在操作对象之前,就已经恰当的初始化。
(二)特点
在这里插入图片描述

1.方法和类的名称一致,即构造器采用和类相同的名称;
原因1.编辑器调用构造器的时候,需要知道调用的初始化方法是哪个;
原因2.取任何名字都可能与某个成员名称相冲突;
与其这样,不如沿用C++语言的解决方案(构造器名称=类名)更加简单。
2.修饰符后面无返回值类型;
构造器是一种特殊类型的方法,因为它没有返回值。
与返回值为void区别如下:
空返回值方法:方法本身不会自身返回值,但是可选择让他返回别的参数;
构造器:不会返回任何内容(假如构造器具备返回值,允许自行选择返回类型,那么编译器将不知道如何处理)。
3.方法中可指定参数,也可不指定参数。
(三)好处
构造器有助于减少错误,并使代码更易于阅读。从概念上讲,“初始化”和“创建”是彼此独立的,但是在java代码中,两个概念捆绑在一起,两者不能分离。
二、实例
(一)无参构造器(亦称:默认构造器)
不接受任何参数的构造器叫默认构造器(即无参构造器)。
1.当一个构造器中没有任何方法时,系统默认添加一个与类名相同的无参构造方法,如下图所示:
在这里插入图片描述
2.当需要自定义无参构造器时,可结合自己的需求进行自行编辑,上面第一部分的中样例就是一个自定义的无参构造,初始化了一个家庭,默认包含爸爸妈妈两个人。
(二)带参构造器
定义一个类中有一个带参构造器,那么它将接受传入的变量,编辑器就不会自动创建默认构造器(因为编译器认为你已经知道做什么,无需默认构造器),如下图family类中定义了一个family有参构造器,并分别传入“son”和“daughter”进行了调用,如此时你再进行调用无参的构造方法,将会报错,告诉你找不到相匹配的构造器。
在这里插入图片描述
(三)无参构造器和带参构造器同时存在
如果构造器是类中唯一的构造器,那么编译器将不会允许以其他形式进行new对象;
当类中有多个构造器,可根据传参的情况进行调用。如下图所示:
在这里插入图片描述
调用及执行结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44801116/article/details/105909833