深入构造器

2024-09-04 07:48
文章标签 深入 构造

本文主要是介绍深入构造器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

构造器用于创建类的实例,其最大的用处是创建对象时执行初始化。当创建一个对象时,系统为这个对象的属性进行默认初始化,把所有基本类型的属性设为0(对数值型属性)或false(对布尔型属性),把所有引用类型的属性设置为null。

注意:如果程序员没有为Java类提供任何构造器,系统会为这个类提供一个无参数的构造器,这个构造器的执行体为空,不做任何事。无论如何,Java类至少包含一个构造器。如果需要多个初始化过程,就需要提供多个构造器,也就形成了构造器重载。

例子:

public class ConstructorOverload
{public String name;public int count;//提供无参数的构造器public ConstructorOverload(){}//提供带两个参数的构造器,对该构造器返回的Java对象执行初始化public ConstructorOverload(String name,int count){this.name=name;this.count=count;}public static void main(String[] args){//通过无参数构造器创建ConstructorOverload对象ConstructorOverload oc1=new ConstructorOverload();//通过有参数构造器创建ConstructorOverload对象ConstructorOverload oc2=new ConstructorOverload("轻量级J2EE企业应用实战",18000);System.out.println(oc1.name+" "+oc1.count);System.out.println(oc2.name+" "+oc2.count);}
}

如果系统中包含多个构造器,其中一个构造器执行体里完全包含另一个构造器的执行体。则可以使用this关键字来调用相应构造器。

例子:

public class Apple
{public String name;public String color;public double weight;public Apple(){}//两个参数的构造器public Apple(String name, String color){this.name=name;this.color=color;}//三个参数的构造器public Apple(String name, String color, double weight){//通过this调用另一个重载的构造器的初始化代码this(name,color);this.weight=weight;}
}

注意:使用this调用另一个重载的构造器只能在构造器中使用,而且必须作为构造器执行体的第一条语句。

摘自李刚《疯狂Java讲义》

这篇关于深入构造器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1135427

相关文章

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

一文带你深入了解Python中的GeneratorExit异常处理

《一文带你深入了解Python中的GeneratorExit异常处理》GeneratorExit是Python内置的异常,当生成器或协程被强制关闭时,Python解释器会向其发送这个异常,下面我们来看... 目录GeneratorExit:协程世界的死亡通知书什么是GeneratorExit实际中的问题案例

深入解析Spring TransactionTemplate 高级用法(示例代码)

《深入解析SpringTransactionTemplate高级用法(示例代码)》TransactionTemplate是Spring框架中一个强大的工具,它允许开发者以编程方式控制事务,通过... 目录1. TransactionTemplate 的核心概念2. 核心接口和类3. TransactionT

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

深入理解Redis大key的危害及解决方案

《深入理解Redis大key的危害及解决方案》本文主要介绍了深入理解Redis大key的危害及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06