gpt4 book ai didi

java - 对象是否封装了数据,以至于同一类的其他实例也无法访问数据?

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

在 Java 中,

对象是否封装了数据,以至于同一类的其他实例也无法访问数据?仅当使用关键字“private”时? Java 中的“访问器方法”是什么 - 像 getName() 这样的方法?

谢谢

最佳答案

我不倾向于认为它是一个对象可以访问另一个对象,而是什么代码可以访问一个对象中的什么数据。

在 Java(和 C#,顺便说一句)中,类中的代码可以访问同一类的任何对象的私有(private)成员。然后您将获得包/程序集访问权限和公共(public)访问权限。

棘手的是 protected 访问,它是某种对子类中代码的访问——但这取决于目标对象:只有当对象是一个与代码位置或某个子类相同类型的实例 - 即使它被父类公开。例如,假设您有:

class Parent
{
protected int x;
}

class Child1 extends Parent
class Child2 extends Parent
class Grandchild extends Child1

然后在 Child1 代码中,您只能访问 Parent.x 已知(在编译时)是 Child1< 实例的对象孙子。例如,您不能使用 new Parent().xnew Child2().x

关于java - 对象是否封装了数据,以至于同一类的其他实例也无法访问数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/792361/

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