Javaにおけるクラスの考え方とオブジェクトとの違い【38回】

Javaにおけるクラスの考え方とオブジェクトとの違い
ビジネスパーソンのためのプログラミング講座【第38回】


 

Javaの基本的な考え方にオブジェクト指向があります。
クラス、インスタンス化、継承などは、初心者には難解で面倒な手順に思えます。
しかし、これらを正しく理解することでJavaの長所を生かし、そのメリットを最大限に受け取ることができます。

■Java「オブジェクト」指向とは?
オブジェクト指向とは、データや手続きではなくオブジェクト(もの)を中心にモデル化を行い、それに基づいてプログラムを記述していく考え方です。
Javaオブジェクト指向のプログラミング言語のひとつです。
JavaJavaプログラムでは、プログラムの部品化を容易に行うことができます。
部品を再利用することで、規模の大きなプログラムを容易に整理された形で作成できます。
このことにより、プログラムの修正や拡張も容易に行うことができ、保守性の向上にもつながります。

■根本的な技術・クラス
クラスは、Javaオブジェクト指向プログラミングを支える最も根幹的な技術です。
いわば、オブジェクトを抽象的に表した設計図のようなものです。
具体的には、処理対象となるデータである「フィールド」とフィールドにさまざまな処理を行う関数である「メソッド」とを組み合わせて、包含した構造になっています。
たとえば、「リンゴ1」と「リンゴ2」という2つのリンゴがあったとします。
それぞれは違うリンゴですが、「リンゴ」という共通性を持っているので、これを「リンゴ」というクラスで表します。
そして、「リンゴ」クラスでは、「赤い」「甘酸っぱい」のようなリンゴに共通の性質を記述しています。

■クラスとオブジェクト(インスタンス)の違い
クラスは「設計図」ですから、そのものは実行することができません。
そのため、クラスから実体を持つオブジェクト(インスタンス)を作成します。
オブジェクトは名前を持った記憶領域で、オブジェクトが持つデータを参照したり、更新したりすることができます。
ここが大きな違いと言えます。
つまり、クラスは概念としての「リンゴというもの」。
それに対してオブジェクトは「実際に手に持ったり食べたりできるリンゴ」にたとえると分かりやすいでしょう。

■クラスとオブジェクトのつながり
一見、煩雑に見えますが、「リンゴ」クラスから「リンゴ1」「リンゴ2」のように複数のオブジェクトをつくることができます。
数が多くなるとオブジェクトを1個ずつ定義していく方が煩雑で、「リンゴ」クラスでまとめて定義した方が簡単になります。
定義が変更になった場合も、クラスの定義を1か所変えればいいだけです。
また、「継承」と呼ばれるクラスの拡張を行うこともできます。
「円」クラスを引き継ぎながら拡張させて「楕円形」クラスをつくる、といったことです。
オブジェクト指向を用いると、「プログラム内の共通性を持つ複数の部分をまとめる」、「すでにつくったプログラムを基に新しいプログラムをつくる」といったことができます。

Javaにおいてプログラムの部品化、再利用を行いながら、大規模なプログラムを整理された形で効率的につくるには、非常に役に立つ考え方です。

☆おすすめ講座☆
Java講座の詳細はこちら

  >プログラミング豆知識 記事一覧へ

投稿日: 2017年5月17日
カテゴリー: ブログ

前後の記事

気になることは何でもお気軽にお問合せください。

0120-188-024 受付時間 平日9:00~19:00