this关键字---》2

news/2025/2/10 13:30:53/文章来源:https://www.cnblogs.com/fanxn/p/18707619

三.this的用法:

1.在构造器中调用另一个构造器
(注意:该语句要在第一条,只能在构造器中使用)
2.调用成员方法: this.方法名(参数列表)
3.不能再类外部使用
4.用于访问类的属性,是有就近原则在的
总之,this可以用来访问属性、成员方法和构造器
5.this用来区分局部变量和属性

自己演示上述用法的代码:


public class ThisDetail01 {public static void main(String[] args) {T c = new T();c.f1();}
}class T{//属性String name="xiao";int age=18;//构造器public T(){this("xx",16);System.out.println("1.调用构造器");System.out.println("T()构造器被调用");System.out.println("===============================");}public T(String name,int age){System.out.println("T(String name,int age)构造器被调用");System.out.println("name="+name+" age="+age);}//成员方法public void f1(){String name="xiaogou";int age=17;System.out.println("2.调用方法");System.out.println("方法f1()被调用");//第一种方法f2();//第二种方法:this.f2();System.out.println("===============================");System.out.println("3.调用属性");System.out.println("name="+this.name+" age="+this.age);System.out.println("name="+name+" age="+age);}public void f2(){System.out.println("方法f2()被调用");}
}


如图,若不将调用构造器的语句放在方法的第一条,就会报错

关于我上次的疑问:

进一步理解
这个两个name 应该都是形参(局部变量)中的name,根据就近原则,和属性中的name 没有关系

一个对象,对应一个类,this在类中的操作就相当于是在给对象操作,也就是:对象是类的实例

练习:
定义Person5类,用compareTo方法比较两者name和age是否相等,用TestPerson类演示

public class TestPerson {public static void main(String[] args) {Person5 p1=new Person5("a",10);Person5 p2=new Person5("a",10);System.out.println("p1和p2比较的结果  "+p1.compareTo(p2));}
}class Person5{String name;int age;public Person5(String name, int age) {this.name = name;this.age = age;}public  boolean compareTo(Person5 p){return this.name.equals(p.name)&&(this.age==p.age);}
}

public boolean compareTo(Person5 p){ return this.name.equals(p.name)&&(this.age==p.age); } }
返回值是boolean类型,可以用return来判断
this指的是p1的,p指的是p2的,调用p1对象的compareTo方法来进行比较

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

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

相关文章

DeepSeek是什么?

DeepSeek是一家专注通用人工智能(AGI)的中国科技公司,主攻大模型研发与应 用。 • DeepSeek-R1是其开源的推理模型,擅长处理复杂任务且可免费商用。 AI + 国产 + 免费 + 开源 + 强大 Deepseek可以做什么? 直接面向用户或者支持开发者,提供智能对话、文本生成、语义理解…

DeepSeek特点

https://www.deepseek.com/DeepSeek是一款功能强大的AI模型,它具有多个显著的特点,以下是对DeepSeek特点的详细归纳: 一、强大的技术能力‌推理能力‌:DeepSeek在推理能力上与国际领先的模型如OpenAI的GPT-4相媲美,能够在解决数学难题、分析复杂的法律条文等方面展现出强大…

manim边学边做--通用变换

在 Manim 动画制作中,Transform、TransformFromCopy、ReplacementTransform和Restore是四个通用的对象变换动画类。 这几个类能够实现从一个对象到另一个对象的平滑过渡、复制并变换、直接替换以及状态恢复等多种效果。Transform:将一个Mobject平滑地变换为另一个Mobject Tra…

执行abp命令时,出现死循环解决方案

今天把长时间不用的ABP Cli进行升级 将原有:volo.abp.cli卸载。安装了新的 Volo.Abp.Studio.Cli。 任何执行abp new Acme.BookStore -m none --theme leptonx-lite -csf创建项目。 于是出现以下问题(Abp找不到对应的包):分析原因 本人是设置过Nuget.cofig文件中 全局包文件…

Git: submodule 子模块简明教程

序 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个父项目的库。 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。 Git 通过子模块来解决这个问题。 子模块允许你将一个 Gi…

内外网文件交换与数据共享系统:企业级跨网高效传输解决方案

一、产品介绍 产品定位:可以实现在企业内外网物理隔离情况之下,进行文件的安全交换(导入文件、刻录文件)、进行在线审批流程、实现在线审计、并对传输文件进行实施病毒查杀。 产品介绍:内外网安全文件交换系统是企业内部实现高效文件传输的管理系统: 1.支持用户通过光盘导…

EXCEL根据字体颜色排序 ,颜色相同的集中显示在最上面

自定义排序--选择指定列--选择 字体颜色 --相应颜色--在顶端以集中显示 结果如下图:

conda创建环境之后只有空荡荡的文件夹

如题 在创建环境之后,在该环境的文件夹中只有conda-meta和etc两个文件夹变成这样的原因是在创建虚拟环境的时候只是执行了 conda create -n test 而正确的应该是执行 conda create -n test python 若指定python版本应该加上 conda create -n test python=

FireDAC数据库连接流程图

FireDAC数据库连接流程图

老年人评估进程三

2025年2月9日 今天我们基本完成了老年人评估系统的功能,其中我后端遇到的问题,我觉得 是mapper层与xml映射文件的对接,这里命名我是按照规定进行创建和设置的, 但是在最后监护人页面的多条件查询时,出现了问题:mybatis参数映射出现 了问题,找不到Mappe接口等问题,最后无…

【日记】给了朝哥他们一家五百多块的购物卡(1568 字)

正文我从来都不知道背转在旋转的时候手和腿还要发力……前天上了年后的第一次课。课上朝哥原本打算教我背转,教给我需要注意的点。但他说的背转过程中还要发力,这真的超乎我的想象。说是背转,其实也没有练习多久。因为最后课上还是让我试试推风车,看看哪里有问题。如自己所…

3.3 计算机运算出错的原因

计算机运行出错的原因是因为 有一些十进制数的小数无法转换成二进制数因为无法正确表示的数值,最后都变成了近似值 因此,在遇到循环小数时,计算机会根据变量数据类型所对应的长度将数值从中间截断或者四舍五入