大家好,我是奶綠茶
來筆記一下 android(Java) 的程式開發和 flash 之間的差別
宣告:
Java:類別當作宣告字(同C#)
String a = "字串";
AS3:使用var加上:類別的方式
var a:String = "字串";
function 宣告:
Java:回傳的型別寫在前方(同C#)
public void testFun(){
}
AS3:回傳的型別使用:型別
public function testFun():void{
}
Overloading:多載, 同以有一樣的函式名稱, 只要引數個數不同,或是引數型態不同
Java:支援(同C#)
public void testFun(){}
public void testFun(String pName){}
AS3:不支援
override:覆寫, 子類別繼承父類別, 但可改寫父類別的方法, 回傳值和引數必需皆相同
Java:支援
子類別直接寫和父類別一樣的方法即可
AS3:需加入 override 的關鍵字
function protected override testFun():void{
}
package:套件包(這個好難翻成中文)
Java:在類別的最上方輸入, 使用分號結速
package milkmidi.android;
public class xxxx(){}
AS3:在類別的最上方輸入, 使用大括號包住下方 class
package milkmidi.android{
public class xxxx(){}
}
繼承: 使用 extends 關鍵字
Java和AS3皆相同
Java和AS3皆是單一繼承
Java支援 private class, 所以可以 class 再寫一個 class
AS3不支援 private class, 最多能在 package 外寫一個 internal 的class
修飾字:private,protected,internal,public
Java和AS3皆相同
Set,Get:
Java:只能使用function來擴充
private String name;
public String getName(){return name;}
public void setName(String pName){name = pName;}
AS3:
private var _name:String;
public function set name(pName):void{ _name = pName;}
public function get name():String {return _name}
interface:介面
Java:支援 static 的介面
AS3:不支援(誤, 應為)
Focus1921 提到...
在Interface的部分,「AS3不支援」應該明確指出不支援static,但支援一般的介面 : )
常數宣告:
Java:使用 final
private final String TAG = "milkmidi";
AS3:使用 const
private const TAG:String = "milkmidi";
目前想到這些,有心得再來補上,
如有錯誤,麻煩跟我說,感謝
來筆記一下 android(Java) 的程式開發和 flash 之間的差別
宣告:
Java:類別當作宣告字(同C#)
String a = "字串";
AS3:使用var加上:類別的方式
var a:String = "字串";
function 宣告:
Java:回傳的型別寫在前方(同C#)
public void testFun(){
}
AS3:回傳的型別使用:型別
public function testFun():void{
}
Overloading:多載, 同以有一樣的函式名稱, 只要引數個數不同,或是引數型態不同
Java:支援(同C#)
public void testFun(){}
public void testFun(String pName){}
AS3:不支援
override:覆寫, 子類別繼承父類別, 但可改寫父類別的方法, 回傳值和引數必需皆相同
Java:支援
子類別直接寫和父類別一樣的方法即可
AS3:需加入 override 的關鍵字
function protected override testFun():void{
}
package:套件包(這個好難翻成中文)
Java:在類別的最上方輸入, 使用分號結速
package milkmidi.android;
public class xxxx(){}
AS3:在類別的最上方輸入, 使用大括號包住下方 class
package milkmidi.android{
public class xxxx(){}
}
繼承: 使用 extends 關鍵字
Java和AS3皆相同
Java和AS3皆是單一繼承
Java支援 private class, 所以可以 class 再寫一個 class
AS3不支援 private class, 最多能在 package 外寫一個 internal 的class
修飾字:private,protected,internal,public
Java和AS3皆相同
Set,Get:
Java:只能使用function來擴充
private String name;
public String getName(){return name;}
public void setName(String pName){name = pName;}
AS3:
private var _name:String;
public function set name(pName):void{ _name = pName;}
public function get name():String {return _name}
interface:介面
Java:支援 static 的介面
AS3:不支援(誤, 應為)
Focus1921 提到...
在Interface的部分,「AS3不支援」應該明確指出不支援static,但支援一般的介面 : )
常數宣告:
Java:使用 final
private final String TAG = "milkmidi";
AS3:使用 const
private const TAG:String = "milkmidi";
目前想到這些,有心得再來補上,
如有錯誤,麻煩跟我說,感謝
留言
Comparing the syntax of Java 5 and ActionScript 3
我有找到一個插件叫Elips,可結合Flex開發Android 2.1版本的app,它好像是把Flex碼轉換成Java碼,丟到手機上就能正常安裝,不過有很多限制,例如有些AS碼不支援、不能用自訂組件、中文會變亂碼...等
後來又找到另一個方法,是利用更改手機ROM的方式把Hero機的Android 2.1升級為 2.2,不過有些功能會無法正常運作,例如照相、攝影機,而且礙於2.1手機硬體的關係,執行效率會不理想
所以最後想說乾脆買台Android 2.2的手機,來用Flex Burrito開發,但是現在支援Android 2.2的手機那麼少,到時開發出來的app,客戶都不能使用,那等於是白忙一場...
這樣情形看來,是不是只能用Java開發才比較妥當??? @@a
麻請老師能夠給一些建議供小弟參考 Orz
能做的app 有限, 所以後來就放棄
而使用 AIR 來開發 Android
雖然方便,但以目前的手機版本普及率還不夠
不過這個時間久了就會克服
現階段,最保險的方法還是寫原生的 Java
還是用 Java 會好一點