【问题标题】:The point of public/private variables and functions?公共/私有变量和函数的重点?
【发布时间】:2011-03-15 19:34:39
【问题描述】:

这不是文字编码问题,我只是想知道,使用公共和私有函数和变量有什​​么意义?我将在哪里使用它们?

我一直认为它们“旧”或不再需要它们,但我确信它们在某些地方被使用是有充分理由的。

【问题讨论】:

  • 附带说明,旧的和不需要的代码应该被简单地删除:)
  • 为什么它们会是“旧的”或“不需要的”?封装仍然非常活跃。
  • this post 有一个很好的答案。
  • 这个question 有一些很好的例子(也有一些平庸的例子)。

标签: php oop


【解决方案1】:

基本上,当您开发其他开发人员将使用的类时:

  • public 方法和变量是其他开发人员将(需要) 使用的 -- 你的类做什么
  • private 方法和变量是您作为该类的开发人员用来使其工作的东西 - 这是您的类如何内部工作>.

其他人需要能够使用您的课程;但不知道它是怎么做到的。


如果您想了解更多,您必须搜索封装

【讨论】:

  • 所以基本上,如果我打算分发我的代码,他们会区分其他人会使用的函数和类自身使用的函数?
  • 即使你不分发你的代码:任何使用你的类的人(甚至你自己)都知道他们可以使用它的接口(公共方法) i>,即使你修改了类(私有方法)的内部工作,它们也会一直存在
  • 我明白了,我明白了。但是声明它在功能上没有区别,对吗?
  • 除了只能从类外使用公共属性/方法吗?没有。
【解决方案2】:

Private 是与我们班级的内部工作有关的任何东西,不应被触及(左消毒)。例如,可能是目录的路径或 Web 服务的路径,这对使用该类的人没有用处,但很大程度上取决于该类的操作方式。

Public 通常是您希望向使用该类的任何内容公开的任何内容,例如生成的值、用户名/密码配置——这些内容(尽管该类已设置 [通用] 功能)可能特定于 那个实例或运行时。

把它想象成经营一家企业;您可以向您的客户提供服务,让他们了解他们需要哪些信息才能进行操作(公共信息)。作为补充,您需要自己的信息(供应商、定价等),您不希望他们知道,但需要正常运行(私人)。

【讨论】:

    【解决方案3】:

    如果变量或方法是私有的你不能从外部访问它一个对象。这样您(作为程序员)将不会直接使用它,这让面向对象库的创建者可以更改其内部。而且这些更改对您的代码是透明的,因为更改只涉及私有元素,公共 API 保持不变。

    另一个好处就是我们所说的封装。如果数据无法从外部访问(私有),您必须要求对象(通过其公共 API)为您做事,而不是获取其数据。它有助于以他们设计的方式使用对象,以使用能够构建更大更稳定的系统的方式。

    【讨论】:

      猜你喜欢
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 2011-12-03
      • 2016-01-09
      • 2011-05-25
      • 2010-10-13
      • 2012-09-03
      相关资源
      最近更新 更多