我正在学习C#,我想知道,声明类/方法私有的重点是什么?我们是谁隐藏/限制对这些类的访问。
因为如果某人正在编辑源代码,他们可以将标记从私有更改为公共。我不确定用户如何能够访问这些方法以及它会导致什么问题。
tldr;访问修饰符有什么意义。
谢谢!
答案 0 :(得分:7)
由于此功能通常被称为会员可见性,因此不是安全功能。它对程序员来说很方便,旨在帮助限制跨类依赖。通过声明成员私有,可以防止其他代码直接访问它。这有两个好处:
成员可见性可能是实现封装的最重要的语言特性,封装是面向对象编程的核心原则之一。
答案 1 :(得分:1)
这是一个基本的OO概念 - encapsulation,与安全本身无关。引用维基百科(强调我的):
隐藏对象的内部保护其完整性 阻止用户将组件的内部数据设置为 状态无效或不一致。封装的好处是 可以降低系统复杂性,从而提高稳健性 允许开发人员限制软件之间的相互依赖性 组件。
答案 2 :(得分:1)
它使您的代码保持整洁。您将代码分为公共接口和私有内部。
这样,您可以更改内部结构,而不必担心会破坏依赖于您的课程的代码。您还可以安全地假设在您不看时没有其他代码修改了您的内部状态。
答案 3 :(得分:0)
访问修饰符用于封装:它们允许您进行排列 您的代码在包和类中,并且只有“官方”公开 界面可见外部,同时隐藏实现 详细信息(您要执行的操作,以便以后可以更改它 告诉任何人。)
当您将代码发布为时,这尤其(仅?)很重要 库供其他程序员使用。即使代码仅用于 你自己的程序,它有助于将更大的程序组织成几个 包。 - Thilo
答案 4 :(得分:0)
您可以通过两种方式编写代码:专为扩展而设计,并按照原样使用。
您可能有也可能无法访问源代码。
访问修饰符在为扩展设计的代码中最为重要,客户端程序员(扩展和使用您的代码的程序员)只需要访问您公开的API - 基本上,通过使用这些访问修饰符提供的接口。
答案 5 :(得分:0)
访问修饰符用于encapsulation,因此对象/类的内部对外部用户或类是隐藏的。这可以防止用户通过修改其实例变量和/或函数来意外或故意破坏对象/类。
封装是Open/closed principle的一个重要部分,它指的是“开放式扩展”但“关闭以进行修改”的类。这个原则允许扩展类而不用担心类的API可能在将来发生变化。