gpt4 book ai didi

java - 如何访问这个私有(private)变量?

转载 作者:太空宇宙 更新时间:2023-11-04 13:20:48 25 4
gpt4 key购买 nike

当我编写以下代码时,编译器如何不提示?

public class MyClass 
{
private int count;

public MyClass(int x){
this.count=x;
}

public void testPrivate(MyClass o){
System.out.println(o.count);
}
}

即使它是编写 testPrivate 的同一类的实例,它不应该在 System.out.println(o.count) 处给出编译错误吗?毕竟,我正在尝试直接访问私有(private)变量。
该代码甚至运行良好。

最佳答案

私有(private)成员可以从声明它的类中的任何方法访问,无论该方法是访问其自己的(this)实例的私有(private)成员还是其他实例的私有(private)成员。

这在 JLS 6.6.1 中有说明。 :

...Otherwise, if the member or constructor is declared private, then access is permitted if and only if it occurs within the body of the top level class (§7.6) that encloses the declaration of the member or constructor.

Java 的这一功能允许您编写接受类实例作为参数的方法(例如 - clone(Object other)compareTo(Object other)),而无需依赖具有非私有(private) getter 的类来获取需要访问的所有私有(private)属性。

关于java - 如何访问这个私有(private)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33074663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com