2010-12-19 3 views
0

변수를 생성자 또는 외부에 넣을 지 결정해야하지만 정보가 누락되었다는 느낌을 계속받습니다. 스택 오버플로에서 다른 게시물을 보았지만 모두 언급 한 바와 같이 우선 순위의 문제 였지만 아직 중요하다고 생각되는 두 가지 차이점을 발견했습니다.생성자 외부의 변수 인스턴스화와의 차이점

- 변수를 생성자로 지정하기로 결정하면 변경하려는 함수에 대한 객체 매개 변수가 있어야합니다. 코드가 클래스 내부에 있더라도 변수.

- 서브 클래 싱을하면 변수가 나타나지 않을 수 있습니다. 클래스와 서브 클래스가 올바르게 작동하려면 변수가 있어야 할 때 문제가 발생합니다.

나는이 모든 점에서 틀릴 수도 있지만, 4am에 나는 자존심 때문에 실수를 범하는 것보다 잘못되었다고 말하고 싶다. 이 사이트가 다른 곳에서 답변을 받았지만 놓친 경우 미안합니다. 링크를 게시 할 수 있다면 감사하게 생각합니다. 생성자 내부

답변

0

행동은 그들이 일하는 그래서 모든 사람들이 미리 컴파일되고 해석됩니다 빠른

0

www0z0k 이미 말했듯이, 생성자 외부 선언을 해석 merly, 그래서 어떤 상황에서 성능 BOST 수 있습니다 외부를 선언.

- 변수를 생성자 내에 넣기로 결정한 경우 코드가 클래스 내부에 있더라도 변수를 변경하려는 함수의 개체 매개 변수가 있어야합니다.

올바른 내용입니다.

- 서브 클래 싱을하면 변수가 나타나지 않을 수 있습니다. 클래스와 서브 클래스가 올바르게 작동하려면 변수가 있어야 할 때 문제가 발생합니다.

보관하려는 항목에 대해 생각해야합니다. 대부분의 경우 좋은 소프트웨어 설계를 선택하고 성능을 고려해야합니다. 언급 한이 서브 클래 싱 문제는 일부 변수가 변경되지 않도록 보호 할 수 있습니다.

인사, 변수가 나타나지 발생할 것

0

-Subclassing

iuiz, 클래스 및 서브 클래스가 제대로 작동하기 위해 변수를해야 할 때 문제가 발생 뭔가. 내가 당신을 이해하면

제대로은 보호필드 (또는 속성) 찾고 있습니다. 내가 생성자 내에서 변수를 넣어하기로 결정 - 만약

, 나는 코드가 클래스 내부에있는 경우에도 를 변수를 변경하고자하는 기능 의 오브젝트 매개 변수 이 있어야합니다.

SRY, 나는 ...

@performance을 그렇게하지 않습니다 해석 생성자에 대해 말했다 모두와 함께 당신은 당신이 모든 작업을 수행하는 생성자 내에서 간단한 초기화 (...) 함수를 추가 할 수 있습니다 생성자에서 할 것이지만 해석되지는 않습니다.

public function ConstructorOfClass(arg1:int, arg2:*) 
{ 
    init(arg1, arg2); 
} 

private function init(arg1:int, arg2:*):void 
{ 
    // do whatever you want here 
}