【はじめてのJava】オブジェクト【オブジェクトとクラス編】
はじめてのJava
このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。
オブジェクトとクラス編
オブジェクトとクラス編では、Javaを扱う上で非常によく出てくる「オブジェクト」や「クラス」について扱っていきます。
今回は「オブジェクト」が何なのかを扱っていきます。
目次
オブジェクト
オブジェクト とは、モノ、対象、概念といった意味です。少し意味が漠然としているのは、英語の「object」に1対1で対応する日本語がないためです。オブジェクトとは様々なものを指し示します。例えば「車」「家」「お財布」といった具体的な物体もオブジェクトですし、「(レースの)スタート地点」「(画面上の)ボタン」「(ブログの)読者」もオブジェクトです。「ブレーキが使えること」「ボタンを押したら発生する処理」「プログラムを書けること」といった、概念的なものもオブジェクトで表せます。
「オブジェクト」という言葉は、特に最初は意味が理解しづらいかと思います。いろいろな「オブジェクト」を扱っていく中で徐々に意味が見えてきますので、今は「とにかくいろんなものを表せる便利なもの」といった認識で大丈夫です。
Javaは様々なものこの「オブジェクト」として捉えています。例えばもしJavaでレースゲームを作ったとしたら「車」1台1台が1つのオブジェクトになりますし「コース」そのものもオブジェクトです。前述の通り、「スタート地点」もオブジェクトととらえることができます。
また、スマホアプリがあったとしたら、その画面上にある「ボタン」1つ1つがオブジェクトになりますし、GPSや加速度を計測する「センサー」も1つ1つがオブジェクトとして捉えられています。
このようにしてみてみると、Javaは「オブジェクト」という単位でプログラムを作成していくことになることに気が付きます。
オブジェクトの中身
オブジェクトは「 属性 」と「 操作 」という2つの要素から成り立っています。
属性 とはそのオブジェクトが持っている情報のことです。 操作 とはそのオブジェクトが持っている機能や動作のことです。例えば車を想像してください。車がオブジェクトだとすると「走行速度」「ナンバー」「メーカー名」などは属性です。それに対して「アクセル」「ハンドル」「ブレーキ」「クラクション」などは操作となります。
なお、ちょっと違和感があるかもしれませんが、「属性だけのオブジェクト」「操作だけのオブジェクト」「属性も操作も無いオブジェクト」もソースコード上は作成可能です。
コラム:objectの日本語訳
オブジェクトの説明で「objectに1対1で対応する日本語がない」、と言われて違和感を感じた方もいるかもしれませんが、「教える」の英語を考えれば納得できるはずです。
「教える」の英訳と聞いて多くの人は「teach」を思い浮かべたと思います。「teach」も訳としては正しいです。一方で「道を教えてください。」の「教える」だった場合はどうでしょうか。
この場合は「teach」よりも「tell」の方が適切だと思われます。このように、言葉は他の言語に訳した時に必ずしも1対1で翻訳が成立するわけではありません。こういった理由から「object」も1語の日本語で翻訳しきれないのです。
「オブジェクト」の意味は、扱っていくうちに「object」の意味が掴めてきます。無理に日本語で覚えるよりも、かなり大雑把に『英語の「object」そのものらしい』ぐらいに考えておくのが楽です。
ポイント
Javaでは「オブジェクト」という単位でプログラムを考える。
オブジェクトには「属性」と「操作」という2つの要素がある。
次回
オブジェクトとクラス編次回は「クラス」について説明していきます。
はじめてのJavaシリーズの目次はこちら
オブジェクトとクラス編はこちら