2010-12-19 59 views
0

之间的差异我必须决定是将变量放在构造函数还是外部,但是我总是感觉我缺少信息,我已经看过堆栈溢出中的其他帖子,但是所有提到这是一个偏好问题,但我发现两个区别,我觉得可能是重要的:构造函数之外的变量实例与

- 如果我决定把变量放在构造函数中,那么我必须有一个对象参数用于任何希望改变的函数即使代码是类内部的变量。

- 子类化会导致变量不出现,当类和任何子类必须具有变量才能正常运行时会导致问题。

我可能在所有这些方面都是错误的,但在凌晨4点,我宁愿被告知我错了,也不会因为骄傲而犯错。如果这个问题在别处得到解答,我错过了,我很抱歉,如果你能发布这个链接,我会很感激。构造函数中的

回答

0

行动解释,所有其他预编译,使他们工作得更快

0

像www0z0k已经说过,在构造函数外的声明是梅利解释,因此宣布他们外头都可以在某些情况下性能博斯特。

- 如果我决定把变量放在构造函数中,那么即使代码是类的内部代码,我也必须为所有希望改变变量的函数设置一个对象参数。

这是正确的。

- 子类化会导致变量不出现,当类和任何子类必须具有变量才能正常运行时会导致问题。

你应该考虑一下你想要存档的东西。大多数情况下,您应该选择一个好的软件设计,然后考虑性能。您提到的这个子类问题也可以保护某些变量不被更改。

问候,

iuiz

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 
}