본문 바로가기

Package 패키지 파일들을 구분해서 저장하는 하드디스크상의 디렉토리클래스와 인터페이스를 그룹으로 분류하여 넣는 공간서로 다른 네임스페이스로 구분 패키지 문법 packagename.ClassName 클래스와 구분하기 위해 첫 글자를 대문자로 표기하지 않는다.패키지나 클래스의 이름이 충돌하지 않도록 도메인 이름을 먼저 표기한다. Import문 import packagename.ClassName; import packagename.*; (전체 패키지 불러오기) import.packagename.subpackagename.*; import문을 사용한 이후에는 전체경로 접근법 대신에 상대경로 접근법을 사용할 수 있다.
Interface 인터페이스새로운 데이터타입을 생성하는데 사용추상적으로 데이터 타입만을 정의클래스가 어떤 인터페이스를 구현한다면, 해당 인터페이스에 존재하는 메소드를 모두 정의해야 함 (파라미터 개수, 파라미터 데이터타입, 반환값의 데이터타입도 동일)인터페이스 문법interface SomeName { function method1 ( param1:datatype, ...paramn:datatype ):returnType; function method2 ( param1:datatype, ...paramn:datatype ):returnType; ... function methodn ( param1:datatype, ...paramn:datatype ):returnType; }interface 키워드를 사용하여 인터페이스를 ..
클래스 제작 (ImageViewer 5) 이미지뷰어의 성능 확장 (서브 클래스 사용) 이미지 로드 이미지 출력 마스크 설정 이미지 주변에 경계선 표시 이미지의 다운로드 상태를 표시 화면 영역의 위치를 재설정 화면 영역의 크기를 재설정/** * ImageViewer * An on-screen rectangular region for displaying a loaded image. * Updates at: http://www.oops4u.com/blog/as2/imageviewer5/ * * @author: Oops4u.com * @version: 5.0.0 */ /** * 화면 영역의 위치와 크기를 재설정 할 수 있는 ImageViewer의 서브클래스 */ // ImageViewer 클래스의 인스턴스 생성방법 유지 class ImageViewer..
서브클래스의 생성자 함수 서브클래스의 생성자 함수 클래스를 확장한 후 서브클래스에서 자신만의 생성자 함수를 새로 정의할 수 있다. 서브클래스와 관련 있는 초기 설정 작업을 수행한다.서브클래스에 정의된 속성의 초기값을 설정한다.슈퍼클래스의 생성자를 실행한다. (super 연산자 이용)class A { public function A { } } class B extends A { // 서브클래스의 생성자 public function B { // 슈퍼클래스의 생성자를 명시적으로 호출 super ( ); } } 서브클래스의 생성자 함수에서 super()는 첫 번째 줄이어야 한고, super()는 한번만 실행한다. 서브클래스의 생성자 함수는 슈퍼클래스의 생성자와 다른 파라미터로 정의할 수 있다. class Rectangle { priva..
오버라이딩 (Property) 속성 오버라이딩 인스턴스(또는 클래스) 속성은 클래스(또는 인스턴스) 속성으로 오버라이드 할 수 있다. 하지만 많은 혼동을 초래하기 때문에 반대의 과정을 사용하는 것은 좋지 않다. 인스턴스 속성은 오버라이드 시 자바와 달리 개별 인스턴스에서 동일한 속성 값을 가진다. 속성 오버라이드에서는 super 연산자로 슈퍼클래스의 속성에 접근할 수 없다. 클래스 속성 오버라이딩 class A { // 클래스 속성 s 생성 public static var s:Number = 20; } class B extends A { // 클래스 속성 s를 오버라이드 public static var s:Number = 25; public function showS ( ) { // 서브클래스의 속성 사용 s trace ( "B.s ..
오버라이딩 (Class Method) 클래스 메소드 오버라이딩 슈퍼클래스의 클래스 메소드(static 메소드)를 오버라이드 하려면, 서브클래스에서 동일한 이름의 static 메소드를 정의하면 된다. 일반적으로 클래스 메소드와 인스턴스 메소드를 동일한 이름으로 정의하지 않는다. class A { public static function m ( ):Void { trace ( "A.m ( ) was called." ); } } class B extends A { public static function m ( ):Void { trace ( "B.m ( ) was called." ); } } 오버라이드된 클래스 메소드의 실행 오버라이드와 상관없이, 클래스의 이름과 함께 메소드를 호출해야 한다. 서브클래스의 클래스 메소드에서 슈퍼클래스의 클래스 메소..
오버라이딩 (Instance Method) 오버라이드 슈퍼클래스에 존재하는 메소드나 속성을 재정의하여 서브클래스에서 다른 버전을 제공하는 것이다. 동일한 이름을 사용하여, 다른 속성(또는 메소드)이 기존 속성(또는 메소드)을 대체하는 것을 뜻한다. 서브클래스에서 속성(또는 메소드)을 오버라이드 하여 사용하는 것은 슈퍼클래스의 속성(또는 메소드)에 아무런 영향을 주지 못한다. 인스턴스 메소드 오버라이딩 슈퍼클래스의 인스턴스 메소드를 오버라이드 하려면, 서브클래스에서 동일한 이름으로 인스턴스 메소드를 정의하면 된다. class Rectangle { private var w:Number = 0; private var h:Number = 0; // 슈퍼클래스의 인스턴스 메소드 정의 public function setSize ( newW:Number, n..
상속 vs 합성 합성 (composition)클래스의 인스턴스를 내장 속성으로 정의하고, 인스턴스를 통해 속성이나 메소드를 사용한다. 상속에서 사용하는 것과 같은 특별한 문법이 필요없다. 앞단의 클래스는 뒷단 클래스의 주요 기능을 확장하거나 새롭게 정의하는데 있어 자유롭다.// 상속에 있어서 슈퍼클래스에 해당하는 뒷단의 클래스 class BackEnd { public function doSomething ( ) { } } // 상속에 있어서 서브클래스에 해당하는 앞단의 클래스 class FrontEnd { // 뒷단 클래스의 인스턴스를 내부 속성으로 저장 private var be:BackEnd; // 생성자에서 뒷단의 클래스의 인스턴스를 생성 public function FrontEnd ( ) { be = new Ba..