Java构造器与this关键字

news2024/9/21 19:07:27

J a v a 构造器与 t h i s 关键字 \huge{Java构造器与this关键字} Java构造器与this关键字

Java类构造器

作用

在类中定义用于初始化一个类的对象,并且返回对象的地址。(可以理解为就是创建一个对象)

调用实例

Car c = new Car();	//无参数调用格式
Car c = new Car("五菱宏光",6.66);	//有参数调用格式

构造器格式与调用格式

在这里插入图片描述

分类

①. 无参数构造器:定义类的时候默认就拥有的,不管写不写都是可以调用的,会为成员变量赋值为初始值。
实例:

Car c = new Car();		//调用无参数构造器

//Car类定义
public class Car {
    String name;
    double price;
    /**
      无参数构造器(默认存在的)
     */
    public Car(){
        System.out.println("无参数构造器被触发执行~~~");
    }
}

输出结果:
在这里插入图片描述

②.有参数构造器:定义构造器的时候加上参数,可以为定义的对象的成员变量进行初始化。
实例:

Car c = new Car("宝马X3", 37.89); //调用有参数构造器

//有参数构造器结构
public Car(String name, double price){
        System.out.println("有参数构造器被触发执行~~~");
        System.out.println(this);
        this.name = name;
        this.price = price;
    }

调用结果:
在这里插入图片描述

❗❗注意事项

①. 只要是类定义出来了不管写不写都是默认都有无参数构造器的,都是可以直接调用的。
❗②. 如果自己后来又定义了有参数构造器,那么无参数构造器就会被“覆盖”掉,无法再次调用系统默认生成的无参数构造器了,如果还想要调用无参数构造器只能自己重新写一个了。

t h i s this this关键字

本质:this关键字本质就是代指当前访问对象的地址

作用

可以出现在构造器与方法之中用来指代当前对象的成员。
实例:

//调用有参数构造器并且打印c对象的地址
Car c = new Car("宝马X3", 37.89);
System.out.println(c);

//Car的有参数构造器
public Car(String name, double price){
        System.out.println("有参数构造器被触发执行~~~");
        System.out.println(this);		//打印this中保存的内容
        this.name = name;
        this.price = price;
    }

运行结果:
在这里插入图片描述
可以看到c中保存的地址与this中保存的地址相同。

应用场景

当传入参数与类的成员变量同名的时候,直接初始化等操作可能因为变量的定义域问题而覆盖掉导致无效操作。

//下面代码表面上好像是初始化了
//但是因为变量定义域的问题,这里的赋值是对于传入参数的赋值,并没有涉及到类的成员变量
 public Car(String name, double price){
        name = name;
        price = price;
    }

//用this来指代当前的对象
 public Car(String name, double price){
        this.name = name;
        this.price = price;
    }
//这才是将传入的name与price赋值给对象中的name与price

在成员方法中如果想要访问当前对象的成员则与上面同理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/416838.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

离线安装rancher2.4管理K8S集群并部署服务

在一些公司安装K8S集群或者rancher等软件,都是没有网络的,在这种情况下,需要自己想办法安装!这里给大家介绍在没有网络的情况下,怎么安装rancher和K8S集群,最后在用rancher管理K8S集群部署服务!…

UDP的多点通信

文章目录一. 网络属性二. 多点通信**2.1. 单播**2.2. 广播2.2.1 广播的发送端流程 (类似UDP客户端)2.2.2 广播的接收端流程(类似UDP服务器)2.3. 组播2.3.1组播的发送端流程 (类似UDP客户端)2.3.2组播的接收端流程(类似UDP服务器)2.3.3 加入多播组示例代码一. 网络属性 setsock…

对 FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP 的实践

对 FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP 的实践 前言 昨天编写了一篇博文: Activity启动模式与栈的使用小结,里面参考了下面这篇文章: Android面试官装逼失败之:Activity的启动模式 对里面关于 FLAG_ACTIVITY_CLEAR_TOP| F…

什么是开源?

从开源空间(Open Source Space)说起开源空间(Open Source Space):一个边界封闭,内部开放的空间。在这个空间里,人们围绕数字公共产品(服务),进行开放式协作。…

零售数据分析之操作篇13:图表联动分析

各位数据的朋友,大家好,我是老周道数据,和你一起,用常人思维数据分析,通过数据讲故事。 上期回顾与作业讲解 上一讲讲了子查询的应用场景,即有一个结果集(ds2)的筛选条件是来自另外…

【C++】继承---上(继承的引入及使用详解、切片赋值和作用域)

前言: 我们在学习C的第一节课就了解到C是一门面向对象的语言,面向对象的语言有三大特性: 封装、继承、多态 此前我们学习了封装,比如模拟实现vector,string或者迭代器等,不仅有利于我们的维护和管理&#…

【uniapp】Vue3版本项目出现Proxy代理对象无法正常取值问题解决

习惯了使用Vue2版本的uniapp项目,直到后来想升级版本,改用Vue3版本就会遇到一些无法正常取值(访问属性)问题,其中最显著问题就是Proxy代理造成的 在我们用浏览器调试的时候,遇到如同下图这样,出…

Spring Boot 项目如何实现上传头像功能?

目录 设计思路 效果展示 ​编辑 分析 前后端交互接口 请求 响应 代码实现和详细注释 数据库设计 自定义资源映射 前后端交互 客户端开发 服务器开发 设计思路 效果展示 分析 实现这个功能只要弄清楚以下几点即可: 怎么将头像数据发送给服务器&#x…

九龙证券|服务器龙头获资金连续抢筹,尾盘主力抢筹前期大热门股

今天,核算机职业取得主力大手笔抢筹。 今天主力资金净流出53.89亿元,其间创业板净流出3.19亿元,沪深300成份股净流出7.61亿元。 申万一级职业中,今天有19个职业上涨,传媒职业接连两日均涨近5%,居首位&…

stm32当中GPIO输出知识点汇总(GPIO的八种模式及其原理)

一、GPIO工作模式. 1. 四种输入模式 GPIO_Mode_IN_FLOATING 浮空输入模式 GPIO_Mode_IPU 上拉输入模式 GPIO_Mode_IPD 下拉输入模式 GPIO_Mode_AIN 模拟输入模式 2. 四种输出模式 GPIO_Mode_Out_OD 开漏输出模式 GPIO_Mode_Out_PP 推挽输出模式 GPIO_Mod…

【剑指offer-C++】JZ79:判断是不是平衡二叉树

【剑指offer-C】JZ79:判断是不是平衡二叉树题目描述解题思路题目描述 描述:输入一棵节点数为 n 二叉树,判断该二叉树是否是平衡二叉树。 在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树。 平衡二叉树…

Nginx实现负载均衡的多种方法演示

文章目录前言一、配置讲解1.1 轮询算法(默认)1.2 IP_HASH算法1.3 Weighted算法1.4 URL_HASH算法总结前言 Nginx是一款高性能的Web服务器和反向代理服务器,它具有占用内存小、并发处理能力强、稳定性高等优点,适用于高并发、高负载的Web应用场…

pandas之DataFrame基础

pandas之DataFrame基础1. DataFrame定义2. DataFrame的创建形式3. DataFrame的属性4. DataFrame的运算5. pandas访问相关操作5.1 使用 loc[]显示访问5.2 iloc[] 隐式访问5.3 总结6. 单层索引和多层级索引6.1 索引种类与使用6.2 索引相关设置6.3 索引构造6.4 索引访问6.5 索引变…

BGP选路实验(重点是各种策略)

实验拓扑 基础配置(完成IGP的配置) 首先完成各 个接口IP地址,环回接口地址等一些基本配置,实现直连之间的互相通信 在R4,R5上的配置类似 [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 192.168.1.1 24 [Huawei-GigabitEthernet0/0/0]int g0/0…

低代码是什么意思

此前,阿里云智能总裁张建锋曾在钉钉发布会上表示:“未来的软件开发一定是碎片化的,低代码开发将成为未来几年的行业关键词。”这句话表明了低代码在过去两年的火爆程度,预示着低代码有望成为软件领域的新风口。 那低代码是什么意…

chatgpt智能提效职场办公-excel表格6-6-6格式怎么设置(数字按照三个数字一组进行分隔)

chatgpt智能提效职场办公-excel表格6-6-6格式怎么设置(数字按照三个数字一组进行分隔) 作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 在Excel表格中设置6-6-…

移除元素(数组篇)

27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中…

004:Mapbox GL设定不同的style,更换底图形态

第004个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中设定不同的style,更换底图形态 。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共70行)相关API参考:专栏目标示例效果

「业务架构」需求工程—需求规范(第3部分)

将用户和系统需求记录到文档中。需求规范它是将用户和系统需求写入文档的过程。需求应该是清晰的、容易理解的、完整的和一致的。在实践中,这是很难实现的,因为涉众以不同的方式解释需求,并且在需求中经常存在固有的冲突和不一致。正如我们之…

GraphInsight 拓扑图体验

蚂蚁数据可视化 | G6📚前言📚使用说明📕数据规则节点的属性📚前言 蚂蚁数据可视化 G6 图可视化引擎是一个简单、易用、完备的图可视化引擎,它在高定制能力的基础上,提供了一系列设计优雅、便于使用的图可视…