上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--|スポンサー広告||TOP↑
NullPointerExceptionとか(ガッはしないでいいですよ?)があるのをよく突っ込まれるJavaだが、そもそもほんとにポインタじゃん。
たとえば、Javaでオブジェクトの変数を宣言してオブジェクトを作って代入するコードは以下のとおり。

MyObject obj;
obj = new MyObject();

次に、C++でオブジェクトのポインタ変数を宣言してオブジェクトを作って、ポインタを代入する操作は以下のとおり。

MyObject *obj;
obj = new MyObject();

ほとんど同じじゃないか!

いや、これは驚いたね。要するに、JavaではC++と異なり、オブジェクト変数を暗黙にオブジェクトのポインタ変数として使用し、明示的にポインタであることを示す必要がなくなったということ。まぁ、あとは整数型とかのポインタが使えなくなったし、ダブルポインタとかが使えなくなったけどね。
さらに、ポインタ演算はなくなり、オブジェクトを必ずポインタにしたことで「->」(アロー)ではなく、「.」(ピリオド)でメンバにアクセスできるようになった。
結局はJavaにはC++に比べると自由度の小さい暗黙的なポインタがあるということ。

なお、Javaには引数の参照渡しが消えてなくなってる。ポインタと参照渡しを混ぜると訳がわからないからなんだろうけど、だからってオブジェクトのあれを参照渡しって言うのはやめようよ! 俺はそのせいで本来の意味の参照渡しがある、VBではまったし。
スポンサーサイト

06/29|プログラムコメント(0)トラックバック(0)TOP↑
この記事にコメント
名前:
コメントタイトル:
メールアドレス:
URL:
コメント:

パスワード:
管理人だけに表示:
管理者にだけ表示を許可
この記事にトラックバック
プロフィール

G.U.Nex

Author:G.U.Nex
職業:プログラマ
趣味:ゲーム(PC、コンシューマ)、ネットサーフィン、ニコニコ動画視聴、プログラミング、鉄道全般
PHP, C, C++, VB(系), Java, JavaScriptを使える。
最近はRubyにはまってる。

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブロとも申請フォーム
ブログ内検索
RSSフィード
リンク
フリーエリア
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。