ImageVerifierCode 换一换
格式:DOCX , 页数:5 ,大小:18.74KB ,
资源ID:3304332      下载积分:2 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wnwk.com/docdown/3304332.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JAVA中this的使用.docx)为本站会员(a****2)主动上传,蜗牛文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蜗牛文库(发送邮件至admin@wnwk.com或直接QQ联系客服),我们立即给予删除!

JAVA中this的使用.docx

1、JAVA中this用法小结我知道很多朋友都和我一样:在JAVA程序中似乎经常见到“this”,自己也偶尔用到它,但是到底“this”该怎么用,却心中无数!很多人一提起它,就说“当前对象”,可到底什么是当前对象,是什么当前对象,他自己也不清楚。现在让大家看一个小例子,给你分享一下JAVA中“this”的用法!/*authorfengzhi-neusoft*本示例为了说明this的三种用法!*/packagetest;publicclassThisTest privateinti=0;/第一个构造器:有一个int型形参ThisTest(inti)this.i=i+1;/此时this表示引用成员变量

2、,而非函数参数System.out.println(Int constructor ithis.i:+i+this.i);System.out.println(i-1:+(i-1)+this.i+1:+(this.i+1);/从两个输出结果充分证明了i和this.i是不一样的!/第二个构造器:有一个String型形参ThisTest(String s)System.out.println(String constructor:+s);/第三个构造器:有一个int型形参和一个String型形参ThisTest(inti,String s)this(s);/this调用第二个构造器/this(i)

3、;/*此处不能用,因为其他任何方法都不能调用构造器,只有构造方法能调用他。但是必须注意:就算是构造方法调用构造器,也必须为于其第一行,构造方法也只能调 用一个且仅一次构造器!*/this.i=i+;/this以引用该类的成员变量System.out.println(Int constructor:+i+/n+String constructor:+s);publicThisTestincrement()this.i+;returnthis;/返回的是当前的对象,该对象属于(ThisTest)publicstaticvoidmain(String args)ThisTest tt0=newThi

4、sTest(10);ThisTest tt1=newThisTest(ok);ThisTest tt2=newThisTest(20,ok again!);System.out.println(tt0.increment().increment().increment().i);/tt0.increment()返回一个在tt0基础上+的ThisTest对象,/接着又返回在上面返回的对象基础上i+的ThisTest对象!运行结果:Int constructor ithis.i:1011String constructor:okString constructor:ok again!Int con

5、structor:21String constructor:ok again!14细节问题注释已经写的比较清楚了,这里不在赘述,只是总结一下,其实this主要要三种用法:、表示对当前对象的引用!、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不

6、能在static方法中使用!JAVA中this的三种用法的详解this关键字必须放在非静态方法里面this关键字代表自身,在程序中主要的使用用途有以下几个方面:? 使用this关键字引用成员变量(成员变量被封装了,也就是被private修饰时)? 使用this关键字在自身构造方法内部引用其它构造方法? 使用this关键字代表自身类的对象? 使用this关键字引用成员方法8.8.1.1 引用成员变量在一个类的方法或构造方法内部,可以使用“this.成员变量名”这样的格式来引用成员变量名,有些时候可以省略,有些时候不能省略。首先看一下下面的代码:/* 使用this引用成员变量*/public cl

7、ass ReferenceVariable private int a;public ReferenceVariable(int a)this.a = a;public int getA()return a;public void setA(int a)this.a = a;在该代码的构造方法和setA方法内部,都是用this.a引用类的成员变量。因为无论在构造方法还是setA方法内部,都包含2个变量名为a的变量,一个是参数a,另外一个是成员变量a。按照Java语言的变量作用范围规定,参数a的作用范围为构造方法或方法内部,成员变量a的作用范围是类的内部,这样在构造方法和setA方法内部就存在了

8、变量a的冲突,Java语言规定当变量作用范围重叠时,作用域小的变量覆盖作用域大的变量。所以在构造方法和setA方法内部,参数a起作用。这样需要访问成员变量a则必须使用this进行引用。当然,如果变量名不发生重叠,则this可以省略。但是为了增强代码的可读性,一般将参数的名称和成员变量的名称保持一致,所以this的使用频率在规范的代码内部应该很多。8.8.1.2 引用构造方法在一个类的构造方法内部,也可以使用this关键字引用其它的构造方法,这样可以降低代码的重复,也可以使所有的构造方法保持统一,这样方便以后的代码修改和维护,也方便代码的阅读。下面是一个简单的示例:/* 使用this关键字引用构

9、造方法*/public class ReferenceConstructor int a;public ReferenceConstructor()this(0);public ReferenceConstructor(int a)this.a = a;这里在不带参数的构造方法内部,使用this调用了另外一个构造方法,其中0是根据需要传递的参数的值,当一个类内部的构造方法比较多时,可以只书写一个构造方法的内部功能代码,然后其它的构造方法都通过调用该构造方法实现,这样既保证了所有的构造是统一的,也降低了代码的重复。在实际使用时,需要注意的是,在构造方法内部使用this关键字调用其它的构造方法时,

10、调用的代码只能出现在构造方法内部的第一行可执行代码。这样,在构造方法内部使用this关键字调用构造方法最多会出现一次。8.8.1.3 代表自身对象在一个类的内部,也可以使用this代表自身类的对象,或者换句话说,每个类内部都有一个隐含的成员变量,该成员变量的类型是该类的类型,该成员变量的名称是this,实际使用this代表自身类的对象的示例代码如下:/* 使用this代表自身类的对象*/public class ReferenceObject ReferenceObject instance;public ReferenceObject()instance = this;public void test()System.out.println(this);在构造方法内部,将对象this的值赋值给instance,在test方法内部,输出对象this的内容,这里的this都代表自身类型的对象。8.8.1.4 引用成员方法在一个类的内部,成员方法之间的互相调用时也可以使用“this.方法名(参数)”来进行引用,只是所有这样的引用中this都可以省略,所以这里就不详细介绍了。

copyright@ 2008-2023 wnwk.com网站版权所有

经营许可证编号:浙ICP备2024059924号-2