純粋なプログラミングコンテキスト(構造体& OOPなど)では、Java/C++とActionScriptの主な違いは何ですか(混乱しないように注意してください)。注目すべきまたは重要な違いがあれば、歓迎します。OOPに関するJava、C++、ActionScript3.0の違いは何ですか?
答えて
非型配列。 Actionscript(ECMAScript/Javascriptの方言なので、簡単に使えるとわかっている場合)は、Arrayクラスを持っています。それは型がなく、慣れるだけのものです。
すべての動的オブジェクトは、ハッシュテーブルにすることができます。これは実際には時々本当にいいです。
シンタックスはかなり似ているので、拾いやすいです。スコープの違いがありますが、変数と関数の宣言が異なっています。
ECMAScriptはJava/C++よりもダイナミックであり、非常に便利です。
Flexを使用している場合は、MXMLを十分に活用しようとすると、ある種の作業がはるかに簡単になります。
私はこれに気づくようにこれに追加しようとします。
ActionScript 3.0は、能力の限りでは、C++よりもJavaに最も近いと言えます。インタフェース、単一継承、メタデータをサポートしています。それは両方の構文とは異なりますが。 C/C++/JavaスタイルからActionScriptへの移行の最大の違いは、変数の定義です。 ActionScript 3で、それは、このようなとして行われることになるのに対し
int x = 0;
:
var x : int = 0;
varが必要であり、型が後に指定されているCでは、int型を宣言するためには、次の操作を行います結腸
機能にも同様の変更が必要です。 Cで:
void foo(int x) { //yeah }
とActionScript 3:
function foo(x: int) : void { //yeah }
のActionScript 3はまた、ブラケット演算子[]の使用を介してメタデータをサポートします。おそらく最も一般的なメタデータはBindableです。Bindable宣言の後の変数は、変数の変更時に自動的に更新されるコンポーネントにバインドされます。
[Bindable]
var x : int = 0;
これはおそらく、私が考えることができるCスタイルとASスタイルの最も大きな違いです。 Flexを使用している場合、MXMLはまったく新しい構文と能力を提供します。
編集:ちょっとしたことを思い出しました:ActionScript 3でコンストラクタのオーバーロードがありません。デフォルトのコンストラクタが残っています。オプションのパラメータを追加したい場合は、次のようにそうする必要があります。
は、上記の例でclass Foo
{
public function Foo(x : number, y : int = 3, z : string = "default") : void
{ //stuff here }
}
、xが必要ですが、両方y、zは任意であり、3と「デフォルト」にデフォルト設定され、それぞれ。
オブジェクトクラスについてのご質問は、hereがJavaとAS3の違いを詳しく説明している良い記事です。
Thisはどのようなクラスオブジェクトであるかを説明します。本質的にすべてのクラス宣言はClassクラスのインスタンスです。それは混乱の種ですが、あなたがそれに慣れても、プログラムの仕方やAS3がどのようにOOを行うかは、実際には変わりません。 AS3 OOはJava OOに非常に近いです。
より明確にすることができます。私は、AS3ではクラスが単なるクラス以上のものであると聞いています。クラスは「クラスオブジェクト」と呼ばれています。私はこれを理解していませんでした。 –
クラスとクラス階層は、AS3では「偽造」されています。 AS3はJavascriptに近く(実際にはクラスの概念はありません)、プロトタイプベースのオブジェクトで動作します。
あなたはより明確になることができます。私は、AS3ではクラスが単なるクラス以上のものであると聞いています。クラスは「クラスオブジェクト」と呼ばれています。私はこれを理解していませんでした。 –
JavaとJavascriptの対比は、http://peter.michaux.ca/articles/transitioning-from-java-classes-to-javascript-prototypesにあります。 Actionscriptでは "class" esを使用できますが、 MXMLCコンパイラは、プロトタイプベースのオブジェクト定義を使用するようにコードをマッサージしています。 – an0nym0usc0ward
あなたはクラスがAS3で偽造されていると思います。 AS2はjavascriptと似ていましたが、AS3はjavaとよく似ています。私が与えた答えのリンクを読んでください。 AS3は現在、適切な「育った」言語です:) – kenneth
これらの投稿を実際にチェックアウトする必要があります。 JavaからActionscriptへの移行方法について詳しく説明しています。
http://www.javaworld.com/javaworld/jw-02-2009/jw-02-actionscript1.html?page=1
http://www.javaworld.com/javaworld/jw-03-2009/jw-03-actionscript2.html?page=1
それはC++に言及したが、一見の価値definaltyしません。
ActionScript 3のクラスは、実際にはクラス「オブジェクト」です。つまり、それらはClassクラスのインスタンスであり、Objectから派生しています。ここを参照してください:
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Class.html
そして、ここで:
ここhttp://www.adobe.com/devnet/actionscript/articles/actionscript3_overview.html
そして、いくつかの非常に興味深い細部:
CookieOfFortuneはクラスの実用的な意味合いという点で正しいですオブジェクトから派生する(あなたの日々の点でAY)コーディングは最小限である - あなたはJavaで行うほとんど同じ方法で、あなたのクラスのインスタンスを作成します。
// Java
MyClass myClass = new MyClass();
// AS3
var myClass:MyClass = new MyClass();
// Or if you prefer a more loosely typed approach
var myClass = new MyClass();
しかし、それは次のように実際にはよりですので、舞台裏で、ActionScriptのは、ECMAScriptの3規格に基づいています(それは厳密にコンパイルすることができますが)、それはプロトタイプ指向です(たとえそれが開発者から抽象化されていても "クラス自体、プロトタイプを宣言しています")、それはオブジェクト指向パラダイム(yay、closure!)など。それはは多くの点でJavaのようにと感じていますが、実際にはJavaScriptによく似ています。それはひどく便利だないことを...
-----------------------------------------------------------------------------
^ ^ ^ ^
JS AS3 Java C++
:C++は右に外れたのであれば、Javaが真ん中にあった、とJavaScriptが左にあった、3間の概念的な類似性は、このようになります。モデル、必然的。 ;)
HoorayImヘルプは正しいですが、間違いなくいくつかの迷惑があります。コンストラクタのオーバーロードがないだけでなく、あらゆる種類のメソッドのオーバーロードはありません。イベントはすべて文字列で識別されます。注意しないとさまざまな問題が発生する可能性があります。 ActionScript enumのようなものはありません。抽象クラスの概念はありません。リストは続く。
しかし、これらの部門では不足しているので、柔軟性に優れています。それで、あなたはそれを持っています。C++のようなものはほとんどありませんが、Javaに似ていますが、実際にはJavaScriptのスーパーセットに似ています。希望が助けてくれる!
私は追加する必要があります(これは私の意見ですが、また、ActionScript 3はJava開発者にアピールするように設計されていました。 Javaに慣れていれば、ActionScriptへの移行を手伝ってくれるAdobeの方々への移行は非常に簡単です。 –
- 1. OOPでは、オブジェクトとインスタンスの違いは何ですか?
- 2. OOPでプライベートとプロテクトの違いは何ですか?
- 3. C#とPHP OOPの違い
- 4. JavaとC++のイテレータの違いは何ですか?
- 5. セレンC#Java - WebDriverとIWebDriverの違いは何ですか?
- 6. JavaとC#の違いは何ですか?
- 7. C++ OOPとPHP OOPの相違点
- 8. c socket()関数の型とプロトコルの違いは何ですか?
- 9. コルーチンC++インライン関数との違いは何ですか?
- 10. JavaのOOPに関するいくつかの質問
- 11. Java generics - 違いは何ですか?
- 12. 代わりに、OOPのグローバル関数は何ですか?
- 13. 違いは何ですか? (C++?
- 14. OOPでの静的関数の使用は何ですか?
- 15. IS-A関係とHAS-A関係の違いは何ですか? Java
- 16. x = function(a、b、c){}と関数x(a、b、c){}の違いは何ですか?
- 17. OOPデザイン:クラスのプロパティの数に関するベストプラクティスは何ですか?
- 18. アジャイルとOOPの関係は何ですか?
- 19. Javaの正規表現の "c && c"と "[c && c]"の違いは何ですか?この呼び出しでは
- 20. インタフェースについてGoとJavaの違いは何ですか?
- 21. CとC++での "const"の違いは何ですか?
- 22. 内部/ローカル/匿名のクラスに関して、JavaとC#の基本的な違いは何ですか?
- 23. **/*。javaと* .javaの違いは何ですか?
- 24. Mule Java TransformerとJava Componentの違いは何ですか
- 25. gdata-java-clientとgoogle-api-java-clientの違いは何ですか?
- 26. Java SEとJava EEの主な違いは何ですか?
- 27. Java WebアプリケーションとJava Enterprise Applicationの違いは何ですか?
- 28. F#(OOP)の "as"キーワードは何ですか?
- 29. jtype(JNIの)とC/C++のタイプの違いは何ですか?
- 30. Java OOPで渡されるメッセージは何を意味していますか?
AS3では、クラスは単なるクラス以上のものであると聞きましたが、それは「クラスオブジェクト」と呼ばれています。私はこれを理解していませんでした。 –
それは本当に大きな問題ではない、クラスはまだほとんど同じように動作します。 – CookieOfFortune