我必须决定是将变量放在构造函数中还是外部,但我一直觉得我缺少信息,我已经看过堆栈溢出的其他帖子,但所有提到它都是一个偏好的问题,然而我发现了两个我认为可能很重要的区别:
- 如果我决定将变量放在构造函数中,那么我必须为任何希望改变变量的函数都有一个对象参数,即使代码是类的内部代码。
-Subclassing会导致变量不出现,当类和任何子类必须具有变量才能正常运行时会导致问题。
我可能在所有这些方面都错了,但凌晨4点,我宁愿被告知我错了,因为骄傲导致错误。如果这已在其他地方得到解答而我错过了,我很抱歉,如果你能发布链接,我将不胜感激。
答案 0 :(得分:0)
解释构造函数内的所有其他操作,所有其他操作都被预编译,以便它们更快地运行
答案 1 :(得分:0)
就像www0z0k已经说过的那样,构造函数之外的声明被巧妙地解释,因此在某些情况下将声明它们放在外面可能是一种性能。
- 如果我决定将变量放在构造函数中,那么我必须为任何希望改变变量的函数都有一个对象参数,即使代码是类的内部代码。
这是正确的。
-Subclassing会导致变量不出现,当类和任何子类必须具有变量才能正常运行时会导致问题。
您应该考虑要存档的内容。大多数时候你应该选择一个好的软件设计然后考虑性能。您提到的这个子类化问题也可以保护某些变量不被更改。
问候,
iuiz
答案 2 :(得分:0)
-Subclassing会导致变量不出现,导致变量 班级和任何问题 子类必须包含变量 为了正常运作。
如果我理解正确您正在寻找 受保护的 字段(或属性)。
- 如果我决定将变量放在构造函数中,那么我必须拥有 任何函数的对象参数 希望改变变量,甚至 如果代码是类的内部。
Sry,我不明白......
@Performance:关于解释构造函数的所有内容,您可以在构造函数中添加一个简单的init(...)函数,它可以在构造函数中执行所有操作 - 但不会被解释。
public function ConstructorOfClass(arg1:int, arg2:*)
{
init(arg1, arg2);
}
private function init(arg1:int, arg2:*):void
{
// do whatever you want here
}