在 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().x
或 new Child2().x
。
关于java - 对象是否封装了数据,以至于同一类的其他实例也无法访问数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/792361/