【小知识】java中的this.name=name是什么意思啊??this 有什么用啊,再哪出现?

用术语解释只会让初学者听得满头包,我也说说吧,慢慢的来了解,弄清楚每一个东西是什么,再你往下看前你必须确定你自己有足够的耐心,呵呵,刚起步都很累的。

借用yzbczq朋友的例子:
public class People{
String name;
//这个name这就是我们说的类的成员变量(也叫类的属性)

public void getName(String name){
//这里的是name是一个参数,是getName这一个方法(也叫函数)的一个参数(变量),跟上面的name不是一样的东西!你必须弄清楚现在有两个变量(参数)的存在

this.name = name;
}
}
好了,然后到问题来了这时候我们有一个成员变量,跟一个方法里面的局部变量(先弄清楚我说的两个东西分别是什么,不然别往下看),但是它们的名字是一样的!
好了,我们先别管this,如果我们有一个这个类的实例对象叫person(所谓类的对象,就是根据什么People这一个类(图纸)所制造出来的实例),那么这时候
this.name=name的意思也就相当于person.name,现在知道this说的是什么了吧?然后后面的那个name就是我们那个函数方法里面的参数,如果我们getName(String x),把这个name改名成为x,那么我们可以写成:
name = x,为什么此时可以直接用name呢?因为name是我们People这个类中的一个成员变量,而我们getName这里面没有一样名为name的变量,它就会直接引用我们的成员变量了。但是如果getName这个函数里面也定义了一个同名为name的变量,那么!这个函数就会以它自身的这个变量为准,所以如果在你的原例子中不用this,那么在这个函数里面不就是相当于说,我的一个变量等于它自己本身,这不是废话吗?

好了,我们再说this,this就是说现在这个实例(还记得实例把,我们这里的实例名字叫person),我们的getName可不止只有person这个实例引用的啊,如果我们写成person.name=name,那么如果我创建一个名字叫person2的实例,引用这个函数会是什么样的情况?那么现在明白this的作用了吧,它就是“我”的意思,你说的我,跟我本人说的我,都是我(都是this),但却指代了不同的东西。

呵呵,说得有点罗嗦了,但是,应该能看懂了吧。你这个this.name=name是在一个方法里面的吧,有点想起张孝祥的那个教程。
还有作为一个过来人,其实到后面的语法很简单,很容易看明白,但是理论基础却非常的苦涩难懂!但这个非常的重要,你看完上面朋友的留言没办法看懂的话就是基础不过关,你的基础不过关你即使请教别的高手你也没办法明白他们在说什么。呵呵,开始才是最难的,反复的看完再看,必须把教程的每一句弄懂,不然你即使知道了语法,以后也会出很多问题,最难的莫过于这些抽象的概念。你必须先了解清楚面向对象,对于初学者,下面的这篇文章是我见过的最好的,有点长,但如果没那个耐心,你还是放弃java吧

猜你喜欢

转载自blog.csdn.net/yueyang6019bo123/article/details/55254823