我们可以看到,实例化一个类时,我们直接使用new 类名()即可实现,非常的简单。但是我们有时候也会遇到这样的实例化的方式,比如Scanner sc = new Scanner(System.in),而如上一实验中的类:Top,我们却无法在实例化的时候在()中加任何参数,那么这是怎么做到的呢?
1. 什么是构造方法:
构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。在Java中,任何变量在被使用前都必须先设置初值。Java提供了为类的成员变量赋初值的专门方法。
2. 构造方法的特点:
(1) 没有返回值,甚至连void都没有;
(2) 名称和类名必须相同(包括大小写);
(3) 不能被static、final、synchronized、abstract和native修饰;
(4)
可以重载,通过构造方法中参数个数不同、参数类型不同及顺序的不同实现构造方法的重载;
(5) 在生成类的对象时调用。一个类中如果定义了多个构造方法,则根据参数自动选择 调用相应的构造方法;
(6) 不能被继承,因此不能被重写
(7) 如果没有显示声明构造方法,系统将自动生成一个无参数构造方法,称为默认构造方法
(8) 如果没有显示声明默认构造方法,显示声明了带参数构造方法,默认构造方法将被覆盖,因此,良好的习惯在声明带参数构造方法前显示声明无参数构造方法