A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© linder_qzy 中级黑马   /  2015-3-8 19:12  /  1221 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关于this的用法自己总结了下,还有什么没写到的方面欢迎补充

this代表它所在函数所属对象的引用。简单来说就是哪个对象在调用this所在的函数,this就代表哪个对象。
this的应用
(1)用于构造函数之间进行调用。this调用构造函数只能定义在构造函数的第一行,因为初始化要优先运行。
(2)当定义类中功能时,该函数内部要用到该函数的对象时,这时用this来表示这个对象。
  总结:但凡是本类功能内部使用了本类对象都用this表示。
  1. class Person   
  2. {  
  3.     int age;  
  4.     String name;  
  5.     String home;  
  6.     Person(int age){  
  7.         this.age = age;  
  8.         System.out.println("age="+age);  
  9.     }  
  10.     Person(int age,String name){  
  11.         this.age = age;  
  12.         this.name = name;  
  13.         System.out.println("age="+age+",name="+name);  
  14.     }  
  15.     Person(int age,String name,String home){  
  16.         this(age);////this用于构造函数之间进行调用,调用构造函数只能定义在构造函数的第一行.  
  17.         this.name=name;  
  18.         this.home=home;  
  19.         System.out.println("age="+age+",name="+name+",home="+home);  
  20.     }  
  21.     //定义一个比较年龄是否相同的方法  
  22.     Boolean compara(Person p){  
  23.         return this.age==p.age;//this来表示该函数内部要用到该函数的对象  
  24.     }  
  25. }  
复制代码


总结this实际有2种用法:
1用于区分成员变量和局部变量同名的情况。
2用于构造函数函数之间互相调用。普通函数不允许使用this。且必须放在构造函数的第一行

12 个回复

倒序浏览
平时都不在主要这个问题长见识了!!
回复 使用道具 举报
补充:this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this
回复 使用道具 举报
this只能在类中的非静态方法中使用!普通函数可以使用吧!

点评

说的好  发表于 2015-3-9 14:13

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报
zgjswp 发表于 2015-3-9 02:10
补充:this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this ...

哦哦  感谢补充 还真没注意这个
回复 使用道具 举报
对静态方法中不能使用this,因为静态初始化时,还没对象
回复 使用道具 举报
学习一下。
回复 使用道具 举报
一总结就全明白了。
回复 使用道具 举报
刚看完这节,总结很好
回复 使用道具 举报
为啥不能用在普通函数。。。
回复 使用道具 举报
linder_qzy 发表于 2015-3-9 10:24
哦哦  感谢补充 还真没注意这个

没事!我之前也发过贴子,毕老师哪里说的很含糊。但我实践过可以,就发帖问才知道的!
回复 使用道具 举报
jiangwenjun 发表于 2015-3-9 03:18
this只能在类中的非静态方法中使用!普通函数可以使用吧!

普通函数是可以用的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马