提问人:Lucifer G 提问时间:5/29/2021 最后编辑:Mark RotteveelLucifer G 更新时间:5/29/2021 访问量:393
此关键字无法访问对象字段
This keyword not able to access object field
问:
class school
{
int a;
public static void main(string[] args)
{
school obj = new school();
Console.WriteLine(obj.a);
Console.WriteLine(this.a);
}
}
尽管我们不能从静态方法访问实例变量,但在这里我们通过使用引用变量“obj”并访问实例变量来做到这一点。但是,当我们使用“this”关键字时,它会显示一个错误,即“this”不能用于访问静态方法中的实例变量。 obj 包含对象的地址,因此它能够访问。即使“this”指向实例变量,但它仍然无法访问。“this”是否以不同的方式获取对象的地址?
答:
1赞
Mirek Pluta
5/29/2021
#1
this
关键字只能在类的非静态方法中使用
1赞
mohamad liaghat
5/29/2021
#2
this
只适用于实例方法并引用当前对象。
在类正文中
public void printSchool() {
System.out.println(this.a)
}
在 main 方法中
School s = new School();
s.printSchool();
这里指的是this
s
评论
0赞
Lucifer G
5/29/2021
为什么“this”在 main 方法中不起作用,那么,如果我们可以使用引用变量来访问 main() 中的对象,那么“this”不应该也可以这样做吗?
1赞
mohamad liaghat
5/29/2021
this
是类的非静态方法的隐式参数。它不能在静态方法中使用。
0赞
mohamad liaghat
5/29/2021
public void printSchool(School this) { // 非静态方法的隐式参数。System.out.println(this.a) } 在静态方法中没有表示。
0赞
code
5/29/2021
好了,现在这是 Java。这就是为什么你只在想要一个 Java 答案时才将其标记为 Java。
下一个:这是什么意思?[复制]
评论