所以我在这里阅读Actionscript 3教程:http://www.adobe.com/devnet/actionscript/learning/oop-concepts/writing-classes.html
我想知道,Rectangle版本3如何比矩形版本2更好(更灵活,更灵活)?我看到在第三版中,它们创建私有变量,然后将私有变量更改为constructer方法中的变量,但随后它们返回并使用draw()中的私有变量。这有什么用处?
答案 0 :(得分:4)
保持变量私密就是'封装'。如果Class的大多数代码都是私有的,那么使用该类的任何代码都不需要知道它如何实现其方法。这意味着,只要方法名称和参数保持不变,就可以更改类实现方法的方式,而无需更改类外的任何内容。它还可以防止“紧耦合”;其中类依赖于其他类。
答案 1 :(得分:2)
想象一下,购买一台全新的电视机。你有一个遥控器,电视上有几个按钮,一些插孔,一两根线,扬声器和一个屏幕。现在你所要做的只是把电视插上电源,你准备好了,对吗?
你需要知道电视内部是如何工作的吗?你需要知道它是否有电子枪,液晶显示器或其他一些方法来传达图像?你需要知道那里有多少风扇,总线,电线,开关,逻辑门等? ...你需要知道如何自己制作电视吗?
没有。事实上,所有这些细节,零件,零件和零件隐藏在基本上是黑色塑料盒子的背后,不仅仅是为了美观的乐趣 - 而是让客户不要陷入他们不应该做的事情。
如果您是制造商,并且如果您将电视的电路板放在电视机外面而不是内部,那么一些不知道他们正在做什么的客户将会搞砸那些电路板,不小心搞砸了电视。此外,不必担心是否要弄乱这些电路板会花费他们时间学习如何使用该特定型号的电视。因此,您可以将电路板,电线和各种其他物品整齐地包装在黑色塑料盒内 - 远离客户的眼睛。他们需要(而且应该)担心的就是习惯他们的新遥控器。
这并不是说,请注意,客户不能只是拿出一把螺丝刀并开始拉出这些东西。这就是说,通过将这些东西保持在这样的状态,即使客户打开电视并搞乱内部工作,他们至少会知道他们正在踩着危险的地方。
私有变量和方法就像电视里面的点点滴滴,而公共变量和方法就像扬声器,监视器和遥控器。您出于相同的原因进行区分。在大多数情况下,程序员将这些细节从中隐藏起来(很多时候你是在防范自己和你自己的粗心错误),仍然可以看到你在那里得到的东西,他们仍然可以得到它并且弄得一团糟如果他们需要,但关键字“私有”给了他们一个非常可靠的实现,“这个变量/方法只属于这个类和这个类,它不应该被篡改到它之外的任何地方”。如果他们确实尝试从该类代码之外的东西访问它,它就不会基本上编译。