java this 用法详解及简单实例
发布时间 - 2026-01-11 00:08:58 点击率:次java this 用法详解

用类名定义一个变量的时候,定义的只是一个引用,外面可以通过这个引用来访问这个类里面的属性和方法。
那们类里面是够也应该有一个引用来访问自己的属性和方法纳?
呵呵,JAVA提供了一个很好的东西,就是 this 对象,它可以在类里面来引用这个类的属性和方法。先来个简单的例子:
public class ThisDemo {
String name="Mick";
public void print(String name){
System.out.println("类中的属性 name="+this.name);
System.out.println("局部传参的属性="+name);
}
public static void main(String[] args) {
ThisDemo tt=new ThisDemo();
tt.print("Orson");
}
}
关于返回类自身的引用,《Thinking in Java》有个很经典的例子。
通过this 这个关键字返回自身这个对象然后在一条语句里面实现多次的操作,还是贴出来。
public class ThisDemo {
int number;
ThisDemo increment(){
number++;
return this;
}
private void print(){
System.out.println("number="+number);
}
public static void main(String[] args) {
ThisDemo tt=new ThisDemo();
tt.increment().increment().increment().print();
}
}
一个类中定义两个构造函数,在一个构造函数中通过 this 这个引用来调用另一个构造函数,这样应该可以实现。
这样的实现机制在实际做应用开发的时候有会有什么样子的用处纳?贴下写的代码:
public class ThisDemo {
String name;
int age;
public ThisDemo (){
this.age=21;
}
public ThisDemo(String name,int age){
this();
this.name="Mick";
}
private void print(){
System.out.println("最终名字="+this.name);
System.out.println("最终的年龄="+this.age);
}
public static void main(String[] args) {
ThisDemo tt=new ThisDemo("",0); //随便传进去的参数
tt.print();
}
}
看上面这段代码虽然很短,理解起来似乎也很顺理成章,在有参数的构造函数中赋值 name 在无参数的当中赋值age属性。
但我个人觉得其中有点问题,实例化一个类应该先为对象 ThisDemo 分配内存,先调用构造函数 ThisDemo(String name,int age)。
执行第一行时,调用 ThisDemo()构造函数,也就是说这里应该会有两个内存空间的,一个是为ThisDemo(String name,int age) 分配的内存空间和另一个是 ThisDemo() 执行空间。
为什么最后打印出来的结果是都实例化了一个对象中的两个属性name和age纳?请大牛赐教!
总结一下:
1) this 关键字是类内部当中对自己的一个引用,可以方便类中方法访问自己的属性;
2)可以返回对象的自己这个类的引用,同时还可以在一个构造函数当中调用另一个构造函数。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# this
# 详解
# 关键字this
# java中this的n种使用方法
# Java中的构造方法this、super的用法详解
# Java this 关键字的使用方法详解
# java中this与super关键字的使用方法
# 详解java中this.getClass()和super.getClass()的实例
# 深入理解java中this关键字的使用
# Java this()和super()的使用注意
# this关键字详解
# 自己的
# 类中
# 很好
# 会有
# 有个
# 还可以
# 来访问
# 但我
# 这段
# 也很
# 可以通过
# 希望能
# 它可以
# 可以实现
# 只是一个
# 来个
# 谢谢大家
# 顺理成章
# 贴出
# 很短
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
高性价比服务器租赁——企业级配置与24小时运维服务
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
EditPlus 正则表达式 实战(3)
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
如何在搬瓦工VPS快速搭建网站?
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
如何用腾讯建站主机快速创建免费网站?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
如何正确选择百度移动适配建站域名?
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
bing浏览器学术搜索入口_bing学术文献检索地址
Laravel如何使用withoutEvents方法临时禁用模型事件
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
jQuery中的100个技巧汇总
如何在服务器上三步完成建站并提升流量?
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
再谈Python中的字符串与字符编码(推荐)
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
长沙做网站要多少钱,长沙国安网络怎么样?
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
如何基于云服务器快速搭建个人网站?
如何快速搭建安全的FTP站点?
香港服务器租用费用高吗?如何避免常见误区?
如何用y主机助手快速搭建网站?
Laravel怎么实现模型属性的自动加密
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
详解Android——蓝牙技术 带你实现终端间数据传输
如何用搬瓦工VPS快速搭建个人网站?
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
phpredis提高消息队列的实时性方法(推荐)
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
Laravel如何使用模型观察者?(Observer代码示例)
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
html5的keygen标签为什么废弃_替代方案说明【解答】

