gpt4 book ai didi

oop - 公共(public)与私有(private)?

转载 作者:行者123 更新时间:2023-12-05 00:04:00 24 4
gpt4 key购买 nike

我真的不明白为什么将成员变量和成员函数设为私有(private)通常是一种好习惯。

是为了防止人们搞砸事情/更多的组织工具吗?

最佳答案

基本上,是的,这是为了防止人们搞砸事情。

封装(信息隐藏)是您正在寻找的术语。

通过只向外界发布最少量的信息,您可以随意更改内部结构。

例如,假设您将电话簿实现为一组条目并且不隐藏该事实。

然后有人出现并编写代码来搜索或操作您的数组,而无需通过您的“正常”界面。这意味着,当您想开始使用链表或其他更有效的数据结构时,他们的代码会中断,因为它使用了这些信息。

这是你发布这些信息的错,而不是他们使用它的错:-)

经典的例子是 setter 和 getter。你可能认为你可以在一个类中暴露温度变量本身,这样用户就可以这样做:

Location here = new Location();
int currTemp = here.temp;

但是,如果您想稍后在您询问温度时从气象局获取实际的网络信息,该怎么办。如果您首先封装了信息,那么调用者只会这样做:
int currTemp = here.getTemp();

您可以根据需要更改该方法的实现。您唯一需要保留的是 API(函数名、参数、返回类型等)。

有趣的是,它不仅仅是在代码中。某些大公司会在他们的文档中添加以下短语:

This technical information is for instructional purposes only and may change in future releases.



这允许他们提供客户想要的东西(额外的信息),但不会让他们永远支持它。

关于oop - 公共(public)与私有(private)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9386355/

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