学习 Java 的时候我们经常会听到一个词,那就是“构造方法”。记得我刚学习构造方法的时候,我总是会想:构造方法和普通方法有啥不一样?构造方法咋用呢?估计是我脑子笨,这些问题我思考了好久才想明白… 闲言少叙,直接切入正题,今天就和大家聊一聊什么是构造方法。
构造方法在说什么是构造方法之前,我们先看看什么是方法。方法就是一些语句凑在一起实现了某些功能的集合,它通常由以下几部分组成
修饰符 返回值类型 方法名(参数类型 参数名, ....){ 方法体; return 返回值; }
当然了, 一个方法里面可以有参数,也可以没有参数;可以有返回值,也可以没有返回值。那构造方法就和方法不太一样了,构造方法有这么两个特点:
- 构造方法的方法名必须要和类名一致。没有返回值类型,更没有具体的返回值(void 都不需要写)。
说到这,大家可能就知道构造方法的格式了,没有错!!就是这样
修饰符 类名(参数类型 参数名, ....){ 方法体; }
还是老规矩,下面用代码给大家细细讲解一下,我们首先定义一矩形类,并在其中定义一个带参的构造方法
public class Rectangle { public int length; public int width; public int area(){ return length * width; } public Rectangle(int width, int length){ this.length = length; this.width = width; } }
接下来我们写一个 main 方法,去实例化一个矩形对象
public class RectangleTest { public static void main(String[] args) { //实例化一个长宽均为5的矩形对象 Rectangle rectangle = new Rectangle(5, 5); System.out.println("矩形的面积 = " + rectangle.area()); } }
我们执行 main 方法后可以看到控制台打印出了这个矩形的面积
有了上面的代码,大家应该就明白了构造方法的作用,构造方法就是类构造对象时调用的方法,主要用来实例化对象。 我们通过自己定义的一个带参构造方法实例化了一个5*5的矩形,并计算了这个矩形的面积。这时候肯定有小伙伴会产生疑问了:无参构造方法怎么用呢?
在我们编写代码的时候经常会用到无参的构造方法,或许有些小伙伴用到了,但是并不知道自己使用的就是无参构造方法。咱们改造一下上面的代码~
public class Rectangle { public int length; public int width; public int area(){ return length*width; } }
public class RectangleTest { public static void main(String[] args) { //实例化一个长宽均为5的矩形 Rectangle rectangle = new Rectangle(); rectangle.length = 5; rectangle.width = 5; System.out.println("矩形的面积 = " + rectangle.area()); } }
这里需要说一下构造方法的第三个特点了:自定义类中必定有构造方法,若不写,系统则会自动添加无参构造方法。 我们把带参构造方法删除后,在代码编译阶段,就自动帮助我们添加了一个无参构造方法。在main方法中
Rectangle rectangle = new Rectangle(); 就是调用了无参构造方法来实例化了一个矩形对象。这也就是为什么我们在没有学习构造方法之前也可以通过 new 关键字创建对象的原因啦 o( ̄▽ ̄)ブ
最后我们在对构造方法做一个总结
一个类中可以有多个构造方法,多个构造方法是以重载的形式存在的。构造方法是可以被 private 关键字修饰的,被 private 关键字修饰后代表了其他程序无法创建该类的对象。构造方法在对象创建时就执行了,而且只执行一次;一般方法是在对象创建后,需要使用时才被调用,而且可以被多次调用。构造方法和构造函数是同一个东西,只是 Java 习惯叫方法,而 C/C++ 习惯叫函数。很多博客中都把构造方法的作用说成是为了创建一个对象,其实这种理解是存在瑕疵的。我们必须承认,在创建一个类的对象时是一定要要调用构造方法的,但构造方法的作用其实并不是为了创建对象,而是为了“初始化对象的内部状态”,这句话听起来不太好理解,说白了就是为了给对象的各个属性赋初始值。 小结
本人经验有限,有些地方可能讲的没有特别到位,如果您在阅读的时候想到了什么问题,欢迎在评论区留言,我们后续再一一探讨
希望各位小伙伴动动自己可爱的小手,来一波点赞+关注 (✿◡‿◡) 让更多小伙伴看到这篇文章~ 蟹蟹呦(●’◡’●)
如果文章中有错误,欢迎大家留言指正;若您有更好、更独到的理解,欢迎您在留言区留下您的宝贵想法。
你在被打击时,记起你的珍贵,抵抗恶意;
你在迷茫时,坚信你的珍贵,抛开蜚语;
爱你所爱 行你所行 听从你心 无问东西
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)