gpt4 book ai didi

java - "Data Encapsulation"是什么意思?使用私有(private)数据字段或方法?

转载 作者:行者123 更新时间:2023-12-04 06:32:43 25 4
gpt4 key购买 nike

假设我有一个 ClassAClassB扩展 ClassA

ClassA {
private int x;

private void m1()
{

}
}

ClassB extends ClassA {

}

在数据封装下,我们应该私有(private)数据字段和方法。那是对的吗?

但是,在这种情况下, ClassB无法使用 ClassA的数据字段和方法。

那么,在数据封装下,我应该只使用私有(private)访问修饰符吗?

我可以使用 protected 访问修饰符而不是私有(private)来解决数据封装规则下的问题吗?

最佳答案

本质上,封装是一种确保类中的某些函数仅由经过测试且已知可以工作的进程运行的方法。如果一个函数没有理由被除你想要的对象之外的任何对象调用,为什么要赋予它被看到和意外调用的能力?

它实际上更像是程序员控制的一种形式,设置正确代码使用的规则和基本准则,特别是在您只想公开某些函数或类的 API 场景中。

“良好实践”指出,您应该将“私有(private)”用于不与类本身以外的任何东西交互的函数。对于需要与子类交互的函数,可以使用protected。对于其他类之间的所有其他接口(interface),请使用 public。

关于java - "Data Encapsulation"是什么意思?使用私有(private)数据字段或方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5208802/

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