网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > JAVA > 正文

Java语言中this关键字的用法详解

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 14/04/10

鉴于大家对JAVA十分关注,我们编辑小组在此为大家搜集整理了“ Java语言中this关键字的用法详解 ”一文,供大家参考学习!

     一、使用this调用本类中的成员变量(属性)例1:观察以下的程序代码,看看会出现哪些问题呢?class Student{private String name;//定义一个成员变量namepublic void setName(String name){//设置姓名,定义一个形参namename=name;//将局部变量的值传递给成员变量}public String getName(){//获得姓名return"姓名:"+name;}}public class ThisExample01{public static void main(String args[]){Student stu=new Student();stu.setName("李明");System.out.println(stu.getName());}}运行结果:姓名:null由运行结果可以看出,通过name=name并没有正确的将内容赋给属性,为什么呢?因为此时操作的name实际上是方法中的,跟类中的属性完全不沾边。另外,这个程序代码中,有一个成员变量name,同时在方法中有个形式参数,参数名也是name。然后在方法中将形式参数name的值传递给成员变量name。虽然我们可以看明白这个代码的含义,但是作为Java编译器它是怎么判断使用哪个变量的呢?到底是将形式参数name的值传递给成员变量name,还是反过来讲成员变量name的值传递给形式参数name呢?此时this这个关键字就起到作用了,这种情况下使用this这个关键字代表的就是类中的成员变量,又叫做类的属性。

     所以此时,为了明确的表示出哪一个是类中的属性,就要加上“this.属性名称”的操作,将student类的代码改进如下:class Student{private String name;public void setName(String name){this.name=name;//将形参的值传递给成员变量}public String getName(){return"姓名:"+name;}}这时,this.name代表的就是类中的成员变量,而赋值号右边的name则是方法的形式参数,代码this.name=name就是将形式参数的值传递给成员变量。例1只是以一个形式参数为例。其实如果是局部变量的话,也是相同的道理。在方法体内定义的变量称为局部变量,在类的内部方法体的外部定义的变量称为成员变量。如果成员变量和方法中的局部变量的名字相同时,那么在方法中成员变量将会被屏蔽。如果这个时候还要使用成员变量,就需要使用关键字this。使用this引用成员变量的方法格式:this.成员变量名。

     既然this能够调用本类中的成员变量,那么,this也可以调用本类中的成员方法。以例2为例,程序代码如下:class Student{private String name;public void setName(String name){this.print();//调用本类中的print方法this.name=name;}public String getName(){return"姓名:"+name;}public void print(){System.out.println("设置相关信息如下……");}}public class ThisExample02{public static void main(String args[]){Student stu=new Student();stu.setName("李明");System.out.println(stu.getName());}}运行结果:设置相关信息如下……李明一般情况下,在Java语言中引用成员变量或者成员方法都是以对象名.成员变量或者对象名.成员方法的形式。不过有些程序员即使在没有相同变量的时候,也喜欢使用this.成员变量的形式来引用变量。这主要是从便于代码的阅读考虑。一看到这个this关键字就知道现在引用的变量是成员变量或者成员方法,而不是局部变量。这无形中就提高了代码的阅读性。

    二、使用this调用构造方法在一个Java类中,构造方法是一个与类同名的方法,必须与类的名字相同。而且在Java类中必须存在一个构造方法。如果在代码中没有显示的体现构造方法的话,那么编译器在编译的时候会自动添加一个没有形式参数的构造方法。在一个类中可以存在多个构造方法,这些构造方法都采用相同的名字,只是形式参数不同。Java语言就凭用户的参数来判断调用哪一个构造方法。当一个类中有多个构造方法时,可以利用this关键字相互调用。假设,现在有一个类中存在多个构造方法,但是不管有多少个构造方法,只要对象一被实例化,就必须打印一句“新对象实例化”的信息出来,这时可以有两种做法。

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号