java .this的用法_JAVA中this用法小结

Java中的this随处可见,用法也多,现在整理有几点:

1. this是指当前对象自己。

当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中:

1 public classHello {2

3   String s = "Hello";4

5   publicHello(String s)6

7 {8

9   System.out.println("s = " +s);10

11   System.out.println("1 -> this.s = " + this.s);12

13   this.s =s;14

15   System.out.println("2 -> this.s = " + this.s);16

17 }18

19   public static voidmain(String[] args) {20

21   Hello x="new" Hello("HelloWorld!");22

23 }24

25   }

运行结果:

s = HelloWorld!

1 -> this.s = Hello

2 -> this.s = HelloWorld!

在这个例子中,构造函数Hello中,参数s与类Hello的变量s同名,这时如果直接对s进行操作则是对参数s进行操作。若要对类Hello的成员变量s进行操作就应该用this进行引用。运行结果的第一行就是直接对构造函数中传递过来的参数s进行打印结果; 第二行是对成员变量s的打印;第三行是先对成员变量s赋传过来的参数s值后再打印,所以结果是HelloWorld!

2. 把this作为参数传递

当你要把自己作为参数传递给别的对象时,也可以用this。如:

1 public classA {2

3   publicA() {4

5   new B(this).print();6

7 }8

9   public voidprint() {10

11   System.out.println("Hello from A!");12

13 }14

15 }16

17   public classB {18

19 A a;20

21   publicB(A a) {22

23   this.a =a;24

25 }26

27   public voidprint() {28

29 a.print();30

31   System.out.println("Hello from B!");32

33 }34

35   }

运行结果:

Hello from A!

Hello from B!

在这个例子中,对象A的构造函数中,用new B(this)把对象A自己作为参数传递给了对象B的构造函数。

3. 在构造函数中,通过this可以调用同一class中别的构造函数,如

1 public classFlower{2

3   Flower (intpetals){}4

5 Flower(String ss){}6

7   Flower(intpetals, Sting ss){8

9   //petals++;调用另一个构造函数的语句必须在最起始的位置

10

11   this(petals);12

13   //this(ss);会产生错误,因为在一个构造函数中只能调用一个构造函数

14

15 }16

17   }

值得注意的是:

1:在构造调用另一个构造函数,调用动作必须置于最起始的位置。

2:不能在构造函数以外的任何函数内调用构造函数。

3:在一个构造函数内只能调用一个构造函数。

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

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

相关文章

.NET也内卷了,BAT大厂近日上演抢人大战!

这两年到处都流行“内卷”这个词,而IT互联网行业则是内卷重灾区。还不太明白什么是内卷?看看这个段子:关于内卷,网上有个比喻,说如果葵花宝典被公开了,就会变成一个灾难。因为如果只有一个人拥有的话&#…

EFDC水模型 初学者入门 及软件下载学习指导

EFDC模型有三个不同的版本,它们分别代表了计算机不同的操作菜单和功能。其中的两个版本功能齐全,包括了EFDC 所有的产品版本。另外一个是简化版,涵盖了水动力学(包括盐度和温度的影响),毒物,沉积…

每日一笑 | 在地铁上被老奶奶让座是一种什么样的体验?

全世界只有3.14 % 的人关注了数据与算法之美(图源网络,侵权删)

java access dbq_Java-Access汇总

http://www.doczj.com/doc/3b7b55100b4e767f5acfce38.html/view/d1c01b43a8956bec0975e33e.html在网上看了一些资料,基本上都是一样的。怎么试也行不通。于是我怀疑为什么那些错误的技术文章如此大张旗鼓的到处都是。今天有人问我如果把主机托管出去,也就…

一个IT人的非典型职场十年 (5)

2019独角兽企业重金招聘Python工程师标准>>> 对于非资深IT人来讲,IT咨询(IT Consulting)显得是比较高帅富一些,各种衣着光鲜的咨询报告,各种西装革履的顾问。 这先随便说两句什么是IT咨询,IT顾问究竟是在做啥工作。 I…

基于ABP落地领域驱动设计-01.全景图

什么是领域驱动?领域驱动设计(简称:DDD)是一种针对复杂需求的软件开发方法。将软件实现与不断发展的模型联系起来,专注于核心领域逻辑,而不是基础设施细节。DDD适用于复杂领域和大规模应用,而不…

伦敦科学博物馆用百年智慧打造的一套探索书,拓展孩子的科学、数学和艺术思维...

▲数据汪特别推荐点击上图进入玩酷屋说到素质教育,我们应该比较熟悉。不过,这几年,比素质教育更火的一个概念是——STEAM教育。教育家们普遍认为:在科学、技术、工程、艺术、数学之间存在着一种相互支撑、相互补充、共同发展的关系…

java中事务特性_「java三分钟」事务的传播特性详解

关注我,每天三分钟,带你轻松掌握一个Java相关知识点。事务传播行为就是多个事务方法相互调用时,事务如何在这些方法间传播。换言之,一个带事务的方法调用了另一个带事务的方法,被调用的方法它怎么处理自己事务和调用方…

Windows Azure 社区新闻综述(#69 版)

欢迎查看最新版本的每周综述,其中包含有关云计算和 WindowsAzure 的社区推动新闻、内容和对话。 以下是过去一周基于您的反馈汇集在一起的内容: 文章、视频和博客文章 使用 Azure 云服务中的本地存储时“路径太长”(6 月 18 日发布&…

基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则

前言上一篇 基于ABP落地领域驱动设计-01.全景图 概述了DDD理论和对应的解决方案、项目组成、项目引用关系,以及基于ABP落地DDD的通用原则。从这本篇开始,会更加深入地介绍在基于 ABP Framework 落地DDD过程中的最佳实践和原则。围绕DDD和ABP Framework两…

每日一笑 | 实名举报校长拿两份工资!

全世界只有3.14 % 的人关注了数据与算法之美(图源网络,侵权删)

各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间。尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析、应用开发、释放license收费等等。最…

java中week of year_Java WeekFields weekOfYear()用法及代码示例

WeekFields类的weekOfYear()方法用于返回一个字段,以基于此WeekFields访问一年中的星期。例:如果一年的第一天是星期一,则第一周从第一天开始,没有零周如果一年的第二天是星期一,则第一周从第二天开始,而第…

159个故事串起三千年大历史!这套“儿童版史记”太无敌了!

▲数据汪特别推荐点击上图进入玩酷屋17世纪英国哲学家培根说“读史使人明智”,意思是真实、鲜活的历史,不仅能极大拓宽孩子眼界,更能让孩子以古人为鉴,树立远大的志向,对成长大有助益。在我们的学生时代,认…

再见,REST,你好,gRPC

gRPC是一个开源的远程过程调用框架,用于服务之间的高性能通信。服务之间的通信可以使用各种语言,通过可插拔的负载均衡、追踪、健康检查和身份验证,这让它被认为是一种非常高效的方法。在默认情况下,gRPC使用协议缓冲(…

全校师生放6天春假;清华大学设立天文系;郭守敬望远镜光谱数突破千万;《自然》发表最新发现;百度败诉需道歉;这就是今天的大新闻...

今天是3月29日农历二月廿三今天星期五早上上班等了N趟车愣是没挤上去下面是今天的大新闻全校师生放6天“春假”(中国青年网)3月28日,四川西南航空职业学院发布了《关于“泛美春假”的放假通知》,要求在放假时间总量不变的情况下&a…

jenkins java反序列化_Jenkins “Java 反序列化”过程远程命令执行漏洞

###漏洞原理反序列化是指特定语言中将传递的对象序列化数据重新恢复为实例对象的过程,而在这个过程中会执行一系列的字节流解析和对象实例化操作用于恢复之前序列化时的对象。在原博文所提到的那些 Java 应用里都有特定的接口用于传递序列化对象数据,而在…

WPF DataGrid 在Header中显示行号

在Datagrid中显示行号&#xff0c;如果你绑定的datacontext中没有序号&#xff0c;又想要显示序号的时候&#xff0c;可以按照本文的方法显示喽~效果如下图&#xff1a;来看看代码吧~MainWindow.xaml<Window x:Class"wpfcore.MainWindow"xmlns"http://schema…

每日一笑 | 爱的魔力转圈圈~

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;素材源网络&#xff0c;侵权删&#xff09;

怎样维护成功的开源项目

开源可不仅仅是将代码扔到网上就万事大吉了&#xff0c;将开源项目变成能让自己引以为豪的东西才算成功。那么&#xff0c;你需要注意哪些方面呢&#xff1f; 写好指导性文字 每一个开源项目有三样东西是少不了的&#xff1a;项目目标和方法的简要说明、如何参与和授权许可。最…