java中this的n种使用方法
作者:等你归去来 发布时间:2023-12-23 13:13:23
标签:java,this,使用
this可能是几乎所有有一点面向对象思想的语言都会引用到的变量,java自然不例外。只是,this有多少种用法,我也不知道了,让我们来see see。
由简入奢! 易。
来个例子说明下:
public class DebugerTest {
public static void main(String[] args) {
UserExample samp1 = new UserExample("amy");
System.out.println("who are u? ");
System.out.println(samp1.whoAreU());
System.out.println("intro yourself?");
System.out.println(samp1.introYourself());
}
}
class UserExample {
private String name;
private Integer age;
private MyDoll myDoll;
public UserExample() {
this(null);
}
// 3. 调用本类的其他构造方法
public UserExample(String name) {
this(name, -1);
}
public UserExample(String name, Integer age) {
this.name = name;
this.age = age;
this.myDoll = new MyDoll("prize");
}
// 2. 调用本类属性
public void changeMyName(String name) {
this.name = name;
}
public void changeMyAge(Integer age) {
this.age = age;
}
public String whoAreU() {
return "I am " + name + ". ";
}
public String haoOldAreU() {
return "i am " + age + " old.";
}
// 1. 调用本类方法
public String introYourself() {
return this.whoAreU() +
this.haoOldAreU() +
"\r\n whoAmI@ " + this.myDoll.whoAmI() +
"\r\n whoAreSuper@ " + this.myDoll.whoAreSuper();
}
class MyDoll {
private String name;
public MyDoll(String name) {
this.name = name;
}
public void changeMyName(String name) {
this.name = name;
}
// 5. 隐藏式的调用
public String whoAmI() {
return whoAreU();
}
public String whoAreU() {
return "I am a Doll, my name is " + name + ". ";
}
// 4. 调用父类的或指定的其他的类的同名方法
public String whoAreSuper() {
return "super is " + UserExample.this.whoAreU() + ". ";
}
}
}
1. 调用本类方法,表达更清晰
public String introYourself() {
return this.whoAreU() + this.haoOldAreU();
}
2. 调用本类属性,基本功亮出来
public void changeMyName(String name) {
this.name = name;
}
3. 调用本类的其他构造方法,更灵活
public UserExample(String name) {
this(name, -1);
}
4. 调用父类的或指定的其他的类的同名方法,为避免歧义而生的方法
public String whoAreSuper() {
return "super is " + UserExample.this.whoAreU() + ". ";
}
5. 隐藏式的调用,为了写代码方便(更常用),不指定范围,java会在全类范围内向上查找变量或方法
public String whoAmI() {
return whoAreU();
}
以上样例输出结果如下所示:
this是个基本的关键字,我们平时也一直在用,只是也不一定所有同学都清楚怎么用。
总结
以上所述是小编给大家介绍的java中this的n种使用方法网站的支持!
来源:https://www.cnblogs.com/yougewe/p/9468960.html


猜你喜欢
- 题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321 示例
- 本文实例为大家分享了安卓Button按钮的四种点击事件,供大家参考,具体内容如下第一种:内部类实现 1.xml里面先设置Button属性&l
- 如论实施敏捷的团队,或者实施 DevOps 的团队,通过自动化测试提高测试效率和软件质量都是其共同的选择。UI 自动化测试是自动化化测试当中
- 前言在我们日常的开发过程中通过打印详细的日志信息能够帮助我们很好地去发现开发过程中可能出现的Bug,特别是在开发Controller层的接口
- C#中Description特性主要用于枚举和属性,方法比较简单,记录一下以便后期使用。扩展类DescriptionExtension代码如
- 前言android 防止重复点击是一个非常常见的需求,每个人都有各自的点击事件的处理习惯,有的喜欢使用匿名内部类,有的activity、fr
- 本文分析了Android实现换肤的两种思路。分享给大家供大家参考,具体如下:这里来了解换肤实现及不同方案的差异和使用场合。一、从功能上划分1
- 一、概述在上一篇的叙述中,我们通过图层的方式完成了图片颜色的填充(详情请戳:Android不规则图像填充颜色小游戏),不过在着色游戏中更多的
- 效果 使用compile 'site.gemus:openingstartanimation:1.0.0' //在gra
- Java-关键字:final1 .final可以用来修饰的结构:类、方法、变量2.final 用来修饰一个类:此类不能被其他类所继承比如:S
- 线程启动:1.start() 和 run()的区别说明start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法。sta
- 前言C# 语言是在2000发布的,至今已正式发布了7个版本,每个版本都包含了许多令人兴奋的新特性和功能更新。同时,C# 每个版本的发布都与同
- 这篇文章主要介绍了springboot 定时任务@Scheduled实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
- 本文实例为大家分享了Unity实现3D循环滚动效果展示的具体代码,供大家参考,具体内容如下然后通过SetDepthAndPosition这个
- 在最近的项目中有个需求是这样的:入参封装成JSON,EXAMPLE:{ "uuid": "iamauuid&q
- Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个。虽然JDK自带了XML处理类库,但是相对来说比较
- 概述对List进行分组是日常开发中,经常遇到的,在JDK 8中对List按照某个属性分组的代码,超级简单。package test;impo
- 看到这个标题,相信不少人会感到疑惑,回忆你们自己的场景会发现,在Spring的项目中很少有使用多线程处理任务的,没错,大多数时候我们都是使用
- C#重绘checkbox生成滑动开关,供大家参考,具体内容如下通过调用checkbox控件的paint事件,在重绘事件里判断checked属
- 一:想都不用想的,有图有真相,看着爽了,在看下面源码二:实例源码分析①:首先定义接口package com.demo.tools.view;