详解JAVA中的构造方法

详解JAVA中的构造方法三千字详解 JAVA 中的构造方法 java 构造方法

大家好,欢迎来到IT知识分享网。

目录

一、构造方法的概念

二、构造方法的特


一、构造方法的概念

        构造方法(也称为构造器)是一个特殊的成员方法,名字必须与类名相同,在创建对象时由编译器自动调用,并且在整个对象的生命周期内只调用一次。

代码演示:

public class Data { public int year; public int month; public int day; //构造方法: public Data(int year, int month, int day) { this.year = year; this.month = month; this.day = day; System.out.println("调用构造方法"); } public void printDate() { System.out.println(year + "-" + month + "-" + day); } public static void main(String[] args) { //创建一个对象 Data data = new Data(2022,11,13); data.printDate(); } }

运行结果 :

详解JAVA中的构造方法

注意:

         构造方法的作用就是对对象中的成员进行初始化,并不负责给对象开辟空间。

二、构造方法的特性

 1.构造方法的名字必须与类名相同

验证如下:

详解JAVA中的构造方法

        因为如果构造方法的名字与类名不相同,JAVA的编译器就会将该方法归结为成员方法,而不会将其认定为构造方法,而构造方法是无返回值类型的,但是成员方法是必须有返回值类型,因此这就会导致编译通不过。

2.没有返回值类型,设置成void也不行

        这就是JAVA中对构造方法的规定,我们遵守即可

3.创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次(相当于每个人的出生,每个人只能出生一次)。

验证如下:

public class Data { public int year; public int month; public int day; //构造方法: public Data(int year, int month, int day) { this.year = year; this.month = month; this.day = day; System.out.println("调用构造方法"); } public void printDate() { System.out.println(year + "-" + month + "-" + day); } public static void main(String[] args) { //创建一个对象,并且在new对象的时候由编译器自动调用构造方法 Data data = new Data(2022,11,13); data.printDate(); } }

运行结果:

详解JAVA中的构造方法

        在运行结果中可以清晰地看到调用了Data中的构造方法 ,但是我们并没有在new出类后调用构造方法,这正验证了构造方法是在new对象时由编译器自动调用。

4.构造方法可以重载(用户可以根据自己的需求提供不同参数的构造方法)

验证如下:

public class Data { public int year; public int month; public int day; //不带参数的构造方法 public Data() { this.year = 2022; this.month = 11; this.day = 13; } //带有三个参数的构造方法: public Data(int year, int month, int day) { this.year = year; this.month = month; this.day = day; System.out.println("调用构造方法"); } public void printDate() { System.out.println(year + "-" + month + "-" + day); } public static void main(String[] args) { //创建两个个对象 Data data = new Data(2022,11,13); Data data1 = new Data(); data.printDate(); } }

        上述代码中的两个构造方法名字相同,参数列表不同,因此构成了方法重载。 

5.如果用户没有显式定义构造方法,编译器就会默认生成一份构造方法,而且默认生成的构造方法一定是无参的

验证如下:

public class Data { public int year; public int month; public int day; //没有显式定义构造方法 public void printDate() { System.out.println(year + "-" + month + "-" + day); } public static void main(String[] args) { //创建对象 Data data = new Data(); data.printDate(); } }

        上述代码中没有显式定义构造方法,但是依然可以new出对象,这就验证了编译器会默认给我们生成一个不带参数的构造方法 

注意:

         一旦用户定义了一个构造方法,编译器就不会自动生成构造方法

验证如下:

public class Data { public int year; public int month; public int day; //定义构造方法: public Data(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public void printDate() { System.out.println(year + "-" + month + "-" + day); } public static void main(String[] args) { //创建对象 //这里如果编译器会自动生成,则生成的构造方法一定是无参的 //则此处创建对象就可以通过编译 //但实际情况是:编译报错 Data data = new Data(); data.printDate(); } }

 6.构造方法中,可以通过this调用其他的构造方法来简化代码

验证如下:

public class Data { public int year; public int month; public int day; //不带参数的构造方法 public Data() { //这里通过this调用了带有三个参数的构造方法 this(2022,11,13); } //带有三个参数的构造方法: public Data(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public void printDate() { System.out.println(year + "-" + month + "-" + day); } }

注意: 

        this()必须是构造方法中的第一条语句 ,且this不能形成环

验证如下:

详解JAVA中的构造方法

 详解JAVA中的构造方法


总结

        以上就是本篇博客的全部内容,本文小编详细讲解了JAVA中构造方法的作用和构造方法的注意事项,希望对每一位读者都有帮助。

制作不易,望点赞、收藏、关注支持一下小编,后续还不断会有高质量文章出品,感谢!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/129681.html

(0)
上一篇 2025-08-22 17:26
下一篇 2025-08-22 17:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信