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/149133.html原文链接:https://javaforall.net

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


相关推荐

  • 究竟什么是推荐?

    究竟什么是推荐?

    2021年12月3日
    81
  • 2021年 pycharm 2021.4.23 最新激活码【在线破解激活】

    2021年 pycharm 2021.4.23 最新激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    66
  • Linux下nginx的安装以及环境配置「建议收藏」

    Linux下nginx的安装以及环境配置「建议收藏」linux下nginx的安装以及环境配置刚好最近在处理服务器相关的工作,所以记录一下nginx的安装,ok,接下来直接开始操作!第一步:下载nginx压缩包在这里可以去nginx官网下载->点我下载nginx也可以直接使用wget命令下载,指令如下所示(请根据自己的需求进行下载):wget-chttps://nginx.org/download/nginx-1.10.1.tar…

    2022年6月7日
    80
  • virsh console 进不去虚拟机_virsh 命令

    virsh console 进不去虚拟机_virsh 命令参考自链接http://www.2cto.com/os/201411/354288.html下的文章,感谢作者,自己整理备份,以备查用。问题描述:       先执行命令virshstartmycentos,启动虚拟机。       当执行命令virshconsolemycentos后出现如下显示:       virshconsolemycentos

    2022年8月12日
    5
  • LightGBM源码阅读+理论分析(处理特征类别,缺省值的实现细节)[通俗易懂]

    LightGBM源码阅读+理论分析(处理特征类别,缺省值的实现细节)[通俗易懂]前言关于LightGBM,网上已经介绍的很多了,笔者也零零散散的看了一些,有些写的真的很好,但是最终总觉的还是不够清晰,一些细节还是懵懵懂懂,大多数只是将原论文翻译了一下,可是某些技术具体是怎么做的呢?即落实到代码是怎么做的呢?网上资料基本没有,所以总有一种似懂非懂的感觉,貌似懂了LightGBM,但是又很陌生,很不踏实,所以本篇的最大区别或者优势是:源码分析,看看其到底怎么实现的,同时会将源…

    2025年6月6日
    2
  • TensorFlow DCNN

    TensorFlow DCNNDeepConvolutionalNeuralNetwork,DCNN计算机视觉三大核心问题:图像分类物体检测图像语义分割图像语义分割是将图像分割成几组有某种特定语义含义的像素部分,最终获得具有语义标注的图像。应2012年AlexNet诞生,它是8层的DCNN,以10%的优势击败了传统图像构建特征方法,在1000类的图像分类任务中获得冠军。参考:笔记:基于DCNN的图…

    2022年5月5日
    55

发表回复

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

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