Java中关于this的基础问题,萌新求解答

小晨曦xxx 学生  2017-11-24 08:42:57
因为new Student(张三 20 学生) 以后会立即调用Student类中的构造方法嘛,构造方法中又调用了父类的构造方法,父类构造方法public Person()里的 this.name=name 这个this.name 指代的是什么,是抽象类Person的name属性吗? 最后System.out.println(s.talk())调用talk方法,方法里又出现了this.name,这里的又是指代的什么呢 求大神详解
...全文
132 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
引用 2 楼 weixin_41111013 的回复:
[quote=引用 1 楼 Tian_zhishang 的回复:] this限定的是当前对象的数据域变量,两个this.name都是指的s对象的属性那么
就是说因为首先创建了一个对象s 所以后面的this.属性值都是指的对象s的属性是吗? 也就是我可以把this.属性值 全部替换看做 s.属性值? 谢谢解答[/quote] 是的,因为Student继承了Person类,相应的属性也就继承了,为什么要用this,主要是因为局部变量和成员变量重名了,用this.name=name的意思是把形参传给了s的属性name,如果形参不是name,那连this都没必要写。
  • 打赏
  • 举报
回复
小晨曦xxx 2017-11-24
引用 1 楼 Tian_zhishang 的回复:
this限定的是当前对象的数据域变量,两个this.name都是指的s对象的属性那么
就是说因为首先创建了一个对象s 所以后面的this.属性值都是指的对象s的属性是吗? 也就是我可以把this.属性值 全部替换看做 s.属性值? 谢谢解答
  • 打赏
  • 举报
回复
this限定的是当前对象的数据域变量,两个this.name都是指的s对象的属性那么
  • 打赏
  • 举报
回复
相关推荐
发帖
Java EE
加入

6.7w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2017-11-24 08:42
社区公告
暂无公告