■オブジェクト指向プログラミング言語Javaとは


●『オブジェクト指向』とは




●『プログラミング言語 Java』 とは

・オブジェクト指向は,今日のソフト ウェア開発ではあたりまえのように用いられている。
・この授業では, Java を学習しながら,オブジェクト指向の考え方も学習していく。 
・【参考情報】 その他の代表的なオブジェクト指向プログラミング言語
・【参考情報】Javaは,米サン・マイクロシステムズ社によって策定されて,1996年に公開された。その後,サン・マイクロシステムズ社が米オラクル社に買収されたのにともない,
   現在は米オラクル社が Java の権利を保有している(オラクル社によるJavaのサイト)。   


●【参考情報】『WRITE ONCE, RUN ANYWHERE』 の仕組み

・Java で作られたプログラムは種類の異なる種類のコンピュータ,機器(パソコン,スーパーコンピュータ,携帯電話,タブレット,ゲーム機,家電製品等々)で動作する。

[1]通常のプログラミング言語では,同じソースプログラムから生成されるソフトウェアは,異なるプラットフォームでは動かない。
  ※プラットフォームとは,CPUとOSから構成される実行環境のこと(下図)。


[2]プログラムの作成は,通常プラットフォームごとに別々に行われる(下図)。

説明
 (1) Windows 用に一般的なプログラミング言語(例:C言語)でプログラムを作成する場合(上図上段),
  ①: ソースプログラムを書く。
  ②: その際,OSの用意した便利な機能(APIと呼ばれる)を利用する様に書く。
  ③: ソースプログラムをコンパイラでコンパイルする。
  ④: コンパイルの結果生成されるのは,実行可能なプログラム。これは,Pentium系CPU用の命令の集まりになっている。
  ⑤: この実行可能なプログラムは,当然ながら Windows OS のAPIを利用することになる。
  ⑥: この実行可能なプログラムは,Pentium CPU で実行される。

 (2) Macintosh 用に一般的なプログラミング言語(例:C言語)でプログラムを作成する場合(上図下段),
  Windows用のプログラムを作成するときと同様。
  ただし,利用するAPIは MacOS のものであり((2)-②),コンパイルして出来上がったプログラムはMacintoshで使用されているCPU
  用ので命令の集まりになっている。


[3]このようにして,あるプラットフォーム用に作成されたプログラムは,別のプラットフォーム上では動かない(下図)。



[4]そこで Java では, Java用の実行環境を用意した。つまり, Java API と Java 用のCPUである。この Java用のCPUは実際にはソフトウェアで,Java仮想マシンと呼ばれる(下図)。

説明
 ・Java用プログラムは,豊富な機能が揃っている Java API を利用することができる。
 ・Java用のプログラムは,Java仮想マシン用の命令の集まりとしてコンパイルされる。
 ・Java仮想マシン 自体は,ソフトウェアである。

[5] このため,Java用プログラムは,Java実行環境さえあればどんなプラットフォームでも動かすことができる(下図)。

説明
 Java 用にでプログラムを作成する場合(上図),
  ①: ソースプログラムを書く。
  ②: その際,Java APIの用意した便利な機能を利用する様に書く。
  ③: Java API 自体は,ネイティブプラットフォーム(実際のプラットフォーム)の API を利用して実現されている(上図の2箇所の③)。
  ④: ソースプログラムをコンパイラでコンパイルする。コンパイルの結果生成されるのは,実行可能なプログラムは,Java仮想マシン用の命令の集まりになっている。
  ⑤: Java の実行可能なプログラムは,Java仮想マシンによって解釈・実行される(上図の2箇所の⑤)。
  ⑥: その Java仮想マシン 自体はソフトウェアで,ネイティブプラットフォームのCPU で実行される(上図の2箇所の⑥)。
この仕組みによって,一旦コンパイルされたJavaプログラムは,様々なプラットフォーム上で動作可能なのである。
このJavaの『WRITE ONCE, RUN ANYWHERE』 という特性は,ネットワーク上で様々な機器が繋がって動作しているインターネット時代に非常にマッチしている。

※Java 実行環境のことを JRE (Java Runtime Environment ) と呼び, Javaの開発元から配布されている。また,JREにJava開発用のプログラムなどを追加したものが JDK (Java Development Kit) として配布されている。
※一つのコンピュータに異なるバージョンの JRE/JDK をインストールしてソフトによって使い分けるように設定することも可能である。
※大学推奨ノートPCには,元から JRE/JDK がインストールされているので,改めてダウンロードする必要は無い。