Java基础之 构造方法

  • 是什么?

构造方法是一种特殊的方法,它是一个与类同名的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。

  • 怎么做?

①方法名和 类名相同

②在方法名的前面没有返回值类型的声明

③在方法中不能使用return语句返回一个值

④在创建对象时,要调用new,如:book b1=new book();

⑤当没有指定构造方法时,系统会自动添加无参的构造方法

⑥当有指定构造方法时,无论该构造方法是有参,还是无参,系统都不会再自动添加无参的构造方法

⑦构造方法的重载:方法名相同,但参数不同的多个方法,调用时会自动根据不同的参数选择相应的方法
这里写了三个构造方法,主函数中Test t=new Test( )调用无参的构造方法,得到输出如下:在这里插入图片描述
对主函数进行部分改动
在这里插入图片描述
主函数创建对象时给了两个参数Luna 和20,得到输出如下:
在这里插入图片描述
总之,系统在创建对象的时候会根据你所给的参数调用构造方法。当没有写构造方法时,系统默认给了无参,一旦你手写了构造方法,系统就会取消给的无参构造方法,比如第一幅图如果删掉无参的构造方法系统就会报错。

  • 为什么?

至于原因,菜鸟表示也不太懂,我在网上看到了一些说法复制过来

1.没有构造方法就没法new,没写构造方法是因为有个默认无参构造方法。有参构造方法可以使对象在实例化时做些事情,完成必须的操作。比如开个公司,必须先拿证,置办办公场地吧(cr.探索者一号)

2.构造方法就是一种的特殊方法,只不过这个方法在对象创建的时候就被调用,用于初始化,就执行一次。为什么用这样的形式,因为可以封装功能,比如可以在构造方法中设定一些限制,输出语句,也可以复用,比如在构造方法里调用其他的构造方法(cr.天上掉个大馅饼)

3.关于这个问题我觉得你最好去查阅一下《java编程思想》。我的理解是这样的:1,首先得明白不通过构造函数,能不能初始化类内的成员变量(域)?答案是可以,通过静态变量,或初始化块等手段就可以完成变量的初始化。然而通过这样的手段,每次new的时候都执行了一样的操作:一成不变的值赋值给了变量。而通过构造函数则不一样,因为函数可以有参数,而且可以被重载,通过传入参数的不同,可以一定程度实现类的动态赋值。而不同的重载构造函数让类的实例化更加多样。(cr.月凉西厢)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章