Java中this的用法

2023-05-16

一、this关键字

1.this的类型:哪个对象调用就是哪个对象的引用类型

二、用法总结

1.this.data; //访问属性

2.this.func(); //访问方法

3.this(); //调用本类中其他构造方法

三、解释用法

1.this.data

这种是在成员方法中使用

让我们来看看不加this会出现什么样的状况

class MyDate{
    public int year;
    public int month;
    public int day;

    public void setDate(int year, int month,int day){
        year = year;//这里没有加this
        month = month;//这里没有加this
        day = day;//这里没有加this
    }
    public void PrintDate(){
        System.out.println(year+"年 "+month+"月 "+day+"日 ");
    }
}
public class TestDemo {
    public static void main(String[] args) {
        MyDate myDate = new MyDate();
        myDate.setDate(2000,9,25);
        myDate.PrintDate();
        MyDate myDate1 = new MyDate();
        myDate1.setDate(2002,7,14);
        myDate1.PrintDate();
    }
}

我们想要达到的预期是分别输出2000年9月25日,2002年7月14日。

而实际输出的结果是

而当我们加上this时

class MyDate{
    public int year;
    public int month;
    public int day;

    public void setDate(int year, int month,int day){
       this.year = year;
       this.month = month;
       this.day = day;
    }
    public void PrintDate(){
        System.out.println(this.year+"年 "+this.month+"月 "+this.day+"日 ");
    }
}
public class TestDemo {
    public static void main(String[] args) {
        MyDate myDate = new MyDate();
        myDate.setDate(2000,9,25);
        myDate.PrintDate();
        MyDate myDate1 = new MyDate();
        myDate1.setDate(2002,7,14);
        myDate1.PrintDate();
    }
}

 就实现了赋值的功能,为了避免出现差错,我们建议尽量带上this

2.this.func()

这种是指在普通成员方法中使用this调用另一个成员方法

class Student{
    public String name;
    public void doClass(){
        System.out.println(name+"上课");
        this.doHomeWork();
    }
    public void doHomeWork(){
        System.out.println(name+"正在写作业");
    }
}
public class TestDemo2 {
    public static void main(String[] args) {
        Student student = new Student();
        student.name = "小明";
        student.doClass();
    }
}

运行结果:

 (3)this()

这种指在构造方法中使用this调用本类其他的构造方法

这种this的使用注意以下几点

1.this只能在构造方法中调用其他构造方法

2.this要放在第一行

3.一个构造方法中只能调用一个构造方法

运行结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中this的用法 的相关文章

  • SLF4J - Logback:如何在运行时配置记录器?

    我们在项目中使用 LogBack 我想根据一些数据库值配置记录器 即如果某个数据库值设置为 true 则记录器应同时使用文件和数据库附加程序 如果为 false 则记录器必须仅使用数据库附加程序 我还想保留使用静态最终记录器 因此我不会在每
  • 如何在 Spring Boot 1.4 中自定义 Jackson

    我一直无法找到如何使用的示例Jackson2ObjectMapperBuilderCustomizer java在spring boot 1 4中自定义Jackson的功能 boot 1 4 中自定义 Jackson 的 doco http
  • 使用 Java NIO 直接访问 Windows 磁盘

    我正在使用一个使用 Java NIO 的库来直接将文件映射到内存 但我在直接读取磁盘时遇到问题 I can直接使用读取磁盘FileInputStream与 UNC 合作 例如 File disk new File PhysicalDrive
  • 通过 JDBC 调用 Sybase 存储过程时结果集为空

    我正在调用一个通过 JDBC 返回多个结果集的 Sybase 存储过程 我需要获取一个特定的结果集 其中有一列名为 结果 这是我的代码 CallableStatement cs conn prepareCall sqlCall cs reg
  • Eclipse 说“更新 Android Developer Toolkit”

    我不知何故弄乱了我的 Eclipse 和 Android 设置 我不知道如何修复它 问题症状如下 在 首选项 gt Android 中 我尝试选择 android sdk linux 的位置 选择时出现错误 此 Android SDK 需要
  • 将对象列表传递给 Freemarker 然后循环

    我已经熟悉了 FreeMarker 一个 Java 模板引擎 我已经能够通过哈希映射将对象传递给模板引擎了 这样就可以了 但是 一旦我尝试将任何类型的多个对象集传递给 FreeMarker 它就会给我一个 freemarker templa
  • Spring 可以理解 @Inject 替换 Weld 作为 JSR-299 实现吗?

    我从几个网页中注意到 Spring 3 0 显然支持来自 JSR 330 的 Inject 由于我们确实希望在 Web 应用程序和独立应用程序的库中使用 JSR 299 语法进行依赖项注入 并且有 Weld 的替代方案 因此如果 Sprin
  • 将图像缩略图上传到服务器,而不上传整个图像

    据我所知 我在这里问的是不可能的 但我想无论如何我都会问 以防我遗漏了什么 假设您想让用户上传 JPG 图像 并且这些图像被缩放为较小的图标 并且原始图像始终被丢弃并且不再需要 有没有什么方法可以在大多数现代浏览器中普遍使用 让用户选择硬盘
  • Android 背景 + 文本 + 按钮图标

    我想要一个图像设置为文本的背景 并在文本的左侧设置一个图标 在iPhone中非常简单 但不知道如何在Android上做到这一点 调整按钮的大小并保持图标 文本的位置和距离正确 iPhone 安卓我有这个 xml代码是
  • UiBinder 中的 gwt 按钮

    我需要创建一个按钮 所以它是一个带有图像的按钮 gwt with UiBinder 但我不确定如何进行 这是我的ui xml code
  • 在 Eclipse 中导航 Java 调用堆栈

    在调试器中像GDB http sources redhat com gdb 当您在断点处停止时 您可以轻松地向上移动调用堆栈并检查相关的源和堆栈帧数据 在 Eclipse 中如何做到这一点 In the 调试视角 http www ibm
  • Spring @Transactional 并发

    class MyService 公共无效a 同步 某个键 b Transactional 传播 传播 REQUIRES NEW 公共无效b 数据库工作吗 除非您使用代码编织 否则这是行不通的 Spring处理事务的默认方式是通过AOP代理
  • 为什么 Libgdx 的 Table 不接受缩放操作?

    我在 libgdx 库中使用 scene2d 在游戏中创建一些 UI 我使用了一个表格 我想在用户触摸时采取一些缩放操作以使按钮触摸有意义 当我使用任何其他 Actor 类型 例如 Group 并为其提供缩放操作时 它可以工作 但不能工作表
  • Spring Data elasticsearch @Query 注解嵌套对象

    我有两节课 Document public class PracticeQuestion private int userId private List
  • Java字符串中的字符数[重复]

    这个问题在这里已经有答案了 可能的重复 Java 使用unicode上划线显示平方根时字符串的长度 https stackoverflow com questions 7704426 java length of string when u
  • 如何在其他窗口之上生成独立的 JFileChooser 对话框?

    Like 其他一些人 https stackoverflow com questions 4161207 javavm windows 7 64bit jfilechooser not showing dialog box谁问过类似的问题
  • 使用 colt java lib 时出现“矩阵太大”异常

    我正在使用 cern colt matrix lib 进行稀疏矩阵计算 但似乎我一直遇到此错误 线程 main 中的异常 java lang IllegalArgumentException 矩阵太大 我认为这是因为构造函数在 nrows
  • 如果可能,将 jFrame 输出到第二台显示器

    我在 Java 中的 Swing 上有一个 jFrame 我希望它输出到第二个监视器 如果该监视器存在 我尝试过这个 通过this http download oracle com javase 6 docs api java awt Gr
  • 使用 JPA 和 Hibernate 时 DISTINCT 如何工作

    DISTINCT 在 JPA 中使用什么列 是否可以更改它 以下是使用 DISTINCT 的 JPA 查询示例 select DISTINCT c from Customer c 这没有多大意义 不同的列是基于哪一列 它是否在实体上指定为注
  • 如何使用SAXReader解析GPX文件?

    我正在尝试解析GPX file http en wikipedia org wiki GPS eXchange Format 我用 JDOM 尝试过 但效果不太好 SAXBuilder builder new SAXBuilder Docu

随机推荐

  • 虚拟桌面技术的初步探讨

    文章标题 虚拟桌面技术的初步探讨 文章作者 newjueqi 作者邮箱 zengjiansheng1 64 126 com 作者QQ号 190678908 编写语言 VC 43 43 6 0 操作平台 XP SP2 作者声明 感觉到这是一种
  • 一个网游盗号木马的汇编源码分析

    文章标题 xff1a 一个网游盗号木马的汇编源码分析 文章作者 newjueqi 作者邮箱 zengjiansheng1 64 126 com 作者QQ号 190678908 使用工具 IDA 操作平台 XP SP2 作者声明 今年7月份学
  • miranda分析报告

    文章标题 miranda分析报告 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 作者声明 欢迎转载文章 xf
  • Java线程类小结(附思维导图)

    文章标题 Java 线程类小结 xff08 附思维导图 xff09 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjue
  • Java集合类小结(思维导图版)

    文章标题 Java 集合类小结 思维导图版 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境 JDK
  • 简单文件分割合并器的Java实现

    文章标题 简单文件分割合并器的 Java 实现 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境 JD
  • 层级菜单动态效果的实现

    文章标题 层级菜单动态效果的实现 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境 Dreamweav
  • 简单实现邮件系统的界面功能

    文章标题 简单实现邮件系统的界面功能 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境 Dreamwe
  • linux多线程编程书籍推荐:linux大牛之路从这几本书开始总结

    linux多线程编程是指基于Linux操作系统下的多线程编程 xff0c 包括多任务程序的设计 xff0c 并发程序设计 网络程序设计 xff0c 数据共享等 Linux系统下的多线程遵循POSIX线程接口 xff0c 称为pthread
  • 动态增加附件上传文件框的实现

    文章标题 动态增加附件上传文件框的实现 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程环境 Dreamw
  • app后端设计(12)--图片的处理

    app上线后 xff0c 不断接受用户的反馈 xff0c 于是 xff0c 反馈非常差的情况下 xff0c 都会有app的改版 一旦app的改版 xff0c 都会有比较大的UI改动 xff0c 一改动UI xff0c 那么图片的尺寸也就必须
  • XML学习笔记(附上思维导图)

    文章标题 XML 学习笔记 附上思维导图 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 作者声明 欢迎转载文
  • 搜索文本内容——Java代码的简单实现(修改版)

    文章标题 搜索文本内容 Java 代码的简单实现 修改版 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 编程
  • 用反射和内省技术实现简单SpringIOC

    文章标题 用反射和内省技术实现简单 SpringIOC 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newjueqi 作者声
  • 在JSP中用自定义标签实现集合的遍历——山寨版c:foreach

    文章标题 在 JSP 中用自定义标签实现集合的遍历 山寨版 lt c foreach gt 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 在 JSTL 中 xff0c 标签
  • 自定义标签学习笔记

    文章标题 自定义标签学习笔记 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者声明 本人水平有限 xff0c 失误之处 xff0c 敬请各位指出 首先对 JSP 中标签的各
  • 练习瑜伽一个半月的感受(附思维导图)

    文章标题 练习瑜伽一个半月的感受 xff08 附思维导图 xff09 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者博客 http blog csdn net newju
  • 一套适合理工类学科的学习法——《千万别恨数学》读后感

    文章标题 一套适合理工类学科的学习法 千万别恨数学 读后感 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 编程环境 JDK 1 6 0 01 作者声明 欢迎转载文章 xff0
  • Java Web开发中路径问题小结

    文章标题 Java Web 开发中路径问题小结 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者声明 本人水平有限 xff0c 失误之处 xff0c 敬请各位指出 Java
  • Java中this的用法

    一 this关键字 1 this的类型 xff1a 哪个对象调用就是哪个对象的引用类型 二 用法总结 1 this data 访问属性 2 this func 访问方法 3 this 调用本类中其他构造方法 三 解释用法 1 this da