구분 Java 5.0 ActionScript 3.0
라이브러리
패키징
.jar .swc
상속 class Employee extends Person{…} class Employee extends Person{…}
변수정의 및
초기화
String firstName=”John”;
Date shipDate=new Date();

int i;
int a, b=10;
double salary;
var firstName:String=”John”;
var shipDate:Date=new Date();

var i:int;

var a:int, b:int=10;
var salary:Number;
정의되지 않은 변수 N/A It’s an equivalent to the wild card type notation *.
If you declare a variable but do not specify its type, the * type will apply.

A default value: undefined var myVar:*;
변수 scopes block: declared within curly braces,
local: declared within a method or a block
member: declared on the class level
no global variables
No block scope: the minimal scope is a function
local: declared within a function
member: declared on the class level
If a variable is declared outside of any function or class definition, it has global scope.
문자열(String) 2바이트 유니코드의 불변값 좌동
문장 종료 시
세미콜론(;) 사용
필수 라인별로 구분되면 생략가능
Strict equality operator N/A === for strict non-equality use !==
상수 final 키워드로 정의
final int STATE=”NY”;
const 키워드로 정의
const STATE:int =”NY”;
Type 체킹 Static (checked at compile time) Dynamic (checked at run-time) and static (it’s so called ‘strict mode’, which is default in Flex Builder)
Type 체킹
연산자
instanceof is (instanceof - 예전방식)
as 연산자 N/A var orderId:String=”123”;
var orderIdN:Number=orderId as Number;
trace(orderIdN); // prints 123
기본형 byte, int, long, float, double,short, boolean, char 모든 기본형은 ActionScript 오브젝트임.
Boolean, int, uint, Number, String
아래 문장은 같은 의미임.

var age:int = 25;
var age:int = new int(25);
복잡한 유형 N/A Array, Date, Error, Function, RegExp, XML, 그리고 XMLList
배열 및 초기화 int quarterResults[]; quarterResults =
new int[4];

int quarterResults[]={25,33,56,84};
var quarterResults:Array
=new Array();
또는
var quarterResults:Array=[];
var quarterResults:Array=
[25, 33, 56, 84];
특히, 인덱스 값 대신에 이름을 통해 요소에 접근가능함 (Hashtable 처럼)
최상위 클래스 Object Object
객체 캐스팅
(형변환)

Person p=(Person) myObject;

var p:Person= Person(myObject);
또는
var p:Person= myObject as Person;

UP 캐스팅
(다형성)

class Xyz extends Abc{}

Abc myObj = new Xyz();

class Xyz extends Abc{}

var myObj:Abc=new Xyz();

가변유형 N/A var myObject:* var myObject:
패키지 구문
package com.xyz;
class myClass {…}
package com.xyz{
     class myClass{…}

}
접근 레벨 public, private, protected, default 좌동
Custom access levels: namespaces N/A Similar to XML namespaces. namespace abc;
abc function myCalc(){}
or abc::myCalc(){}
use namespace abc ;
콘솔출력 System.out.println(); trace();
임포트 구문
import com.abc.*;
import com.abc.MyClass;
좌동
Unordered key-value pairs Hashtable, Map
Hashtable friends = new Hashtable();
friends.put(”good”,
“Mary”);
friends.put(”best”,
“Bill”);
friends.put(”bad”,
“Masha”);
String bestFriend= friends.get(“best”); // bestFriend is Bill
Associative Arrays
Allows referencing its elements by names instead of indexes.

var friends:Array=new Array();
friends[”good”]=”Mary”;

friends[”best”]=”Bill”;

friends[”bad”]=”Masha”;

var bestFriend:String= friends[“best”]

friends.best=”Alex”;
Another syntax:

var car:Object = {make:”Toyota”, model:”Camry”};

trace (car[”make”], car.model); // Output: Toyota Camry

Hoisting N/A Compiler moves all variable declarations to the top of the function, so you can use a variable name even before it’s been explicitly declared in the code.
클래스
인스턴스화
Customer cmr = new Customer();
Class cls = Class.forName(“Customer”);
Object myObj= cls.newInstance();
var cmr:Customer = new Customer(); var cls:Class = flash.util.getClassByName(”Customer”);
var myObj:Object = new cls();
Private 클래스 private class myClass{…} private 클래스는 없음
Private 생성자 지원
보통 싱글톤에서 사용함
미지원.
Implementation of private constructors is postponed as they are not the part of the ECMAScript standard yet. To create a Singleton, use public static getInstance(), which sets a private flag instanceExists after the first instantiation. Check this flag in the public constructor, and if instanceExists==true, throw an error.
클래스와 파일명 A file can have multiple class declarations, but only one of them can be public, and the file must have the same name as this class. A file can have multiple class declarations, but only one of them can be placed inside the package declaration, and the file must have the same name as this class.
패키지 내에
정의할 수 있는
 항목
Classes 와 interfaces Classes, interfaces, variables, functions, namespaces, and executable statements.
동적 클래스
(define an object that can be altered at runtime by adding or changing properties and methods).
N/A dynamic class Person { var name:String; } //Dynamically add a variable // and a function Person p= new Person();
p.name=”Joe”; p.age=25; p.printMe = function () { trace (p.name, p.age); } p.printMe(); // Joe 25
function closures N/A.
Closure is a proposed addition to Java 7.
myButton.addEventListener(“click”, myMethod);
A closure is an object that represents a snapshot of a function with its lexical context (variable’s values, objects in the scope).
A function closure can be passed as an argument and executed without being a part of any object
추상클래스 지원 N/A
함수 오버라이딩 지원 지원
override 명시해야 함
함수 오버로딩 지원 지원안함
인터페이스 class A implements B{…}
메소드 골격과 final 변수를 정의함
class A implements B{…}
오직 펑션 구문만 정의 가능함
예외처리 try, catch, throw, finally, throws

캐치하지 않은 예외는 호출자에게 전달됨
try, catch, throw, finally

A method does not have to declare exceptions. Can throw not only Error objects, but also numbers:
throw 25.3;
Flash Player terminates the script in case of uncaught exception.
정규식 지원 지원

+ Recent posts