0

为什么我们使用 private 关键字?我知道它限制了对 var 或方法的访问,但为什么我们必须限制访问?

4

5 回答 5

4

如果您公开所有方法和变量,当另一个程序员尝试对您编写的类做某事时,这将非常困难,因为他不知道哪些方法负责您的类的内部行为,哪些是他的方法不应该使用,因为他会弄乱对象的内部状态并导致错误。

于 2012-08-08T02:52:03.303 回答
1

你不必“必须”做任何事情。只公开绝对必须公开的内容是一种很好的做法,尤其是当您创建一个连接呈指数增长的大型程序时,副作用的风险也会随之增加。这实际上是关于管理复杂性。阅读封装和信息隐藏以及这如何帮助降低大型系统的复杂性。一本好书是 Grady Booch 的面向对象设计,以了解更多信息。

于 2012-08-08T02:52:10.713 回答
0

在 OO 世界中,要实现封装,了解您想要公开的对象的功能或行为非常重要,并且每个访问标识符在其中起着重要作用。在 Code Complete 书中,McConnell 强烈鼓励将所有变量设为私有。

于 2012-08-08T02:59:49.577 回答
0

假设您正在构建一个实用程序库,并且您将把方法作为实用程序公开给外部世界。但是这些方法可能会调用一些私有的方法。所以直接调用这些私有方法可能没有任何意义,在最坏的情况下,它们甚至可能会损害对象的状态。即使在 jdk 中,也有很多例子可以解释 private 的用法。在String类中,有一个私有方法checkBounds,它只检查有效的构造函数参数,以防万一public String(byte bytes[], int offset, int length, String charsetName)

公开此方法(使其公开)对 String 类没有意义。

于 2012-08-08T03:01:47.797 回答
0

顾名思义,它是私​​有的/无法从外部类访问的东西面向对象的编程语言有一个重要的概念,称为封装,这意味着限制对某些对象组件的访问。在开发代码时,您需要对其他类隐藏一些对象,在这种情况下,将这些对象/变量删除为私有。私有访问仅对定义它的类。

于 2012-08-08T03:10:47.370 回答