java this 三种用法

1.区分成员变量和局部变量

public class ThisDemo {public static void main(String[] args) {Student s=new Student("小明明",20);System.out.println(s);}}class Student{String name;int age;public Student(String name, int age) {//注:没有加thisname = name;age = age;}@Overridepublic String toString() {return "Student [ name=" + name + ", age=" + age +"]";}}

打印结果:Student [ name=null, age=0]
赋值没有成功,说明:name(局部变量)=name(局部变量);
而不是name(成员变量)=name(局部变量);public Student(String name, int age) {//注:可以使用this进行区分成员变量和局部变量this.name = name;this.age = age;
}

打印结果:Student [ name=小明明, age=20]
这样子就可以赋值成功啦

2.代表当前对象

public static void main(String[] args) {Student s=new Student("小明明",20);System.out.println(s);}//为什么加入this后就可以区分呢?因为this当前代表的是s实例(对象)相当于s.name="小明明";s.age="20";//再可以理解如下this.name=实例(对象).name="小明明"

3.构造器与构造器之间的调用

Student再添加两个构造器,修改后如下:

    class Student{String name;int age;int id;public Student(int id,String name, int age) {this.id = id;this.name = name;this.age = age;}public Student(String name, int age) {this.name = name;this.age = age;}public Student(String name) {this.name = name;}@Overridepublic String toString() {return "Student [ id=" + id + ", name=" + name + ", age=" + age +"]";}}

//构造器用法-->this();跟函数一样()中可以写参数
构造器调用一般是这样子用的.不同的构造器中存在相同代码.为了复用性。可以在参数少的构造器中调用参数多的构造器,如下:

class Student{String name;int age;int id;public Student(String name, int age, int id) {this.name = name;this.age = age;this.id = id;System.out.println("构造器3已调用");}public Student(String name, int age) {this(name,age,0);System.out.println("构造器2已调用");}public Student(String name) {this(name,0);//参数不足,就使用参数默认值补全System.out.println("构造器1已调用");}@Overridepublic String toString() {return "Student [ id=" + id + ", name=" + name + ", age=" + age +"]";}}

测试结果1public static void main(String[] args) {Student s=new Student("小明明");System.out.println(s);}   构造器3已调用构造器2已调用构造器1已调用Student [ id=0, name=小明明, age=0]测试结果2public static void main(String[] args) {Student s=new Student("小明明",20);System.out.println(s);}构造器3已调用构造器2已调用Student [ id=0, name=小明明, age=20]总结:这样子可以在参数最多的构造器中编写代表。其他构造器负责调用参数最多的那个构造器就好了

this的三种常见用法介绍完毕!怎么样很容易吧.

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

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

相关文章

kendo treeview 修改节点显示值_VBA学习笔记60-1: Treeview控件

学习资源:《Excel VBA从入门到进阶》第60集 by兰色幻想本节讲Treeview控件。TreeView控件是以树形结构显示数据的控件。利用TreeView控件,可以设计出树形结构图,便于用户选择不同的项目。总公司人事结构是一级节点,公司一、公司二…

Java之路:this关键字的用法

(1)this代表当前对象的一个引用。所谓当前对象,指的是调用类中方法或属性的那个对象。 最经常使用this关键字的情况,是在对象的一个属性被方法或构造器的参数屏蔽时,需要调用这个被屏蔽的属性,如下&#xf…

跑分cpu_一加8T现身跑分网站:CPU正式敲定 10月15日见

一加8T将于10月15日发布(海外版将于10月14日发布),现在关于一加8T的核心规格确认。今天,一加8T现身GeekBench跑分网站,确认该机搭载的是高通骁龙865旗舰处理器,而非高通骁龙865 Plus。与搭载高通骁龙865的一加8相比,一…

初识 react

<!--学 react 的原因&#xff1a;1. 原生 js 操作 DOM 繁琐、效率低&#xff0c;每次都要去获取 DOM每次操作 DOM 都会引起页面的重绘重拍2. 原生 js 没有组件化&#xff0c;代码复用率低react 的特点&#xff1a;1. 采用组件化模式&#xff0c;声明式编码来提高开发效率以及…

Java中static作用及用法详解

1.1概述&#xff1a; static是静态修饰符&#xff0c;什么叫静态修饰符呢&#xff1f;大家都知道&#xff0c;在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的&#xff0c;而所谓静态就是指在编译后所分配的内存会一直存在&#xff0c;直到程序退出内存才会释…

发那科攻丝回退参数_乐享:发那科MF选配功能诊断小结

小编微信&#xff1a;shukong99999乐享数控&#xff0c;专注数控电气乐享那科选项功能小结大家好&#xff0c;我是乐享数控&#xff0c;好久不见&#xff0c;今天起&#xff0c;给大家多总结&#xff0c;相互交流进步。1发那科MF选项功能诊断小结在调试过程中&#xff0c;除了M…

jsx 语法规范

一、插值语法 – {} const str hello react; const VDOM <h1>{str}</h1>; // 注意&#xff1a;是一对大括号 {} 和 Vue( {{}} ) 区分开二、给标签添加类名 – className "" | {} /*css:.active {background-color: red;} */const VDOM <h1 class…

Java中static关键字的作用与用法

写在前面 这篇总结一下Java中static关键字的作用与用法。 参考文献如下&#xff1a; java]static关键字的四种用法Java中static关键字的作用Java中的static关键字解析Java中static关键字的作用 下面直接分析static关键字的四种基本用法。 修饰成员变量 平时的使用当中&am…

matlab怎么画二维热力图_[原创]Day3.箱线图和热力图的绘制

使用Matplotlib和Seaborn进行绘制箱线图和热力图。箱线图箱线图(boxplot)又称盒式图&#xff0c;可以显示数据的分散情况&#xff0c;由五个数值点组成&#xff1a;最大值(max)-上界、最小值(min)-下界、中位数(median)和上下四分位数(Q1, Q3)。它可以帮我们分析出数据的差异性…

java中的Static、final、Static final各种用法

前言 对Static、final、Static final这几个关键词熟悉又陌生&#xff1f; static 加载&#xff1a;static在类加载时初始化&#xff08;加载&#xff09;完成 含义&#xff1a;Static意为静态的&#xff0c;但凡被static 修饰说明属于类&#xff0c;不属于类的对象。 可修饰…

vue图片点击超链接_10秒钟,告别ppt中难看的超链接

我相信大多数同学在创建超链接的时候都很疑惑为什么字体颜色会变成蓝色&#xff0c;且下方会出现一条横线&#xff0c;能不能把横线去掉或者改变颜色呢&#xff1f;零壹君回答你&#xff1a;能&#xff01;快来跟零壹君一起学习吧&#xff01;选中文字—点击【插入】—【超链接…

组件的 props

一、函数式组件的 props function Demo (props) { // 由于函数式组件没有自己的 this 必须指定 propsreturn (<div><ul><li>{props.name}</li><li>{props.age}</li></ul></div>) }// 抽离挂到组件上面的 props 变量 const pe…

java中static、final 和 static final之间的区别

java中static、final 和 static final之间的区别 static可以修饰&#xff1a;全局属性&#xff0c;方法&#xff0c;代码块&#xff0c;内部类&#xff08;静态内部类或嵌套内部类&#xff09; 由于静态属性和方法是属于该类的所有对象的&#xff0c;所以可以用类名.静态属性…

arr数组怎么取值_记一次思否问答的问题思考:Vue为什么不能检测数组变动

作者 | hfhan来源 | https://segmentfault.com/a/1190000015783546问题描述&#xff1a;Vue检测数据的变动是通过Object.defineProperty实现的&#xff0c;所以无法监听数组的添加操作是可以理解的&#xff0c;因为是在构造函数中就已经为所有属性做了这个检测绑定操作。但是官…

使用 ref 对已渲染到页面的节点进行标记

一、字符串形式的 ref <input type"text" /*给标签打上标记 ipt */ ref"ipt" />拿到标记的节点&#xff0c;对其进行操作 handleClick () > {console.log(this);// 用 ref 标记了的标签&#xff0c;都会保存在 refs 里面console.log(this.refs…

JAVA之private修饰成员方法默认是final型的?

Java之private修饰成员方法默认是final型的&#xff1f; private修饰的成员方法默认是final型的&#xff1f; 用fianl声明的成员方法是最终方法&#xff0c;最终方法不能被子类覆盖&#xff08;重写&#xff09; 从表面上看这个命题是错误的&#xff0c;private访问修饰符修饰…

python高阶函数教学_Python 简明教程 --- 16,Python 高阶函数

对于那些快速算法&#xff0c;我们总是可以拿一些速度差不多但是更容易理解的算法来替代它们。—— Douglas Jones目录高阶函数一般以函数为参数。本节我们介绍Python 中三个方便的高阶函数&#xff0c;分别是&#xff1a;mapreducefilter如果你了解过分布式系统框架---Hadoop&…

react 组件传值

一、父传子 - 函数式组件 function Father (props) {const {money} props; // 解构render() {<div><Child getSonMoney{money}/></div>} }function Child (props) {return (<div><p>我爸爸现在有存款&#xff1a;${props.getSonMoney}</p&g…

深入理解static关键字

文章目录1、static存在的主要意义2、static的独特之处3、static应用场景4、静态变量和实例变量的概念5、静态变量和实例变量区别【重点常用】6、访问静态变量和实例变量的两种方式7、static静态方法8、static静态代码块9、static变量与普通变量区别10、静态内部类11、静态导包1…

kafka数据不丢失不重复_如何配置 KAFKA 使其消息不会丢失

不可靠的KAFKA这里的不可靠是指代KAFKA其设计之初就为高性能而设计&#xff0c;其是允许消息丢失的&#xff0c;但经过多个版本的升级之后&#xff0c;通过KAFKA的相关配置&#xff0c;我们可以将其作为可靠的队列(不丢消息的队列)。在本文里&#xff0c;不会具体列出要改哪个参…