我对这个关键字的概念有一点疑问,让我向您展示一个可以解释它的示例
public class InheritanceInJava
{
public static void main(String args[])
{
A obj = new A(4,5);
obj.num3 = 4; //using object to access private member of class which is not possible
}
class A
{
private int num1;
private int num2;
private int num3;
A(int num1, int num2)
{
this.num1 = num1; //this keyword can access num1 in order initalize value
this.num2 = num2;
}
}
现在,根据 this 关键字 的定义, this 关键字 可用于从实例方法或构造函数中引用当前对象的任何成员。
由于这是对调用方法或构造函数的当前对象的引用,并且由于类本身的对象无法访问类的私有(private)成员,因此 this 关键字如何访问它?
如果我们看上面的例子:
this -> obj//this 引用调用构造函数或方法的当前对象
如果 obj.num3 = 4 或 obj.num1 = 6 无效。那么 this.num1 = num1 如何有效?
最佳答案
private
访问修饰符将这些变量的访问限制在顶级类内部。由于您是从顶级类内部调用 this
(您必须这样做),因此您可以访问这些变量。
我说“顶级”类而不仅仅是类来涵盖嵌套类的情况(外部类可以访问其内部类的私有(private)字段)。
关于java - 这个关键字如何访问类的私有(private)成员,而类本身的对象却不能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40777721/