this关键字

Adolph_Chen 2017-01-14 11:16:02

public class Student{ //定义一个类,类的名字为student。
public Student(String name){ //定义一个带形式参数的构造方法
this.name = name;
}
}



public class Student{ //定义一个类,类的名字为student。
public Student(String name){ //定义一个带形式参数的构造方法
this.name = name;
}
}

this.name=name之间的name=name没有区别,这句话对吗?
this这个关键字其代表的就是对象中的成员变量或者方法还是对象本身?
...全文
169 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
donggedeboke 2017-01-14
  • 打赏
  • 举报
回复
this.name=name和name=name没有区别,是错的,如果有一个全局变量是name,而你想通过一个方法改变它的值,而这个方法的参数也是name,如果你写name=name并不会改变那个全局变量,因为在方法里参数name只是局部变量,name=name只是重复赋值而已,不会改变那个全局变量的name的值,this代表当前,也就是当前这个对象,this.name就是当前这个对象的name,而不是方法里的局部变量,如果写this.name=name就能改变全局变量的那个name,这只是在变量重名的时候,this只是做一下区分,如果不重名也不用加this,为了规范代码防止出现不必要的麻烦还是加this
沁海棠 2017-01-14
  • 打赏
  • 举报
回复
把型参赋值给对象的属性,代表对象
guoba2015 2017-01-14
  • 打赏
  • 举报
回复
name = name ,就近原则,对象的name值就不会改变
qqq1352937294 2017-01-14
  • 打赏
  • 举报
回复
this.name中的name变量是成员变量(也叫实例变量),而在等号右边的是构造方法内定义的变量
ryuugu_rena 2017-01-14
  • 打赏
  • 举报
回复
加上this就是全局变量,一般用于与局部变量的区分。如果没用同名的局部变量,用name=name也无所谓,不过不建议这样写。还是加上this,指示是全局变量好些.
  • 打赏
  • 举报
回复
当然不一样了,如果全局变量也有一个name变量,那么全局变量和局部变量都为name,则会采用就近原则,即name=name军表示局部变量,加上this后,就指当前对象的属性,可以用this.name来给对象属性name赋值

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧