黑马程序员技术交流社区

标题: this的用法个人总结,欢迎补充 [打印本页]

作者: linder_qzy    时间: 2015-3-8 19:12
标题: this的用法个人总结,欢迎补充
关于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。且必须放在构造函数的第一行
作者: Dark县令    时间: 2015-3-9 01:14
平时都不在主要这个问题长见识了!!
作者: zgjswp    时间: 2015-3-9 02:10
补充:this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this
作者: jiangwenjun    时间: 2015-3-9 03:18
this只能在类中的非静态方法中使用!普通函数可以使用吧!
作者: linder_qzy    时间: 2015-3-9 10:24
zgjswp 发表于 2015-3-9 02:10
补充:this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this ...

哦哦  感谢补充 还真没注意这个
作者: android-liu    时间: 2015-3-9 11:21
对静态方法中不能使用this,因为静态初始化时,还没对象
作者: 路文龙    时间: 2015-3-9 11:37
学习一下。
作者: 王振光    时间: 2015-3-9 12:35
一总结就全明白了。
作者: kemeng    时间: 2015-3-9 12:39
刚看完这节,总结很好
作者: 1021361407    时间: 2015-3-9 18:50
为啥不能用在普通函数。。。
作者: jiangwenjun    时间: 2015-3-9 19:12
linder_qzy 发表于 2015-3-9 10:24
哦哦  感谢补充 还真没注意这个

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

普通函数是可以用的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2