gpt4 book ai didi

java - 为什么嵌套类的私有(private)成员可以被封闭类的方法访问?

转载 作者:行者123 更新时间:2023-12-02 01:17:52 26 4
gpt4 key购买 nike

谁能告诉我私有(private)成员(member)的访问级别吗?我对这段代码困惑了很长一段时间:为什么Line类的私有(private)成员k可以在外部类的“print”方法中访问?

public class myClass {
public static class Line{
private double k;
private double b;
private boolean isVertical;

public Line(double k, double b, boolean isVertical){
this.k = k;
this.b = b;
this.isVertical = isVertical;
}

}

public static boolean print(Line line){
System.out.println(line.k);
}
}

最佳答案

规则在 JLS chapter on accessibility

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.

这里的成员字段k是在类Line中声明的。当您在 print 方法中访问它时,您是在包含该成员声明的顶级类的主体内访问它。

关于顶级类的章节是 here .

关于java - 为什么嵌套类的私有(private)成员可以被封闭类的方法访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57648023/

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