1.构造函数的概念
构造函数是函数的一种特殊形式,特殊在哪里?构造函数中不需要定义返回类型(void是无需返回值的意思,请注意区分两者),且构造函数的名称与所在的类名完全一致,其余的与函数的特性相同,可以带有参数列表,可以存在函数的重载现象。
2.构造函数的格式
如果在类中我们不声明构造函数,JVM会帮我们默认生成一个空参数的构造函数;
如果在类中我们声明了带参数列表的构造函数,JVM就不会帮我们默认生成一个空参数的构造函数,我们想要使用空参数的构造函数就必须自己去显式的声明一个空参的构造函数。
public class Demo { private int num = 0; // 无参构造函数 Demo() { System.out.println("constractor_run"); } // 有参构造函数 Demo(int num) { System.out.println("constractor_args_run"); } // 普通成员函数 public void demoFunction() { System.out.println("function_run"); } }
注意:这个类里面好像有多个构造函数,其实不然,这是把构造函数重载了多次。
构造方法重载的好处:我扔进来是什么样的参数,程序就会自动找到相对应的构造方法去执行。这样构造函数就能实现很多功能了。否则一个功能写一个类,多麻烦啊。
3.构造函数的作用
(1) 创建对象。任何一个对象创建时,都需要初始化才能使用,所以任何类想要创建实例对象就必须具有构造函数。
(2)对象初始化。构造函数可以对对象进行初始化,并且是给与之格式(参数列表)相符合的对象初始化,是具有一定针对性的初始化函数。
总之:构造函数的最大作用就是创建对象时完成初始化,当我们在new一个对象并传入参数的时候,会自动调用构造函数并完成参数的初始化
参考:
java 为什么有时一个类有多个构造函数 https://www.cnblogs.com/baxianhua/p/12167980.html
https://juejin.im/entry/6844903478234447886
https://blog.csdn.net/VipMao/article/details/51530954
原文:https://www.cnblogs.com/GumpYan/p/13720931.html