我是java的初学者。你能告诉我" 这个" operator将值传递给方法中的实例变量。
示例:
public class Cricketer {
private String name;
public void setName(String name){
this.name = name;
}
}
我想知道它将如何处理。任何解释清楚。
答案 0 :(得分:0)
this
被编译器静默传递为隐藏参数,可用于引用当前对象。非静态方法会自动将this
传递给它们。
答案 1 :(得分:0)
你的方法setName()不是静态的,所以它意味着你需要一个Cricketer实例来调用
Cricketer c = new Cricketer();
c.setName("xyz");
所以你的方法setName()可以理解为类似
c.name = "xyz";
c是“这个”。
答案 2 :(得分:0)
如果在Cricketer
中调用实例方法(不是静态方法),则需要为其指定一个对象:
Cricketer x = new Cricketer(...);
x.someMethod();
在someMethod
的正文中,您可以使用this
表示“您正在调用该方法的对象”,在本例中为x
。
同样,在构造函数的主体内部,this
将表示“我们刚刚创建的对象”。
因此,在setName
内,this.name
表示“我们称之为name
的对象的setName
成员”。通常,在对象的方法中,您只需说name
而不是this.name
;这里的问题是代码使用name
表示不同的含义,即您传递给setName
的字符串,并且该含义在setName
的正文中具有优先权。
答案 3 :(得分:0)
this
指向对象的当前实例 - 如果您在类Cricketer
中,当您创建该类的实例时,在类Cricketer中使用this
将引用该类的实例。因此,this.field
引用该类实例中的字段,并且作为参数传递的this
引用该类的特定实例作为整体。
答案 4 :(得分:0)
请注意,通常您不需要使用它来访问当前对象中的字段,但在上面的代码中还有一个名为name
的参数,它隐藏了{{1}的非限定使用访问对象中的字段。使用name
允许访问字段,尽管参数"隐藏"它