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

相关推荐

  • SOAP 协议「建议收藏」

    SOAP 协议「建议收藏」参考链接SOAP教程http协议与soap协议之间的区别SOAPSOAP是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换SOAP提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信SOAP协议可以简单地理解为:SOAP=RPC+HTTP+XML采用HTTP作为通信协议RPC(RemoteProcedureCallProtocol远程过程调用协议)作为一致性的调用途径XML作为数据传送的格式,从而允许服务提供

    2022年7月12日
  • Android Studio实现简单的记事本「建议收藏」

    Android Studio实现简单的记事本「建议收藏」手把手教你搭建一个记事本项目,简单又好用,经典之作。

    2022年10月29日
  • Asp中session使用方法详解[通俗易懂]

    Asp中session使用方法详解[通俗易懂]Session对象可以使用Session对象存储特定用户会话所需的信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的Web页时,如果该用户还没有会话,则Web服务器将自动创建一个Session对象。当会话过期或被放弃后,服务器将终止该会话。Sessio

    2022年7月15日
  • AngularJS进阶(二)AngularJS路由问题解决

    AngularJS进阶(二)AngularJS路由问题解决AngularJS路由问题解决遇到了一个棘手的问题:点击优惠详情时总是跳转到药店详情页面中去。再加一层地址解决了,但是后来发现问题还是来了:Couldnotresolve’yhDtlMaintain/yhdetail’fromstate’yhMaintain’药店详情http://192.168.1.118:8088/lmapp/index.html#/0优惠券详情

    2022年7月25日
  • 手机靓号正则表达式「建议收藏」

    手机靓号正则表达式「建议收藏」手机靓号正则表达式手机靓号正则ABC+=1234或12345…AAAA+=1111或11111…AAAA+//ABC+DDD+//AA+BBB+//AABBCC//ABABABAAAA+    (\d)\1{3,}   //如果想调3A+改{3,}改成{2,},想固定3A的话把{2,}的{,}号去掉  (1111+)ABC+DDD+  (?:0(?=1)|1(?=2)|2(?=3)|3(?=4

    2022年6月8日
  • I2C之知(六)–s3c2440用I2C接口访问EEPROM

    I2C之知(六)–s3c2440用I2C接口访问EEPROM在前面阅读理解了I2C的官方协议文档后,就拿s3c2440和EEPROM来验证一下.    本来是想用s3c2440的SDA和SCL管脚复用为GPIO来模拟的,但在没有示波器的情况下搞了一周,怎么都出不来,最后还是放弃了.甚至参考了linux下i2c-algo-bit.c和i2c-gpio.c,依然没调出来.如果有示波器,可能很快就能找到原因,现在完全不知道问题出在哪里.其实想用GPI

    2022年5月31日

发表回复

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

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