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)        一般函数:没有次数限制;

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • SSR Windows电脑客户端下载和使用教程

    SSR Windows电脑客户端下载和使用教程https://garygeng.com/others/ssr-windows/很多的同学还是没有找到有效的SSR客户端下载地址,所以整理了下win下ssr客户端在使用上的问题,本文只提供工具和教程

  • STM32中3个延时函数「建议收藏」

    STM32中3个延时函数「建议收藏」第一个延时函数:voiddelay(u16num){u16i,j;for(i=0;i<num;i++)for(j=0;j<0x800;j++);}eg:delay(50);第二个延时函数:staticu8fac_us=0;//us延时倍乘数staticu16fac_ms=0;//ms延时倍乘数//初始化延迟函数//SYSTICK的时钟固…

  • css怎么设置注释快捷键,html中注释的快捷键是

    css怎么设置注释快捷键,html中注释的快捷键是html中注释的快捷键是command或ctrl+/超文本标记语言(HyperTextMarkupLanguage),标准通用标记语言下的一个应用。HTML不是一种编程语言,而是一种标记语言(markuplanguage),是网页制作所必备的。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超文本标记语言(或超文本标签语言)的结构包括“头”部分、和“主体”部分,其中“…

  • R及RStudio下载安装教程(超详细)

    R及RStudio下载安装教程(超详细)R语言是为数学研究工作者设计的一种数学编程语言,主要用于统计分析、绘图、数据挖掘。如果你是一个计算机程序的初学者并且急切地想了解计算机的通用编程,R语言不是一个很理想的选择,可以选择Python、C或Java。R语言与C语言都是贝尔实验室的研究成果,但两者有不同的侧重领域,R语言是一种解释型的面向数学理论研究工作者的语言,而C语言是为计算机软件工程师设计的。R语言是解释运行的语言(与C语言的编译运行不同),它的执行速度比C语言慢得多,不利于优化。但它在语法层面提供…

  • mysql联合索引的使用规则

    mysql联合索引的使用规则从一道有趣的题目开始分析:假设某个表有一个联合索引(c1,c2,c3,c4)以下选项哪些字段使用了该索引:Awherec1=xandc2=xandc4>xandc3=xBwherec1=xandc2=xandc4=xorderbyc3Cwherec1=xandc4=xgroupbyc3,c2Dwherec1=?andc5

  • postgreSQL + Drupal 安装

    postgreSQL + Drupal 安装最近在做毕业论文,需要用到Linux(Fedora)下的postgreSQL+Drupal构建。就这么边学边做,碰到许多小问题,折腾了好几天,终于把网站架起来。一些问题的解决办法:1、用yum安装postgreSQL算是简单的,但是按某教程装好后直接运行servicepostgresqlstart总是不成功。后来查其他资料,发现在第一次start之前需要执行servicepost

发表回复

您的电子邮箱地址不会被公开。

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