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


相关推荐

  • SSTI 学习笔记

    SSTI 学习笔记PHPSSTI(Twig)学习文章进入环境,左上角有flag,hint都检查看看flag页面显示ip,hint页面源代码有提示考虑XFF头或者referer头测试一下注:这里不用加上“;”出来了pythonflaskssti学习文章原理:因为对输入的字符串控制不足,把输入的字符串当成命令执行。漏洞产生主要原因:render_template渲染函数的问题渲染函数在渲染的时候,往往对用户输入的变量不做渲染,..

    2022年10月21日
    2
  • protel99SE – 多张原理图生成一张总网表的方法

    protel99SE – 多张原理图生成一张总网表的方法protel99SE-多张原理图生成一张总网表的方法1.新建一张原理图,点击”PlaceSheetSymbol”放置一个原理图符号,然后右击选其“proterties”,在filename    一栏输入你准备与之绑定的原理图文件名.确定ok.  依此类推…,直到把全部的原理图与每一个放置的原理图符号绑定完为止。最后保存。2.打开全部的原理图(否则导入PCB时不

    2022年5月22日
    49
  • Androidlistview_android listview的用法

    Androidlistview_android listview的用法下面是activity:[java] viewplaincopypublic class MainActivity extends Activity {        private ListView mListView = null;      private List mList = null;        @Overri

    2022年10月3日
    3
  • C++多线程函数CreateThread()详解

    C++多线程函数CreateThread()详解采用CreateThread()创建多线程程序原创2012年12月10日11:44:5936683…

    2022年7月11日
    19
  • 数据库端口号怎么修改_sqlserver查看sa密码

    数据库端口号怎么修改_sqlserver查看sa密码sqlserver端口如果出现问题,会直接影响sqlserver的登录,下面就教您sqlserver端口的更改方法,供您参考,让您不再为sqlserver端口问题而头疼。今天遇到一个问题,sqlserver无法登陆,到Services里看,服务没有起来。但是在启动Service时遇到问题说无法启动。去AdministrativeTools->EventViewer中查看了一下,…

    2022年8月31日
    3
  • angular入门教程_初学者织围巾简单教程慢动作

    angular入门教程_初学者织围巾简单教程慢动作课程介绍本课程是一个系列基础教程,目标是带领读者上手实战,课程以新版本Angular的3个核心概念作为主线:组件、路由、模块,加上业务开发过程中必须用到的特性:工具、指令、表单、RxJS、i18n、测试,一共分为9部分,34篇文章。除了组件、路由、模块这3个核心小节具有很强的关联性之外,其它内容都是完全独立的,您可以在用到的时候再翻阅。认真读完这个系列文章之后,您会深入理解…

    2022年10月21日
    2

发表回复

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

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