관리 메뉴

nkdk의 세상

OOP개념 전반적인 것.. 본문

My Programing/ActionScript

OOP개념 전반적인 것..

nkdk 2008. 3. 9. 22:20
아주 하루만에 끝장을 낼려고 하네요 ^_^; 이번엔 OOP개념 겉 핡기 인데요. 기본 개념을 할려는게 아니라 as3.0 에서 사용되는 것에서 설정 법이라던지 사용법, 그리고 자바에 비해 틀린점 위주로 설명하려 합니다.

일단

// FirstClass.as
package
{
public class FirstClass
{
public var sHelloText:String = "hello";
public function getText():String{
return sHelloText;
}
}
}

package 뭐 자바에서 보다 시피 비슷하지만 약간 다르죠?
하지만 결론적으로는 중복되는 문제를 해결하기 위해서 사용되는 쪽에 가깝다고 해야 겠습니다. 자바의 것과는 좀 다르죠.
as파일을 검색하기 위한 Classpath 설정
package 맨 상위 폴더를 지정해서 플래시가 검색 할 수 있는 환경을 만들어야 하는데 일단 기본적으로 ./ 하고 as3.0/classes 가 기본으로 설정되어 이 ㅆ습니다.
edit-preferences..-ActionScript-Language:ActionScript .0 Setting 을 클릭하여 추가 설정할 수 있습니다.

다음과 같이 클래스의 키워드를 설정할 수 있습니다.

[dynamic] [public | internal] [final] class className
[extends superClass ] [implements interfaceName[, interfaceName...] ]{
내용
}

dynamic 함수는 함수가 정의된 이후 속성이나 함수를 동적으로 삽입이 가능합니다. 그렇기 때문에 메모리를 많이 사용합니다. 속도를 느리게 하는 원인이죠. 결론적으로 쓰지 않으시는 편이 좋겠네요.

접근제한자 이건 자바에서 쓰는 거랑 똑같습니다.

internal(기본값): 같은 as 파일에서만 접근 가능
private: 상속 관계에선 접근 불가능
protecte: 상속에서 접근 가능
public: 상속, 인스턴스 접근 가능
static: 클래스 이름만 가능 인스턴스로는 불가
Namespace: 정의한 Namespace로 접근 가능

자바와 비슷합니다.
oop의 개념에 대해서는 이미 자바에서 했기 때문에 생략합니다.

자바와 약간 다른 사용 방법을 설명하겠습니다.

package Goods.Tv.Samsung
{
public class SmallService
{
public function SmallRepair():void
{
trace("조그만한 수리");
}
}
}

package Goods.Tv.Samsung
{
import Good.tv.Samsung.SmallService;
public class BigService extends SmallService
{
public function BigRepair():void
{
trace("큰 수리를 한다");
}
}
}


여기서 보는 것과 같이 약간 틀립니다. void 부분이 뒤에 갑니다.
^_^ 여기 까지 하고 다음 회에서는 왜 플래시에 as3.0을 써야 하는가에 대해서.. 그리고 앞으로의 as 에 대해서? 개인 적인 고찰입니다 ^^