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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • VL53L0X+stm32激光测距

    VL53L0X+stm32激光测距文末有补充这段时间很忙,一直没时间看邮件,忽略了一些信息,没有及时给有需要的网友发工程代码。其实你们可以找在底下留言的网友,他们留了邮箱,加他们qq或者发邮件给他们,让他们发给你们,这样可以节省你们得时间。———2019.7.3最近学习stm32单片机,用VL53L0X这个传感器进行开发,花了不少时间和精力,写这个博客一个是为了记录自己的学习过程另外一个是感谢网上各位…

    2022年5月5日
    58
  • android sdk集合 下载,Android SDK下载列表(含海内下载)-下

    android sdk集合 下载,Android SDK下载列表(含海内下载)-下AndroidSDK下载列表(含国内下载)-下前一篇博客中借用了三位前辈的博客、里面是SDK的下载列表、当然、里面不可能是完整的、也有很多都没有收录、但是我们可以从那些已经收录了的链接里的命名习惯中可以知道我们想要下载的链接是什么当我们需要的版本不在那些下载列表中时、这就需要我们自己改下载链接了、举个例子:比如、平凡的世界这位前辈收录的下载android-sdk列表中:在AndroidSDK列…

    2022年7月19日
    41
  • HTML 时间控件

    HTML 时间控件在做表单的时候,有时候需要输入时间,为了避免输入的麻烦,可以选择一些现成的时间控件。本文提供一个简单的样例,示例代码如下:(要成功运行,需要保持和本文对应的目录结构)。js/css/。

    2022年5月10日
    51
  • python中代码注释_python中文注释

    python中代码注释_python中文注释一个极小的问题。在python代码中,用了中文注释,不能被python解释器理解(python2.5)。解决方案是:# coding=gb2312print ok #中文注释没问题或者:# -*- coding: gb2312 -*-print ok  #这样也行

    2022年8月23日
    4
  • java集合超详解

    java集合超详解一、集合大纲1.集合和数组的区别:2.Collection集合的方法:3.常用集合的分类:Collection接口的接口对象的集合(单列集合)├——-List接口:元素按进入先后有序保存,可重复│—————-├LinkedList接口实现类,链表,插入删除,没有同步,线程不安全│—————-├ArrayList接口…

    2022年6月7日
    28
  • Java之Lambda表达式详解

    Java之Lambda表达式详解Lambda表达式,也可称为闭包,它是推动Java8发布的最重要新特性。Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用Lambda表达式可以使代码变的更加简洁紧凑。一、lambda表达式的语法格式如下:标准格式:(形式参数)->{代码块}Lambda表达式的代码分析●():里面没有内容,可以看成是方法形式参数为空●->:用箭头指向后面要做的事情●{}:包含一段代码,我们称之为代码块,可以看成是方法体中的内容实例.

    2022年7月7日
    26

发表回复

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

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