构造方法

1.介绍

构造方法,又名构造器,是在创建对象的时候,要使用的方法

2.构造方法的格式



如图,我们在测试类中仅是创建了对象stu,但当我们打印时,打印了“我是构造方法”,可见,构造方法的执行时机是在创建对象时执行

3.构造方法的作用

1.用于创建对象

2.结合执行时机:可以在创建对象的时候,给对象中的成员变量进行初始化



我们在构造方法里就将name和age赋值,这样创建对象的时候调用构造方法,name和age也就被初始化,直接打印即可

4.优化构造方法

如图


我们创建了另外一个对象,构造方法的执行时机是每创建一次对象,构造方法就会执行,所以stu2这里也执行了构造方法,但打印出来的东西和stu1一模一样

原因就是因为我们在构造方法里把name和age写死了,这样对我们是没有意义的,那该如何灵活的赋值呢?

.

答:在构造方法里使用形参 如图

如果我们这样写的话,右边的name给左边的name赋值,还是局部变量给局部变量赋值。但我们创建对象后,使用的变量都是成员变量(手机根据手机设计图进行设计),所以打印出的还是默认值,这样就毫无意义


解决方法:使用this关键字


5.技巧

我们不需要死记创建对象时,会使用构造方法。如图

创建对象的格式中,new是开辟堆内存空间,而new后面的看着是否有点眼熟?这不就像我们之前调用方法的时候直接写方法的名字吗

所以,创建对象格式的后半段,就是在调用构造方法

6.注意事项

1.定义了构造方法,默认的就会消失 如图

最开始的时候,stu2的格式是不会报错的,但当我们写了一个带形参的构造方法后,stu1没有问题,stu2报错了

这是因为在最初我们没有写构造方法,系统默认提供了一个构造方法给我们 如图

这时创建stu2,使用了没有形参的构造方法,这样就没有问题。但我们现在自己写了一个带形参的方法,系统默认的构造方法没了,这时stu2后半段就不能空着了,而是应该像stu1一样要写实参,这就是报错的原因。

那该如何优化呢?我们自己写一个不带形参的构造方法不就行了

2.构造方法也是方法,可以使用重载

如上图,两个构造方法,方法名一样,里面的形参不同,就是方法重载关系

3.构造方法不能手动调用,只能创建对象时进行调用


posted @ 2024-11-21 22:44  直実  阅读(0)  评论(0编辑  收藏  举报