オブジェクトとはプログラムのために対象化されるもののこと

スポンサーリンク

Javaにはオブジェクトという用語があります。「Javaはオブジェクト指向言語だ」などといわれますが、それを理解するのは私には時間がかかりました。辞書で調べる限り英語のobjectは「対象」「物体」「目標」などと訳されますがJavaでは普通の用語として日本語でオブジェクトと言います。ではオブジェクトとはなんなのでしょうか?

objectはなぜ訳されなかったのか

ある言語で作られた用語が別の言語に翻訳される時、辞書に出てくる訳語を当てる場合と元の言語での単語をそのまま使う場合のふた通りの方法があります。

例えばキリスト教の天使 angelはギリシア語で「使い」「メッセンジャー」の意味ですが英語に訳される時にmessengerとはならずangelとなりました。これは後者の方法によるものでギリシア語の言葉をそのままローマ字にして使っているのです。これによりキリスト教独自の天使の概念を確立することができました。

Javaのオブジェクトもこれと同じケースだと考えられます。前者の方法であれば日本語で「対象」とでも言えば良いのですがそうとはせず英語のobjectをカタカナで「オブジェクト」としました。これはJavaで使う「オブジェクト」は今私たちが普段使っている「対象」とは別の概念を持たせようとしていると考えられます。

Javaでいうオブジェクトとは何か

基本的には英語のobjectの訳語の「対象」という意味からは遠く離れることはないと思います。ただ現実世界の対象は人間の認識次第ですぐに対象となりえますがJavaでの対象はそれをJavaで扱える状態になっている必要があります。

Javaは現実世界の問題を解決したり不便な状況を解消するためにあります。このため現実世界の対象をうまくプログラムで扱えるようにする必要がありますしプログラムの結果をうまく現実世界に戻す必要があります。プログラムで扱える現実世界の事象を「オブジェクト」と呼ぶのです。オブジェクトにするにあたり

  • その対象はどんな名前なのか
  • その対象はどんな部分で構成されているか
  • その対象はどのような動作をするか

を現実に即して決めます

例えば動物を扱うのであれば「動物」という名前にして「頭」や「目」や「足」があり「歩く」「食べる」「子供を産む」動作をするなどとプログラム上で扱う最低限のことを決めます。銀行残高であれば「口座番号」「名義人」「残高」があり「引き出す」「預ける」「利子がつく」などの動作が必要でしょう。

このようにオブジェクトにすることは設計のかなり大きな部分を占めます。設計したオブジェクトを操作した結果は現実の対象の操作の結果と同じになるはずです。

またそのオブジェクトを自分以外の人が操作しても結果が同じになる必要があります。同じ金額引き出すのに人によって残高が変わってしまっては困ります。

まとめ

私たちはJavaを使う時に現実世界の事象を対象化します。この対象化されたものがオブジェクトになります。オブジェクトは現実世界を反映したものでオブジェクトの操作結果が現実世界の対象の操作結果と一致する必要があります。

ではオブジェクトを設計するには、そのオブジェクトを使うにはどうすれば良いか次に説明します。

クラスとはオブジェクトの雛形

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

%d人のブロガーが「いいね」をつけました。