gpt4 book ai didi

.net - 什么是封装?它实际上是如何隐藏数据的?

转载 作者:行者123 更新时间:2023-12-02 13:12:59 25 4
gpt4 key购买 nike

搜索发现了一个简单的定义:数据隐藏。

但是,请考虑以下两个示例:

1) 第一个示例:

Class Employee
{
public int age;
}

2)第二个示例:

Class Employee
{
private int age;

public int getAge(){return age;}
}

问题:
在上述两个指定的示例中,没有数据隐藏,因为 age 要么被其他人修改,要么被其他人查看。数据隐藏在哪里?封装在上述示例中有何帮助?

最佳答案

数据隐藏。第二个示例隐藏了值的存储方式。此外,第二个示例使该值对于类外部的代码为只读。通过拥有私有(private)字段并通过方法或属性公开它们,您可以立即获得一些优势,其中一些是:

  • 访问控制粒度;您可以选择将该值设置为公开只读、读写或只写。
  • 可以在存储值之前验证输入
  • 可以添加日志记录或其他审核机制

请注意,封装不仅仅涉及访问控制。封装的主要用途是隐藏调用代码的实现细节。当调用代码想要检索一个值时,它不应该依赖于值的来源。在内部,该类可以将值存储在字段中或从某些外部资源(例如文件或数据库)检索它。 也许该值根本不存储,而是即时计算的。这对于调用代码来说应该无关紧要。

当您通过方法或属性公开该值时,您可以屏蔽调用代码的此类详细信息,这也使您可以更改实现,而不会影响调用代码。

关于.net - 什么是封装?它实际上是如何隐藏数据的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5673829/

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