首页 > 其他分享 >this关键字例子(学习用)

this关键字例子(学习用)

时间:2022-10-13 11:57:03浏览次数:70  
标签:run name Dog Teacher 学习 关键字 例子 方法 public

this 关键字是 Java 常用的关键字,可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用。

下面我们根据示例分别讲解 this 关键字的作用。

this.属性名

大部分时候,普通方法访问其他方法、成员变量时无须使用 this 前缀,但如果方法里有个局部变量和成员变量同名,但程序又需要在该方法里访问这个被覆盖的成员变量,则必须使用 this 前缀。

例 1

假设有一个教师类 Teacher 的定义如下:
  1. public class Teacher {
  2. private String name; // 教师名称
  3. private double salary; // 工资
  4. private int age; // 年龄
  5. }
在上述代码中 name、salary 和 age 的作用域是 private,因此在类外部无法对它们的值进行设置。为了解决这个问题,可以为 Teacher 类添加一个构造方法,然后在构造方法中传递参数进行修改。代码如下:
  1. // 创建构造方法,为上面的3个属性赋初始值
  2. public Teacher(String name,double salary,int age) {
  3. this.name = name; // 设置教师名称
  4. this.salary = salary; // 设置教师工资
  5. this.age = age; // 设置教师年龄
  6. }
在 Teacher 类的构造方法中使用了 this 关键字对属性 name、salary 和 age 赋值,this 表示当前对象。this.name=name语句表示一个赋值语句,等号左边的 this.name 是指当前对象具有的变量 name,等号右边的 name 表示参数传递过来的数值。

创建一个 main() 方法对 Teacher 类进行测试,代码如下:
  1. public static void main(String[] args) {
  2. Teacher teacher = new Teacher("王刚",5000.0,45);
  3. System.out.println("教师信息如下:");
  4. System.out.println("教师名称:"+teacher.name+"\n教师工资:"+teacher.salary+"\n教师年龄:"+teacher.age);
  5. }
运行该程序,输出的结果是
教师信息如下:
教师名称:王刚
教师工资:5000.0
教师年龄:45
提示:当一个类的属性(成员变量)名与访问该属性的方法参数名相同时,则需要使用 this 关键字来访问类中的属性,以区分类的属性和方法中的参数。

this.方法名

this 关键字最大的作用就是让类中一个方法,访问该类里的另一个方法或实例变量。

例 2

假设定义了一个 Dog 类,这个 Dog 对象的 run( ) 方法需要调用它的 jump( ) 方法,Dog 类的代码如下所示:
  1. /**
  2. * 第一种定义Dog类方法
  3. **/
  4. public class Dog {
  5. // 定义一个jump()方法
  6. public void jump() {
  7. System.out.println("正在执行jump方法");
  8. }
  9. // 定义一个run()方法,run()方法需要借助jump()方法
  10. public void run() {
  11. Dog d = new Dog();
  12. d.jump();
  13. System.out.println("正在执行 run 方法");
  14. }
  15. }
使用这种方式来定义这个 Dog 类,确实可以实现在 run( ) 方法中调用 jump( ) 方法。下面再提供一个程序来创建 Dog 对象,并调用该对象的 run( ) 方法。
  1. public class DogTest {
  2. public static void main(String[] args) {
  3. // 创建Dog对象
  4. Dog dog = new Dog();
  5. // 调用Dog对象的run()方法
  6. dog.run();
  7. }
  8. }
在上面的程序中,一共产生了两个 Dog 对象,在 Dog 类的 run( ) 方法中,程序创建了一个 Dog 对象,并使用名为 d 的引用变量来指向该 Dog 对象。在 DogTest 的 main() 方法中,程序再次创建了一个 Dog 对象,并使用名为 dog 的引用变量来指向该 Dog 对象。

标签:run,name,Dog,Teacher,学习,关键字,例子,方法,public
From: https://www.cnblogs.com/Chen12138/p/16787693.html

相关文章

  • 10本 Redis 学习书籍推荐 - 世界读书月
    10本Redis学习书籍推荐-世界读书月钱嘟嘟左卫门 ​关注他 25人赞同了该文章 Redis是一个完全开源的、遵守BSD协议、高性能的key-val......
  • 【博学谷学习记录】超强总结,用心分享 | MySQL锁简单介绍
    目录全局锁表级锁表级锁-表锁表级锁-元数据锁表级锁-IS(意向共享锁)与IX(意向排他锁)行级锁间隙锁例子临键锁和记录锁例子全局锁概念:全局锁就是对整个数据库实例加......
  • Self-Attention学习
    2个连接+1个视频推荐Self-Attention原理与代码实现_DonngZH的博客-CSDN博客_selfattention代码Transformer模型详解(图解最完整版)-知乎(zhihu.com)视频:b站up主wangs......
  • 软件测试入门学习
    caohongxing的博客​软件测试2小时入门​​​https://study.163.com/course/courseMain.htm?courseId=1004794006&trace_c_p_k2=debbdb37dde34011af67c8e4f996a17a​​......
  • 我想在一段文字中扣出关键字附近前后30个字,用正则怎么写?
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【此类生物】问了一个Python数据提取的问题,提问截图如下:二、实现过程这里【ᯤ⁶ᴳ】指出问题,可能是占位符......
  • 【博学谷学习记录】超强总结,用心分享 | MySQL的锁_笔记
    目录全局锁表级锁表级锁-表锁表级锁-元数据锁表级锁-IS(意向共享锁)与IX(意向排他锁)行级锁间隙锁例子临键锁和记录锁例子全局锁概念:全局锁就是对整个数据库实例加......
  • PHP Phar反序列化学习
    PHPPhar反序列化学习PharPhar是PHP的压缩文档,是PHP中类似于JAR的一种打包文件。它可以把多个文件存放至同一个文件中,无需解压,PHP就可以进行访问并执行内部语句。默认开......
  • ThinkPHP 3.2.3 学习
    ThinkPHP3.2.3学习环境要求PHP版本要求PHP5.3以上版本(注意:PHP5.3dev版本和PHP6均不支持)ThinkPHP目录结构下载官方的ThinkPHP后目录如下wwwWEB部署目录(或者子目......
  • 机器学习p3p4
    一.回归定义就是找到一个function,输入特征x,输出一个数scalar二.模型步骤三步:模型假设(假设线性模型),模型评估(通过损伤函数),模型优化(梯度下降)1.模型假设:假设为线性模型分......
  • HCIA学习笔记三十三:缺省路由
    一、缺省路由• 缺省路由是一种特殊的路由,可以通过静态路由配置,某些动态路由协议也可以生成缺省路由,如OSPF和IS-IS。• 在路由表中,缺省路由以到网络0.0.0.0(掩码为0.0.0......