java构造函数返回值_java构造函数总结

java构造函数返回值_java构造函数总结构造函数总结概念:创建对象时由JVM自动调用的函数作用:在创建对象的时候给对象的成员变量赋值;写法:修饰符:可以用访问权限修饰符(public、private等)修饰;不能用static修饰;返回值类型:没有返回值类型,连void都没有;函数名:必须和类名完全一样;参数列表:可以重载,具体根据要求而定;return语句:有,但是一般都不需要写;执行过程:创建对象时,JVM遇到new…

大家好,又见面了,我是你们的朋友全栈君。

构造函数总结

概念:    创建对象时由JVM自动调用的函数

作用:    在创建对象的时候给对象的成员变量赋值;

写法:

修饰符:可以用访问权限修饰符(public、private等)修饰;不能用static修饰;

返回值类型:没有返回值类型,连void都没有;

函数名:必须和类名完全一样;

参数列表:可以重载,具体根据要求而定;

return语句:有,但是一般都不需要写;

执行过程:

创建对象时,JVM遇到new关键字,首先要到堆内存中开辟对象空间;然后在对象空间中为成员变量分配空间,赋默认值;

然后再根据new关键字后面的内容,调用相应的构造函数进栈执行;等到构造函数执行结束,对象创建完成;

默认构造函数:

所有类中都至少有一个构造函数,如果一个类中没有书写构造函数,编译器就会帮我们添加一个无参的构造函数,这个构造函数就是默认构造函数;

一旦类中书写了构造函数,就不会再有默认构造函数;

使用细节:

构造函数可以调用一般函数;

一般函数不能调用构造函数;

构造函数可以调用构造函数,不能通过函数名调用,必须通过this关键字调用;

在构造函数中使用this语句调用其他构造函数,this语句必须写在构造函数的第一行;

构造函数之间相互调用,不能出现交叉调用(递归调用);

1、什么时候需要使用构造函数?

只要创建对象,都要使用构造函数;

2、什么时候需要自定义构造函数?

如果希望在创建对象时就给成员变量赋值,就需要自定义构造函数;

3、使用构造函数,可以在创建对象的时候就给对象的成员变量赋初始值,那么,有了构造函数,还需要提供get和set方法吗?

需要;因为构造函数只能在创建对象的时候赋值一次;如果以后想要改变这个值,就需要用到set函数;如果需要获取被封装的值,就需要用到get函数;

构造函数和一般函数的区别

1、从书写格式上看:

a)         构造函数:没有返回值类型,连void都不能写;构造函数的函数名必须和类名一样;不能用static关键字修饰;

b)        一般函数:必须有一个返回值类型(是和构造函数最主要的区别);一般函数名不要和类名一样;可以用static修饰,也可以不要;

如果一个函数函数名和类名一样,是否是构造函数,就要看有没有返回值类型;没有,就是构造函数;

2、从调用方式上看:

a)         构造函数:创建对象时由JVM调用的;一般函数不能调用构造函数;

b)        一般函数:哪里需要哪里就可以调用;构造函数里面也可以调用一般函数;

3、从作用上看:

a)         构造函数:主要用来在创建对象的时候,给对象的成员变量赋值用的;

b)        一般函数:实现某个具体功能;

4、从一个对象可以调用次数上看:

a)         构造函数:只有创建对象时会调用一次;

b)        一般函数:没有次数限制;

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

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

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


相关推荐

  • synchronized偏向锁和轻量级锁_线程synchronized用法

    synchronized偏向锁和轻量级锁_线程synchronized用法今天简单了解了一下java轻量级锁和重量级锁以及偏向锁。看了看这篇文章觉得写的不错原文链接java 偏向锁、轻量级锁及重量级锁synchronized原理Java对象头与Monitorjava对象头是实现synchronized的锁对象的基础,synchronized使用的锁对象是存储在Java对象头里的。对象头包含两部分:Mark Word 和 Class Metadata Address其中Mark Word在默认情况下存储着对象的HashCode、分代年龄、锁标记位等以下是32位JVM的

    2022年8月9日
    12
  • SQL 模糊查询LIKE concat用法[通俗易懂]

    SQL 模糊查询LIKE concat用法[通俗易懂]concat用来拼接查询的字符串,如下代码所示SELECT*FROMdeploymentWHEREnameLIKEconcat(concat(‘%’,#{queryMessage}),’%’) 

    2022年6月9日
    94
  • IDEA使用ideaVim, 配置自定义vim快捷键[通俗易懂]

    IDEA使用ideaVim, 配置自定义vim快捷键[通俗易懂]C:\Users\Administrator文件夹下创建_ideavimrc,我这里用的是win系统需要安装ideaVim插件letmapleader=”sethlsearchsetincsearchsetignorecasesetsmartcasesetshowmodesetnumbersetrelativenumbersetscrolloff=…

    2022年10月1日
    5
  • 设计模式之二十四:訪问者模式(Visitor)[通俗易懂]

    设计模式之二十四:訪问者模式(Visitor)

    2022年1月29日
    49
  • mac双系统安装方法_macbook如何安装双系统

    mac双系统安装方法_macbook如何安装双系统Mac上安装双系统(传统BootCamp傻瓜式)图文教程写在前面:Mac用户在使用过程中,多少有的时候还会使用Windows,想装一个咋办?找某宝需要花钱150元,看这篇文章,十几分钟看明白,自己动手丰衣足食!所以本文将以图文教程教你如何安装双系统,开机随意选择,想用什么用什么!尽管我不是很喜欢用Windows…….个人建议阅读完本文章,彻底看明白之后再对照操作安装前期准备工作:需准备至少8Gb空优盘一个,不是空的可以提前备份一下,制作启动盘会格式化优盘,请注意!制作启动盘…

    2022年10月6日
    2
  • 使用JavaScript 实现 split方法

    使用JavaScript 实现 split方法/***将输入的字符串以逗号分割,忽略为空的情况只保留数组,返回一个数字组成的新数组*禁止使用String.split*提示:可以使用String.chatAt来取String的第n位字符,如’012′.charAt(1)===1*@param{string}str输入的字符串*@param{string}tag分割符*@return{string[]}*/conststr1=’,1,2,3,,44,555,6,78,.

    2025年7月12日
    5

发表回复

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

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