构造器也称构造方法,任何一个类都必定有构造器,现在举个列子

假如我们定义了属性

java项目中constant类放在哪个文件夹下 constructor在java里的作用_类


这时候如果我们不声明,系统会默认提供一个如下的空参,只是我们不可见,这里注意 构造器的名称必须和类名一样,包括大小写,并且他是没有返回值的。

java项目中constant类放在哪个文件夹下 constructor在java里的作用_父类_02


默认的构造器是看不到的,如果我们声明了默认的就会取消,如果我们没有声明却调用构造器,是会报错的。我们还可以声明有参构造器,如下: 构造器是可以重载的(这里this是因为重名避免错误,所以用this指向本类定义属性)

java项目中constant类放在哪个文件夹下 constructor在java里的作用_父类_03

这是声明构造器他的重要作用就是初始化对象属性构造器是创建对象时被自动调用的特殊方法可以如下使用

我们创建对象的时候默认已经调用了空参

java项目中constant类放在哪个文件夹下 constructor在java里的作用_父类_04


我们也可以在初始化对象的时候alt+/ 调用声明带形参的构造器:

java项目中constant类放在哪个文件夹下 constructor在java里的作用_子类_05


这就是构造器的一个重要功能,初始化对象属性。

----------------------------------------------------------------------------

注意事项:
sper()、sper.和 this()、this.

this:在运行期间,哪个对象在调用this所在的方法,this就代表哪个对象,隐含绑定到当前“这个对象”。

super():调用父类无参构造器,一定在子类构造器第一行使用!如果没有则是默认存在super()的!这是Java默认添加的super()。

java项目中constant类放在哪个文件夹下 constructor在java里的作用_父类_06

super.是访问父类对象,父类对象的引用,与this.用法一致

this():调用本类的其他构造器,按照参数调用构造器,必须在构造器中使用,必须在第一行使用,this() 与 super() 互斥,不能同时存在

this.是访问当前对象,本类对象的引用,在能区别实例变量和局部变量时,this可省略,否则一定不能省!

如果子父类中出现非私有的同名成员变量时,子类要访问本类中的变量用this. ;子类要访问父类中的同名变量用super