gpt4 book ai didi

java - 为什么允许访问另一个对象的私有(private)字段?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:05 25 4
gpt4 key购买 nike

最近,我观察到在 Java 中访问 priavte 字段的意外行为。考虑以下示例,它说明了行为:

public class A {

private int i; <-- private field!

public A(int i) {
this.i = i;
}

public void foo(A a) {
System.out.println(this.i); // 1. Accessing the own private field: good
System.out.println(a.i); // 2. Accessing private field of another object!
}

public static void main(String[] args) {
(new A(5)).foo(new A(2));
}
}

为什么我可以在 foo 方法中访问类 A 的另一个对象的私有(private)字段(第二种情况)?

最佳答案

私有(private)字段保护的是一个类,而不是一个实例。主要目的是允许类独立于其 API 实现。在它们之间隔离实例,或保护实例的代码免受同一类的静态代码的影响将不会带来任何结果。

关于java - 为什么允许访问另一个对象的私有(private)字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16586809/

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