面向对象【this关键字】

this关键字

文章目录

  • this关键字
  • 基本作用
    • 调用变量
    • 调用方法
    • 调用构造器
    • this 关键字的限制

this关键字

  1. 它在方法(实例方法或非 static 的方法)内部使用,表示调用该方法的对象
  2. 它在构造器内部使用,表示该构造器正在初始化的对象。

基本作用

  1. 引用当前对象:在类的方法内部,this 可以用来引用当前对象。这是非常重要的,因为在面向对象编程中,一个类的方法通常会被多个对象调用。使用 this 关键字可以确保你正在操作的是调用方法的那个对象。
  2. 区分成员变量和方法参数:有时,方法的参数名与成员变量名相同,这可能导致混淆。this 可以帮助我们明确指定操作的是成员变量还是方法参数,提高代码的可读性。

调用变量

this 可以用来引用当前对象的成员变量 ,this.name 表示当前对象的 name 成员变量,而 name 表示方法参数。使用 this 可以清晰地区分两者,避免歧义。

public class Person {String name;public void setName(String name) {this.name = name;}
}

调用方法

class Person{private String name ;private int age ;public Person(String name,int age){this.name = name ; this.age = age ; }public void setName(String name){this.name = name;}public void setAge(int age){this.age = age;}public void getInfo(){System.out.println("姓名:" + name) ;this.speak();}public void speak(){System.out.println(“年龄:” + this.age);} 
}

调用构造器

this 可以作为一个类中构造器相互调用的特殊格式。
this():调用本类的无参构造器
this(实参列表):调用本类的有参构造器

public class Student {private String name;private int age;// 无参构造public Student() {// this("",18);//调用本类有参构造器}// 有参构造public Student(String name) {this();//调用本类无参构造器this.name = name;}// 有参构造public Student(String name,int age){this(name);//调用本类中有一个 String 参数的构造器this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getInfo(){return "姓名:" + name +",年龄:" + age;}}

this 关键字的限制

尽管 this 非常有用,但有一些限制和注意事项:

  1. this 不能在静态方法中使用,因为静态方法不属于任何特定对象,而是属于整个类。
  2. this 只能在方法内部使用,无法在方法外部使用。
  3. 在构造方法中,this 的调用必须作为构造方法的第一条语句。同时使用 this 和 super 关键字在同一个构造方法中是不允许的。

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

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

相关文章

驱动day10作业

基于platform驱动模型完成LED驱动的编写 驱动程序 #include <linux/init.h> #include <linux/module.h> #include<linux/platform_device.h> #include<linux/mod_devicetable.h> #include<linux/of.h> #include<linux/of_gpio.h> #inclu…

ChatGPT扩展系列之ChatExcel

文章目录 ChatGPT扩展系列之ChatExcel对某一列的文字进行处理对数据进行排序对数据进行计算微软官方又推出Excel AI插件ChatGPT扩展系列之ChatExcel 自从ChatGPT很空出世之后,很多基于ChatGPT的应用便如雨后春笋般应用而生,这些应用的底层本质就是利用了ChatGPT对自然语言的…

mysql---DCL(用户创建及限制)

DCL: 权限控制语句 grant revoke 数据库用户管理: 创建用户 修改用户的权限 删除用户 grant 要在终端执行。 用户创建语句注释 create user ky32localhost identified by 123456; create user 创建用户的开头 ky32localhost ky32 表示用户的主机名 localhost 新建的…

kafka为什么如此之快?

天下武功&#xff0c;唯快不破。同样的&#xff0c;kafka在消息队列领域&#xff0c;也是非常快的&#xff0c;这里的块指的是kafka在单位时间搬运的数据量大小&#xff0c;也就是吞吐量&#xff0c;下图是搬运网上的一个性能测试结果&#xff0c;在同步发送场景下&#xff0c;…

3D RPG Course | Core 学习日记一:初识URP

前言 最近开始学习Unity中文课堂M_Studio&#xff08;麦大&#xff09;的3D RPG Course&#xff0c;学习一下3D RPG游戏核心功能的实现&#xff0c;第一课我们学习到的是地图场景的编辑&#xff0c;其中涉及到了URP渲染。 我们首先进入Unity资源商店把地图素材和人物素材导入好…

毛发渲染方案实现

一、毛发材质概述 以前毛发只能用离线来做 现在实时毛发逐渐可能。长毛渲染和短毛渲染采用的是不同的方案。 二、长毛类制作分析 各向异性 kajiya算法 # 三、短毛类制作分析 四、制作心得及技巧

汽车贴膜店展示服务预约小程序的作用是什么

很多家庭都有车辆&#xff0c;除了车身自带颜色或外观&#xff0c;部分消费者会选择贴车衣、改色膜以及其它装饰类服务&#xff1b;而市场高需求下也促进了商家生意增长。 但随着线上化程度加深&#xff0c;传统线下门店也面临多重困境&#xff0c;品牌需要线上发展获得生意及…

python基于VGG19实现图像风格迁移

目录 1、原理 2、代码实现 1、原理 图像风格迁移是一种将一张图片的内容与另一张图片的风格进行合成的技术。 风格&#xff08;style&#xff09;是指图像中不同空间尺度的纹理、颜色和视觉图案&#xff0c;内容&#xff08;content&#xff09;是指图像的高级宏观结构。 实…

Redis 哨兵

目录 ​编辑 一、哨兵原理 1、集群结构和作用 2、集群监控原理 3、集群故障恢复原理 二、搭建哨兵集群 1、集群结构 2、准备实例和配置 3、启动 三、RedisTemplate 的哨兵模式 一、哨兵原理 1、集群结构和作用 Redis提供了哨兵&#xff08;Sentinel&#xff09;机制…

华为NAT配置实例(含dhcp、ospf配置)

一、网络拓朴如下&#xff1a; 二、要求&#xff1a;PC1 能访问到Server1 三、思路&#xff1a; R2配置DHCP&#xff0c;R2和R1配OSPF&#xff0c;R1出NAT 四、主要配置&#xff1a; R2的DHCP和OSPF&#xff1a; ip pool 1gateway-list 10.1.1.1 network 10.1.1.0 mask 25…

RabbitMQ消费者的可靠性

目录 一、消费者确认 二、失败重试机制 2.1、失败处理策略 三、业务幂等性 3.1、唯一消息ID 3.2、业务判断 3.3、兜底方案 一、消费者确认 RabbitMQ提供了消费者确认机制&#xff08;Consumer Acknowledgement&#xff09;。即&#xff1a;当消费者处理消息结束后&#x…

Python构造代理IP池提高访问量

目录 前言 一、代理IP是什么 二、代理IP池是什么 三、如何构建代理 IP 池 1. 从网上获取代理 IP 地址 2. 对 IP 地址进行筛选 3. 使用筛选出来的 IP 地址进行数据的爬取 四、总结 前言 爬虫程序是批量获取互联网上的信息的重要工具&#xff0c;在访问目标网站时需要频…