构造函数总结

概念:    创建对象时由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)        一般函数:没有次数限制;

java构造函数返回值_java构造函数总结相关推荐

  1. java 接口 返回值_java api返回值的标准化详解

    api返回值的标准化 例如 {"status":200,"message":"操作成功","data":"{\ ...

  2. java exe 返回值_java调用exe返回值

    {// getAccount 方法,使用 get 方法; return accounts.get(index); } } Bank .java: package com.mybank.domain; ...

  3. java匿名内部类返回值_java匿名内部类

    java的内部类可以玩出好多花样.介绍都挺多,我就不废话了.专门记一下困惑了我好半天的匿名内部类. 总结一下: 1.匿名内部类通常是为了省事(直接获取一个类实例,这个类实例只在此处用一次,就省得再给它 ...

  4. java threadpoolexecutor 返回值_Java ThreadPoolExecutor详解

    ThreadPoolExecutor是Java语言对于线程池的实现.池化技术是一种复用资源,减少开销的技术.线程是操作系统的资源,线程的创建与调度由操作系统负责,线程的创建与调度都要耗费大量的资源,其 ...

  5. php 构造函数 返回值,php构造函数与析构函数实例分析

    本节内容: php构造函数与析构函数 例子: 复制代码 代码示例: class Person{ public $name; public $age; public function __constru ...

  6. 构造函数 返回值_JavaScript构造函数的简单介绍

    1,构造函数是干嘛的? 构造函数是为了创建对象的,有的人会问,那我们用简单的用字面量就可以创建对象了嘛,例:( var obj = {} ),为啥还要用构造函数呢? 我们举个例子:简单创建一些&quo ...

  7. java 内部类 返回值_Java基础第10天+形式参数和返回值的问题、包、导包、权限修饰符、常见的修饰符、内部类(局部内部类,成员内部类,匿名内部类)...

    1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的 ...

  8. java 抛出异常 返回值_java通过抛异常来返回提示信息

    结论: 如果把通过抛异常的方式得到提示信息,可以使用java.lang.Throwable中的构造函数: public Throwable(String message) { fillInStackT ...

  9. java try 返回值_JAVA的try... catch finally的return返回值问题

    下面看一个例子(例1),来讲解Java里面中try.catch.finally的处理流程 public class TryCatchFinally { @SuppressWarnings(" ...

最新文章

  1. jsp页面修改成html页面
  2. keras 张量切片
  3. 基于C++有限状态机的实现技术
  4. python之网络编程 --- TCP编程
  5. ASP.Net Core MVC 发生二次请求
  6. flex自定义preloader预加载进度条
  7. dns按来路ip智能解析_智能解析_智能DNS解析_操作指南_云解析 DNS - 阿里云
  8. linux内核学习10:中断和异常
  9. 武昌职业学院与湖北美和易思教育科技有限公司校企签约揭牌仪式隆重举行
  10. 使用Chrome调试JavaScript
  11. 51单片机堆栈深入剖析(转)
  12. 又一重磅利好,海南撒10亿基金发展区块链技术
  13. 安装kubernetes_如何在Kubernetes中安装和使用Linkerd
  14. 微信早安推送+定时任务配置(精简图文版)
  15. 无法在 Mountain Lion 上启动 visual Paradigm 软件安装程序
  16. 资深程序员被逼无奈出来摆摊了,快来捧个人场!
  17. linux 查看java进城_linux查看java进程|线程池信息
  18. CAD.net cad中的菜单创建
  19. storm DRPC问题
  20. 袁萌:Linux机器人来我家

热门文章

  1. u盘或者移动硬盘插电脑上打不开,再点一下就资源管理器无响应
  2. Head First java——战舰游戏代码
  3. swift项目嵌入flutter的module混合开发(framework模式:适合多人协作开发,一个负责混合开发)
  4. robot selenium+python 对火狐浏览器进行网页自动化测试 报错历程
  5. 清洗完相机拍照测试年龄的软件,算年龄的照相软件 那个拍照测年龄的软件叫什么...
  6. EXCEL里怎样拆分单元格
  7. 阿里云短信怎么限制每天发送次数?
  8. 【时空融合:遥感图像】
  9. 大数据简介:从数据到大数据,数据技术工具的演变
  10. 立仪光谱共焦位移传感器选型技巧