1

所以我在这里阅读 Actionscript 3 教程:http: //www.adobe.com/devnet/actionscript/learning/oop-concepts/writing-classes.html

我想知道,矩形版本三比矩形版本二更好(更可重复和灵活)?我看到在第三版中,他们创建了私有变量,然后将私有变量更改为构造方法中的变量,但随后他们返回并在 draw() 中使用私有变量。这有什么好处?

4

2 回答 2

4

保持变量私有就是“封装”。如果类的大部分代码是私有的,那么任何使用该类的代码都不需要知道它是如何实现其方法的。这意味着,只要方法名称和参数保持不变,您就可以更改类实现方法的方式,而无需更改类之外的任何内容。它还可以防止“紧耦合”;类依赖于其他类的地方。

于 2013-09-06T15:04:57.040 回答
2

想象一下购买一台全新的电视。你有一个遥控器,电视上有几个按钮,一些插孔,一两根电线,扬声器和一个屏幕。现在你所要做的就是把电视插上电源,你就可以开始了,对吧?

您需要了解电视内部的工作原理吗?您是否需要知道它是否有电子枪、液晶显示器或其他方式来转换图像?您是否需要知道里面有多少风扇、总线、电线、开关、逻辑门等?...您需要知道如何自己制作电视吗?

不。事实上,所有这些细节、点点滴滴和零件都隐藏在本质上是黑色塑料盒的后面,这不仅仅是为了美观——它是为了防止顾客接触到他们不应该接触的东西。

如果您是制造商,并且如果您将电视的电路板留在电视的外部而不是内部,那么一些不知道自己在做什么的客户会弄乱这些电路板不小心把电视搞砸了。此外,还要担心是否会弄乱这些电路板,这将花费他们学习如何使用特定型号电视的时间。所以你把电路板、电线和其他各种东西整齐地包装在那个黑色的塑料盒子里——远离顾客的眼睛。他们需要(并且应该)担心的只是习惯他们的新遥控器。

请注意,这并不是说客户无论如何都不能只是拿出螺丝刀就开始拔出这些东西。这只是说,通过将这些东西藏起来,即使客户确实打开电视并弄乱了内部运作,他们至少也会知道他们正在踏上危险的土地。

私有变量和方法就像电视内部的零碎,而公共变量和方法就像扬声器、监视器和遥控器。您出于相同的确切原因进行区分。在大多数情况下,你隐藏这些细节的程序员(很多时候是你保护它免受自己和你自己粗心的错误)仍然可以看到你在那里得到了什么,他们仍然可以得到它并搞砸如果他们需要的话,但是关键字“private”让他们非常清楚地意识到“这个变量/方法属于这个类并且只属于这个类,它不应该被篡改它之外的任何地方”。如果他们确实尝试从该类代码之外的东西访问它,它基本上不会编译。

于 2013-09-06T15:58:28.170 回答