java 构造函数的作用_Java中构造函数的作用(转)

java 构造函数的作用_Java中构造函数的作用(转)https://blog.csdn.net/vipmao/article/details/51530954,我觉得讲的非常好,学习到了构造函数的最大作用就是创建对象时完成初始化,当我们在new一个对象并传入参数的时候,会自动调用构造函数并完成参数的初始化。如下:publicclassTest{privateStringname;//有参数的构造函数publicTest(Stringn…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

https://blog.csdn.net/vipmao/article/details/51530954,我觉得讲的非常好,学习到了

构造函数的最大作用就是创建对象时完成初始化,当我们在new一个对象并传入参数的时候,会自动调用构造函数并完成参数的初始化。如下:

public class Test {

private String name;

//有参数的构造函数

public Test(String name) {

this.name = name;

}

public static void main(String[] args) {

//new一个对象,传参,调用构造函数

Test test=new Test(“VipMao”);

System.out.println(test.name);

}

}

运行结果 VipMao

这就说明在我们创建Test对象的时候,会自动调用构造函数完成初始化,这时程序中的name属性就成了VipMao。

上面说到构造函数是为了在new对象传入参数后完成属性的初始化,也许有些人不解,为什么我程序中不写构造函数依然可以完成初始化。

1.如果你不写构造函数,程序会自动给你加上一个无参数无操作的构造函数(当然你看不见)。

2.如果你写了构造函数,则自定义构造函数会覆盖无参数构造函数。

3.如果你写的构造函数中不存在无参数的构造函数,将不能以 new XXX(“”);这样传参的方式生成该类的对象(当然你也可以生成对象后通过他们的set、get方法进行赋值。)

比如将上面的程序改成以下:

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class Test {

private String name;

//不提供构造函数

public static void main(String[] args) {

//new一个对象,传参,调用构造函数

Test test=new Test(“VipMao”);

System.out.println(test.name);

}

}

在创建对象并赋值的时候,程序就会报错:

The constructor Test(String) is undefined,构造函数是没有定义的。

也就是说如果程序员没有为JAVA类提供任何构造器,则系统会为这个类提供一个无参数的构造器,这个构造器的执行体为空,不做任何事情。无论如何,JAVA类至少包含一个构造器,如果你提供了多个构造函数(参数不同),则程序会根据你传入参数的不同调用不同的构造函数。

————————————————

版权声明:本文为CSDN博主「VipMao」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/vipmao/article/details/51530954

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197517.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【Hibernate】Hibernate的映射关系「建议收藏」

    【Hibernate】Hibernate的映射关系「建议收藏」【Hibernate】Hibernate的映射关系

    2022年4月25日
    31
  • tle代码

    tle代码include iostream include string include cstring usingnamespa typedeflongl intn k 1 p 0 maxn strings intmain cin gt gt n cin gt amp cstring string iostream

    2025年6月23日
    1
  • Java Calendar类详解

    Java Calendar类详解原文这里。究竟什么是一个Calendar呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历、阴(农)历之分。它们的区别在哪呢?比如有:月份的定义-阳`(公)历一年12个月,每个月的天数各不同;阴(农)历,每个月固定28天每周的第一天-阳(公)历星期日是第一天;阴(农)历,星期一是第一天实际上,在历史上有着许多种纪元的方法。它们的差异实在太大了,比如说一

    2022年6月10日
    28
  • springboot框架 目录结构

    springboot框架 目录结构目录结构src/main/java:主程序入口Application,可以通过直接运行该类来启动SpringBoot应用src/main/resources:配置目录,该目录用来存放应用的一些配置信息,比如应用名、服务端口、数据库配置等。由于我们应用了Web模块,因此产生了static目录与templates目录,前者用于存放静态资源,如图片、CSS、JavaScript等;后…

    2022年8月20日
    8
  • MySQL索引原理及BTree(B-/+Tree)结构详解「建议收藏」

    MySQL索引原理及BTree(B-/+Tree)结构详解「建议收藏」目录摘要数据结构及算法基础索引的本质B-Tree和B+TreeB-TreeB+Tree带有顺序访问指针的B+Tree为什么使用B-Tree(B+Tree)主存存取原理磁盘存取原理局部性原理与磁盘预读B-/+Tree索引的性能分析MySQL索引实现MyISAM索引实现InnoDB索引实现索引使用策略及优化示例数据库最左前缀原理与…

    2022年6月24日
    27
  • mysql命令查看版本_查看mysql

    mysql命令查看版本_查看mysql在日常项目开发过程中,我们经常要连接自己的数据库,此时不知道数据库的版本是万万不可的。今天小树懒来给大家总结一下查看mysql版本的方法。MySQL查看版本的方法主要有以下四种方法1:没有连接到MySQL终端下直接使用mysql命令。打开cmd,切换至MySQL的bin目录,运行以下命令:[root@localhostlib]#mysql-VmysqlVer15.1Distrib5.5.47-MariaDB,forLinux(x86_64)usingreadl

    2022年9月28日
    2

发表回复

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

关注全栈程序员社区公众号