2009년 6월 17일 수요일

Action Script OOP 문법

OOP를 지원하기 위한 데이터 형 정의 문법

OOP적인 프래그램을 하는 과정

① 데이타 형을 정의한다
② 데이터 형을 인스턴스화 한다.
③ 인스턴스를 활용한다.

1.package 키워드

이름 중복 문제를 해결하기 위해서 package+packagename 과 같은 방식으로 구성하며
packagename은 폴더 이름을 사용하도록 함으로서 이름 중복 문제를 해결합니다.

2. class 키워드

[dynamic] [public | internal] [final] class ClassName
[extends superClass] [implements interfaceName[,interfaceName...]] {

}

- dynamic
클래스를 실행 시간에 데이터 형을 결정하는 방식
인스턴스 생성한 이후에 자신 나름대로 속성이나 함수를 동적으로 삽입이 가능
메모리를 많이 사용하며 속도가 느려질수 있음

- final
함수 Override 나 상속을 불가

-extends
상속관계를 구성할때 사용

-implements
인터페이스를 구현할때 사용
다중 인터페이스 구현 가능

OOP 은닉성을 지원해주는 명령어

 접근제한자 설명
 internal(기본값) 같은 as 파일에서만 접근 가능
 private 상속 관계에선 접근 불가능, 인스턴스에서  접근 불가능
 protected
 상속 관계에서 접근 가능. 인스턴스에서 접근 불가능
 public 상속 관계에서 접근 가능. 인스턴스에서 접근 가능
 static 인스턴스에서 접근 불가능. 클래스 이름만 접근 가능.사용자정의
 Namespace 정의한 Namespace로 접근 가능


OOP 상속성을 지원해주는 명령어

클래스 이름과 동일한  function을 생성자라고 한다

var instance:Class = new Class();
     인스턴스  클래스

상속:다른 클래스가 가지고 있는 기능을 자신의 것으로 편입하는 기술
상속을 하는 이유 : 코딩의 재사용성과 클래스를 사용하는 사람의 입장에서의 편의성

is-a 상속
서로 동일한 기능을 구현하는 클래스 사이에 사용
인터페이스를 이용한 구현 상속 또는 인터페이스 상속과 일반 상속으로 구분

package Goods.Refrigeratiors.LG
{
     import Goods.Refrigerators.LG.SmallService
     public class BigService extends SmallService
     {
          public function BigRepair():void
          {
               trace("Big Repair");
          }
     }

}

has-a 상속
서로 이질적인 성경의 클래스 사이에 사용하는 방법으로 하나의 인스턴스 변수로 사용하는 방법
뭐든지 내부에 변수화해서 자유롭게 사용 가능

package Goods.Refrigeratiors.LG
{
    import Goods.Refrigerators.LG.SmallService
    public class BigService
    {
          public var vSmallService:SamllService = new Smallservice();
          public function BigRepair():void
         {
              trace("Big Repair");
         }
    }

}


OOP 다양성을 지원해주는 명령어

Interface
클래스의 사용법을 표준화하는 것이 인터페이스의 가장 중요한 목적
override
최종 인스턴스에 의해서 상속 받은 메서드가 Visible 되도록 해주는 키워드

특수 유형 연산자

명령문, 키워드 및 지시문

참고
새롭게 시작하는 플래시 CS3 액션스크립트 3.0 ( 윤훈남 )

댓글 없음:

댓글 쓰기