【小知识】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吧
  • 38
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
### 回答1: 在Java,关键字`this`表示当前对象,`this.name`表示当前对象的属性`name`。当方法参数名与对象属性名相同时,可以使用`this`关键字来区分它们,以便访问对象的属性而不是方法的参数。 例如,假设有以下类: ``` public class Person { private String name; public Person(String name) { this.name = name; } } ``` 在构造函数,`this.name`表示当前对象的属性`name`,而`name`表示传递给构造函数的参数名。通过使用`this.name = name`,将传递的参数值赋值给对象的属性`name`。 总的来说,`this.name=name`的作用是给对象的属性`name`赋值,其`this`指代当前对象。 ### 回答2: "java this.name=name"的作用是将传入的参数name赋值给类的实例变量name。 在Java,this关键字表示当前对象的引用,可以在方法内部使用。当类的成员变量与方法的参数名称相同时,使用this关键字对两者进行区分,以便引用成员变量。 这句代码"this.name=name"的this.name表示当前对象的实例变量name,而等号右边的name表示传入的参数name。通过将参数name赋值给实例变量name,可以将传入的值存储在当前对象的name变量。 这样做的好处是可以在方法内部访问和修改实例变量,而不会与方法参数混淆。通过使用this关键字,我们可以明确地表示出需要操作的成员变量,提高代码的可读性和可维护性。 例如,假设有以下的类定义: ```java public class Person { private String name; public void setName(String name) { this.name = name; } public String getName() { return name; } } ``` 在上面的代码,setName方法使用了this关键字将传入的参数name赋值给实例变量name。这样,在创建Person对象时,可以通过调用setName方法设置name的值,并通过调用getName方法获取name的值。 使用this关键字可以避免局部变量和实例变量重名时的歧义问题,提高了代码的可读性和可维护性。 ### 回答3: 在Java,this.name = name的作用是将传入的参数name赋值给当前对象的实例变量name。 在一个类,如果存在相同名称的局部变量和实例变量,为了区分局部变量和实例变量,可以使用关键字this来引用当前对象的实例变量。this代表当前对象的引用,通过this来访问和操作当前对象的成员变量和成员方法。 当一个方法的参数名称与实例变量名称相同的时候,使用this关键字可以显式地告诉编译器,我们要访问的是实例变量而不是方法参数。 例如,假设我们有一个Person类,并有一个实例变量name和一个方法setName,它们的参数名称都是name。这时候就可以使用this关键字来区分它们: public class Person { private String name; public void setName(String name) { this.name = name; // 将方法参数name赋值给当前对象的实例变量name } } 在上述例子,通过this.name = name将方法参数name赋值给实例变量name,这样我们就可以确保赋值的是实例变量而不是方法参数。这样做的好处是保证了数据的准确性和一致性。 总之,this.name = name的作用是将传入的参数name赋值给当前对象的实例变量name,以便在当前对象的其他方法可以使用该实例变量。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值