摘要:多个构造器的名字相同,但形参列表不同。但一旦使用关键字来调用构造器,将会导致系统重新创建一个对象。此时可以通过关键字调用相应的构造器。
构造器是创建对象的重要途径(即使使用工厂模式、反射等方式创建对象,其实质依然是依赖于构造器),因此,Java类必须包含一个或一个以上的构造器。
使用构造器执行初始化构造器最大的用处就是在创建对象时执行初始化。当创建一个对象时,系统为这个对象的实例变量进行默认初始化,这种默认的初始化把所有基本类型的变量设为0,把所有引用类型的实例变量设为null.
如果程序员没有为Java类提供任何构造器,则系统会为这个类提供一个无参数的构造器。这个构造器执行体为空,不做任何事情。无论如何,Java类至少包含一个构造器
构造器主要用于被其他方法调用,用以返回该类的实例,因而通常把构造器设置成public访问权限,从而允许系统中任何位置的类来创建该类的对象。
构造器重载同一个类里具有多个构造器,多个构造器参数列表不同,即被称为构造器重载。多个构造器的名字相同,但形参列表不同。系统通过new调用构造器时,系统将根据传入的实参列表来决定调用哪个构造器。
如果系统中包含了多个构造器,其中一个构造器包含了另一个构造器的执行体,如何做到代码复用呢?
假设构造器B完全包含了构造器A。如果是两个方法之间存在这种关系,则可在方法B中调用方法A。但构造器补不能直接被调用,构造器必须使用new关键字来调用。但一旦使用new关键字来调用构造器,将会导致系统重新创建一个对象。此时可以通过this关键字调用相应的构造器。
public class Test { public String name; public String color; public double weight; public Test() {} public Test(String name, String color) { this.name = name; this.color = color; } public Test(String name, String color, double weight) { this(name, color); this.weight = weight; } public static void main(String[] args) { Test mytest = new Test("apple", "red", 12.5); System.out.println(mytest.name); //apple System.out.println(mytest.color); //red System.out.println(mytest.weight); //12.5 } }
使用this调用另一个重载的构造器只能在构造器中使用,而且必须作为构造器执行体的第一条语句。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68523.html
摘要:上一篇小乐介绍了新特性函数式接口,大家可以点击回顾。中引入方法引用新特性用于简化应用对象方法的调用,方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。方法引用是一种更简洁易懂的表达式。 上一篇小乐介绍了《Java8新特性-函数式接口》,大家可以点击回顾。这篇文章将接着介绍Java8新特性之方法引用。 Java8 中引入方法引用新特性,用于简化应用对象方法的调用, 方法引用是...
摘要:注本文首发于公众号,可长按或扫描下面的小心心来订阅关于构造器与初始化无参构造器默认构造器自己未写编译器帮忙自动创建的若自行定义了构造器无论参数有否,编译器便停止默认创建动作类里的对象引用默认初始化为,基本类型初始化为构造器也是类的静态方法四 showImg(https://segmentfault.com/img/remote/1460000015723687); 注: 本文首发于 ...
摘要:的动态性反射机制动态编译动态执行代码动态字节码操作动态语言程序运行时可以改变程序得结构或变量类型典型语言等如下代码不是动态语言但有一定的动态性我们可以利用反射机制字节码操作获得类似动态语言的特性的动态性让编程的时候更加灵活反射机制反射机制指 1.Java的动态性 反射机制 动态编译 动态执行JavaScript代码 动态字节码操作 2.动态语言 程序运行时,可以改变程序得结构或变量...
阅读 2478·2021-11-18 10:02
阅读 1916·2021-11-09 09:45
阅读 2285·2021-09-26 09:47
阅读 973·2021-07-23 10:26
阅读 1017·2019-08-30 15:47
阅读 3329·2019-08-30 15:44
阅读 924·2019-08-30 15:43
阅读 843·2019-08-29 13:50