关于this的理解

来源:3-1 课程总结

lijikai1937

2017-05-13 13:03:06

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

写回答

2回答

好帮手慕珊

2017-05-13

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跟类里面创建的那个对象的关系,类里面创建的对象不知道具体指的是什么,可以再说明一下么?

祝学习愉快!

1
hijikai1937
h 我后面说的这个this跟对象的关系我明白了。就是我觉得我的理解应该是正确的,你举的例子的就近原则就是离得近的是参数,所以属性就等于传递进来的参数的值了,就是方法参数里面的name。如果把name放进定义的类里面,name=this.name;那么离它近的就是成员变量的name,而不是方法参数的name,所以就会造成赋值失败,就是赋的值是默认值。可以这么理解吗?谢谢。
h017-05-13
共1条回复

好帮手慕雪

2017-05-15

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

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

0

0 学习 · 14452 问题

查看课程