关于this的理解

关于this的理解

我听老师讲的临近原则那里没搞明白后来才觉得说的这个原则,可以这么理解,在对属性进行初始化的时候,如果没有this就会使用类里面自己定义的默认值去进行实例化,就是用初始值去赋值,然后实例化,如果加了this就会通过传入的参数进行实例化。其实我还是觉得这里有点没有很理解,这里到底是怎么进行的,this跟类里面创建的那个对象之间的关系。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕雪 2017-05-15 14:15:02

你好,"如果把name放进定义的类里面,name=this.name;那么离它近的就是成员变量的name,而不是方法参数的name",没问题。

“会造成赋值失败,就是赋的值是默认值”倒不会失败,也不会报错,就是跟没写是一样的。祝:学习愉快

好帮手慕珊 2017-05-13 19:12:09

this表示当前对象的默认引用,可以访问当前对象的属性和方法。看一下下面例子中的注释:

public class Cat{

   private String name;

  public Cat(String name){

      name=15;//如果这么写,那么name指的是哪个,是方法参数中的name,还是成员变量的name

                     //按照就近原则,也就是最近定义的那个就是这里用的。因此name指的是方法参数的name

     //那么构造方法的用处就是给成员变量赋值,如何表示呢,下面的代码就是了

     this.name=15;//this.name就表示成员变量的name值,一般用方法参数给成员变量赋值如下:

     this.name=name;

  }

}

关于你说的,this跟类里面创建的那个对象的关系,类里面创建的对象不知道具体指的是什么,可以再说明一下么?

祝学习愉快!

  • 提问者 lijikai1937 #1
    我后面说的这个this跟对象的关系我明白了。就是我觉得我的理解应该是正确的,你举的例子的就近原则就是离得近的是参数,所以属性就等于传递进来的参数的值了,就是方法参数里面的name。如果把name放进定义的类里面,name=this.name;那么离它近的就是成员变量的name,而不是方法参数的name,所以就会造成赋值失败,就是赋的值是默认值。可以这么理解吗?谢谢。
    2017-05-13 23:48:01
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师