初始化与构造器 桃扇骨 2022-07-17 02:18 153阅读 0赞 C++引入了构造器的概念,这是一个在创建对象时被自动调用的特殊方法,Java中也采用了构造器,通过提供构造器,类的设计者可以确保每个对象得到初始化。 在创建对象时: new Rock(); 将会为对象分配存储空间,并调用相应的构造器。这就确保了在你能操作对象之前,它已经被恰当地初始化了。并且额外提供了“垃圾回收器”。对于不再使用的资源,垃圾回收器自动将其释放。 1.构造器的语法格式 类名:构造器的名字必须和类名一致 参数列表 2.构造器的返回值类型 构造器不能定义返回值的类型,如果定义了返回值的类型,编译并不会报错,因为JVM已经把所谓的构造器当做是一个普通的方法.没有返回值类型并不是没有返回值,构造器有返回值的,返回的是当前类的对象,因此构造器的返回值类型总是当前类,因此没有定义返回值的类型.可以理解为构造器的返回值是隐式的. 3.默认的构造器, 如果程序中没有显示的定义构造器,系统会默认的给程序一个无参的构造器.一旦加了构造器,默认的构造器就不存在了。 4构造器是创建对象的重要途径,是不是说构造器就完全负责创建对象呢? 不是,构造器是创建对象的重要途径,通过new 关键字来调用构造器也可以返回一个该类实例,但是这个过程并不是完全由构造器执行的。 实际上,在系统调用构造器的时候,系统会先为该对象分配内存空间,为对象的成员变量赋初值,这个时候对象就已经产生了—这些操作都是在构造器的执行体之前执行的.也就是说,在构造器的执行体执行之前,对象就已经存在了,只是不能被外部的程序调用,构造体执行之后,对象就可以被外部的程序调用了。 5.构造器的重载 public class ConstructorDemo { private int a ; private String s; public ConstructorDemo() { } public ConstructorDemo(int a ){ this.a = a; } public ConstructorDemo (String s,int a){ this(a); this.s = s; } } 6.初始化块(代码块) 初始化块可以当做是Java程序里面的一种成员,代码块又分为:静态代码块和非静态的代码块,一个类中可以有多个代码块,**代码块之间执行的顺序是根据代码块在程序中的位置来决定**.静态的代码块总是比非静态的代码块先执行。 非静态代码块:可以把它当做是类的成员属性来理解.每次创建对象的时候都会执行一遍是属于成员变量。 静态的代码块:同样的可以把它理解成类变量,**只有在加载类的时候才会执行**. 程序对属性进行初始化的顺序是:代码块->属性声明时候指定的初始值->构造器中指定的值。 7.初始化块和构造器 从某种程度上来讲,可以理解为初始化快是构造器的补充,因为初始化块总是在构造器之前执行,同样也可以对对象初始化。 与构造器不同的是:初始化块只能执行一段固定的代码,不能够像构造器一样接受参数,而且是对类的所有的对象进行初始化。 跟构造器一样的,程序在执行的时候不仅会执行当前类的初始化块和构造器,**会一直追溯到object类的初始化块和构造器**.**先执行父类的初始化块和构造器(先初始化块,再构造器),然后再执行当前类的初始化块和构造器**。
相关 Java面向对象编程:构造器与拷贝构造器理解 在Java中,构造器和拷贝构造器是面向对象编程中的重要概念。 1. **构造器(Constructor)**: - 一个类可以有多个构造器。 - 构造器用于创建新 淩亂°似流年/ 2024年09月12日 10:15/ 0 赞/ 21 阅读
相关 Java面向对象编程:构造函数与初始化器的区别 在Java中,构造函数和初始化器是两个相关但不完全相同的概念。 1. **构造函数(Constructor)**: - 定义在类内部,名称与类名相同。 - 主要功 系统管理员/ 2024年09月11日 06:03/ 0 赞/ 18 阅读
相关 Java中构造函数和初始化器的区别示例 在Java中,构造函数(Constructor)和初始化器(Initializer)是两种不同的对象创建方式。下面是它们的区别示例: 1. 构造函数: ```java // 朱雀/ 2024年09月05日 12:15/ 0 赞/ 14 阅读
相关 java 对象初始化顺序 静态变量 成员变量 构造器 省流: 在写单例的时候,如果有其他变量,直接无脑的将实例化放在其他变量的下面。 private static int count = 0; pr 比眉伴天荒/ 2024年03月22日 13:59/ 0 赞/ 52 阅读
相关 C/C++编程:初始化器列表构造函数 > 以前,C++可以使用小括号、大括号、复制操作符等来初始化一个变量, 现在(从C++11开始算起),在C++初始化一个变量时,建议都使用`{}`来初始化 一致性初始化 电玩女神/ 2023年01月03日 04:20/ 0 赞/ 127 阅读
相关 Java构造器和初始化块 Java构造器和初始化块 > 来源: 流浪舟 https://www.maliaoblog.cn/2020/0924 > 公众号: 菜鸡干Java 文章目录 旧城等待,/ 2022年12月10日 10:17/ 0 赞/ 163 阅读
相关 Scala类的构造器与访问器 1.构造器 在Scala中,每个类都有一个主构造器。主构造器与类的定义交织在一起,如下: class Person ( private var 红太狼/ 2022年08月18日 11:56/ 0 赞/ 181 阅读
相关 初始化与构造器 C++引入了构造器的概念,这是一个在创建对象时被自动调用的特殊方法,Java中也采用了构造器,通过提供构造器,类的设计者可以确保每个对象得到初始化。 在创建对象时: 桃扇骨/ 2022年07月17日 02:18/ 0 赞/ 154 阅读
相关 构造器 构造器的作用:创建对象 构造器格式:访问修饰符 类名(参数列表) \{ \} 为什么不写返回类型呢?因为本身构造器的作用就是返回一个对象,不允许更改其返 小灰灰/ 2022年06月04日 04:47/ 0 赞/ 185 阅读
还没有评论,来说两句吧...