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标签为什么废弃_替代方案说明【解答】