java中this&super的用法小结.doc

java中this&super的用法小结.doc

ID:61995624

大小:55.00 KB

页数:9页

时间:2021-04-09

java中this&super的用法小结.doc_第1页
java中this&super的用法小结.doc_第2页
java中this&super的用法小结.doc_第3页
java中this&super的用法小结.doc_第4页
java中this&super的用法小结.doc_第5页
资源描述:

《java中this&super的用法小结.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、This:this关键字必须放在非静态方法里面this关键字代表自身,在程序中主要的使用用途有以下几个方面:1.使用this关键字引用成员变量在一个类的方法或构造方法内部,可以使用“this.成员变量名”这样的格式来引用成员变量名,有些时候可以省略,有些时候不能省略。eg1.publicclassReferenceVariable{privateinta;publicReferenceVariable(inta){this.a=a;}publicintgetA(){returna;}publicvoidse

2、tA(inta){this.a=a;}}按照Java语言的变量作用范围规定,参数a的作用范围为构造方法或方法内部,成员变量a的作用范围是类的内部,这样在构造方法和setA方法内部就存在了变量a的冲突,Java语言规定当变量作用范围重叠时,作用域小的变量覆盖作用域大的变量。所以在构造方法和setA方法内部,参数a起作用。这样需要访问成员变量a则必须使用this进行引用。当然,如果变量名不发生重叠,则this可以省略。但是为了增强代码的可读性,一般将参数的名称和成员变量的名称保持一致,所以this的使用频率在规

3、范的代码内部应该很多。1.使用this关键字在自身构造方法内部引用其它构造方法,this语句是是构造函数的第一个语句,它的形式是this(参数表)在一个类的构造方法内部,也可以使用this关键字引用其它的构造方法,这样可以降低代码的重复,也可以使所有的构造方法保持统一,这样方便以后的代码修改和维护,也方便代码的阅读。publicclassReferenceConstructor{inta;publicReferenceConstructor(){this(0);//调用了另一个构造方法}publicRefe

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

5、方法最多会出现一次。2.使用this关键字代表自身类的对象在一个类的内部,也可以使用this代表自身类的对象,或者换句话说,每个类内部都有一个隐含的成员变量,该成员变量的类型是该类的类型,该成员变量的名称是this。eg1.publicclassReferenceObject{ReferenceObjectinstance;publicReferenceObject(){instance=this;}publicvoidtest(){System.out.println(this);}}在构造方法内部,将对

6、象this的值赋值给instance,在test方法内部,输出对象this的内容,这里的this都代表自身类型的对象。1.使用this关键字引用成员方法在一个类的内部,成员方法之间的互相调用时也可以使用“this.方法名(参数)”来进行引用,只是所有这样的引用中this都可以省略。Super1.在子类构造方法中要调用父类的构造方法,用“super(参数列表)”的方式调用,参数不是必须的。同时还要注意的一点是:“super(参数列表)”这条语句只能用在子类构造方法体中的第一行。2.当子类方法中的局部变量或者子

7、类的成员变量与父类成员变量同名时,也就是子类局部变量覆盖父类成员变量时,用“super.成员变量名”来引用父类成员变量。当然,如果父类的成员变量没有被覆盖,也可以用“super.成员变量名”来引用父类成员变量,不过这是不必要的。3.当子类的成员方法覆盖(重写)了父类的成员方法时,也就是子类和父类有完全相同的方法定义(但方法体可以不同),此时,用“super.方法名(参数列表)”的方式访问父类的方法。eg1.classCountry{    Stringname;    voidvalue()    {nam

8、e="China";} }classCityextendsCountry{    Stringname;    voidvalue()    {     name="Beijing";     super.value();     System.out.print(name);//父类的成员变量被覆盖     System.out.print(super.name);//输出父类成员变量    }//输出的结果为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。