黑马程序员技术交流社区

标题: 关于this 和 this ()的问题 [打印本页]

作者: ★魔_➩τ咒    时间: 2014-5-24 09:03
标题: 关于this 和 this ()的问题
java中的this 和 this() 虽然在视频里看到有所了解,但是具体到对象中怎么应用,求清晰的解释!谢谢......
作者: gentleman    时间: 2014-5-24 09:25

this(有参数/无参数)  用于调用本类相应的构造函数
super(有参数/无参数) 用于调用父类相应的构造函数
this.  后跟方法或属性 指示本类的方法或属性
super. 后跟方法或属性(父类中指明的public )
作者: youcyou    时间: 2014-5-24 10:05
this 表示调用方法的对象
例如要调用一个长度就可以this.length()
this()调用本类的构造方法
例如
Person(String name)
{
this();//调用下面的空参数构造方法
this.name=name;}
Person()
{
this.name=null;
}

作者: 心?=忐§忑]    时间: 2014-5-24 10:31
  1. /*
  2. this:   表示当前对象的应用,这时,可以通过this访问成员变量和实例方法
  3. this(): 调用无参构造方法
  4. */
  5. class Person
  6. {
  7.         private String name ;
  8.         public Person()
  9.         {
  10.                 System.out.println("先调用了无参构造方法") ;
  11.         }
  12.         public Person(String name)
  13.         {
  14.                 this() ;  //调用无参构造函数,放在第一句
  15.         this.name = name ; //指定是本类对象的name,然后赋值传递进来的name
  16.         }
  17.         public void show()
  18.         {
  19.                 System.out.println("姓名:" + name) ; //此语句中隐藏着this关键字
  20.         }
  21. }
  22. public class ThisDemo
  23. {
  24.         public static void main(String args[])
  25.         {
  26.                 Person per = new Person("acai") ; // 实例化对象
  27.                 per.show() ;  
  28.         }
  29. }

复制代码

作者: 927233671    时间: 2014-5-24 10:51
this.是本类对象调用本类中的普通方法,this()是调用本类空参数的构造函数
作者: yinxjfly    时间: 2014-5-25 01:50
gentleman 发表于 2014-5-24 09:25
this(有参数/无参数)  用于调用本类相应的构造函数
super(有参数/无参数) 用于调用父类相应的构造函数
thi ...

回答的真心不错,感觉很厉害哈1
作者: 宋大人-专注    时间: 2014-6-8 10:32
还没注意到,忽视了
作者: Solomon    时间: 2014-6-8 12:48
对啊,忽然想起这一块忘了好多!!!
作者: sanjiadiankeli    时间: 2014-6-8 13:38
谁调用,this就是谁
作者: 倪大大    时间: 2014-6-8 13:55
你记住this是指向本类对象的
java类中很多地方是省略了this的,
this.xxx 代码 表示本类对象调用
this() 就表示本类对象调用构造函数
作者: sam9204    时间: 2014-6-8 14:52
this 调用本类的方法或属性  this() 调用本类构造方法
作者: 七弦    时间: 2014-6-8 15:05
this关键字和this语句
作者: 黑马粉、峥    时间: 2014-6-8 15:41
this 是指向本类对象的,谁调用 this.方法  this就指向谁,   而 this() 代表的是本类的构造方法相当于一个空的无参数的构造方法
作者: liujie445012100    时间: 2014-6-8 20:01
this关键字这个,表示当前对象,this.属性 ,this.方法
this()表示调用无参的构造方法,
this(name)表示有参的构造方法
super调用父类对象,同理
作者: blackstones1    时间: 2014-6-8 20:55
学习下 大家加油
作者: 汤姆纳斯    时间: 2014-6-9 00:57
这方面的知识又了解了下
作者: 、海    时间: 2014-6-14 09:51
学习学习
作者: GYSWL    时间: 2014-8-22 23:28
学习了……
作者: 王者之风西昆仑    时间: 2014-12-23 14:30
请问this和super在使用的时候有什么区别吗?
作者: dimost    时间: 2014-12-25 23:13
学习了 学习了  
作者: 43453186@qq.com    时间: 2015-3-14 07:55
不错,学习
作者: 张红兴    时间: 2015-4-6 00:54
本帖最后由 张红兴 于 2015-4-6 00:56 编辑


java中this有两种用法:
1、代表当前类
publicclassDog{
privateStringname;
privatefloatage;
publicsetName(Stringname){
this.name=name;
}
.......
}
这里的this就代表的当前的这个Dog类。this.name可以理解为dog.name,只是理解,不是等于。
之所以要用this.name=name;这种语法,这是java所提倡的写法,如果你的方法参数与类属性的名称不同,this大可不必要,但是java提倡构造方法参数与类属性名称相同的作法。
2、在构造函数中的使用
publicclassDog{
privateStringname;
privateintage;
//有一个参数的构造函数
publicDog(Stringname){
this.name=name;
}
publicDog(Stringname,intage){
this.name=name;
this.age=age;
}
//这个无参构造方法里调用的有两个参数的构造方法,这个也就是this的第二种用法了!
publicDog(){
this("nihao",20);
}
}
作者: daividtu    时间: 2015-11-9 10:15
嗯 学习了
作者: 图兰朵    时间: 2016-3-28 02:36
顶一个!!!!!
作者: lz19918888    时间: 2016-4-28 19:44
this.带表当前类,this()是调用有参构造
作者: innovator    时间: 2016-6-1 08:55
gentleman 发表于 2014-5-24 09:25
this(有参数/无参数)  用于调用本类相应的构造函数
super(有参数/无参数) 用于调用父类相应的构造函数
thi ...

言简意赅
作者: zhubin4615    时间: 2016-9-10 09:31
顶一个!!!!!厉害




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