什么是是JAVA构造函数

什么是是JAVA构造函数每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提供了一个特殊的成员函数,叫做构造函数(Constructor)。一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因为…

大家好,又见面了,我是你们的朋友全栈君。每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提供了一个特殊的成员函数,叫做构造函数(Constructor)。
一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因为一个类的构造函数的返回值的类型就是这个类本身。构造函数的任务是初始化一个对象的内部状态,所以用new操作符创建一个实例后,立刻就会得到一个清楚、可用的对象。

构造方法是一种特殊的方法,具有以下特点。
(1)构造方法的方法名必须与类名相同。
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
(4)构造方法不能由编程人员调用,而要系统调用。
(5)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
(6)构造方法可以重载,以参数的个数,类型,或排列顺序区分。

java 构造函数的执行过程

类初始化时构造函数调用顺序:
(1)初始化对象的存储空间为零或null值;
(2)调用父类构造函数;
(3)按顺序分别调用类成员变量和实例成员变量的初始化表达式;

package strong; public class Const { private int a, b, c; public void Const() { System.out.println(“构造函数”); a = 3; b = 5; this.c = a + b; } public void test() { System.out.println(“The value of c :” + c); } public static void main(String[] args) { Const c = new Const(); c.test(); } }

输出结果:

The value of c :0

意外吗?好还看看上面的说明就知道原因了;

public void Const() {
System.out.println(“构造函数”);
a = 3;
b = 5;
this.c = a + b;
}

其实不是这个类的构造函数,因为这个类没有声明构造函数,所以默认走一个不带任何参数的构造函数;

现在我们把void去掉;则结构输出:

构造函数
The value of c :8

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

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

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


相关推荐

  • 数据库sql语句练习题「建议收藏」

    1、统计同一个房屋下的车辆个数:SELECThouseid,COUNT(*)FROMt_carGROUPBYhouseId;2、在1的基础上,统计拥有最多车辆个数的房间号SELECThouseId,COUNT(*)ascar_numFROMt_carGROUPBYhouseIdORDERBYcar_numDESCLIMIT1;

    2022年4月10日
    45
  • 临时手机号接收验证码在线短信接收_临时手机号短信验证码平台

    临时手机号接收验证码在线短信接收_临时手机号短信验证码平台  处在这个前所未有的信息化时代,网络带给我们极大便利的同时,也让我们的个人信息安全也遭受了严重的威胁。很多人对个人信息的保护意识淡薄,不知道当今个人信息泄露的广泛性,没有认识到个人信息泄露的途径以及严重危害。比如我们注册任何一个网站的时候,往往需要提供手机号码,输入接收到的短信验证码,或者邮箱地址也一样。一旦这些信息泄漏,就会经常性地收到一些垃圾信息、广告信息。  但是你为了查看或下载这个网站里面的资源,又不得不注册。怎么办呢?如果有一些匿名、临时、一次性的邮箱地址,以及可以免费收发短信验证码的…

    2022年10月13日
    3
  • XGBoost:参数解释

    XGBoost:参数解释XGBoost参数在运行XGboost之前,必须设置三种类型成熟:generalparameters,boosterparameters和taskparameters:Generalparameters:参数控制在提升(boosting)过程中使用哪种booster,常用的booster有树模型(tree)和线性模型(linearmodel)。Boosterparameters:这取

    2022年5月27日
    45
  • CMD 查看占用端口

    CMD 查看占用端口netstat-aon|findstr”8080″

    2022年5月19日
    34
  • FLAG_ACTIVITY_NEW_TASK使用场景及原理简析

    FLAG_ACTIVITY_NEW_TASK使用场景及原理简析在非Activity(比如Service,BroadcastReceiver)中startActivity需要添加flagIntent.FLAG_ACTIVITY_NEW_TASK。否则会报Crash:android.util.AndroidRuntimeException:CallingstartActivity()fromoutsideofanActivitycontext…

    2022年10月6日
    2
  • 分布式 – 谈谈你对分布式的理解,为什么引入分布式?

    分布式 – 谈谈你对分布式的理解,为什么引入分布式?不啰嗦,我们直接开始!划重点:真正了解分布式系统的概念,日后工作中具有分布式系统设计思想。 能否在设计中对系统稳定性方面考虑周全。 能构建高QPS健壮的系统架构。1、面试官:那谈谈你对分布式系统的理解问题分析:各种分布式框架层出不穷,SpringCloud,阿里的Dubbo,无论使用哪一个,原理都相同,考察下基本概念掌握的如何。答:为了解决传统单体服务架构带来的各种问题,代码数量庞大,迭代测试维护困难,可能因为一处改动测试不到位造成整个服务瘫痪等问题,分布式系统就是将一

    2022年6月21日
    30

发表回复

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

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