[目次]
[その2]
Javaによるオブジェクト指向プログラミング (その1)
Javaのごく簡単なプログラム例
次のプログラムは「Hello World!」と表示するだけのものである。
class HelloApp {
public static void main (String args[]) {
System.out.println("Hello World!");
System.exit(0);
}
}
これと同様のプログラムと同じものをC言語で書くと次のようになる。
#include <stdio.h>
main (int argc, char *argv[]) {
printf("Hello World!\n");
exit(0);
}
似ているところは、
- C: main (int argc, char *argv[]) {
Java: public static void main (String args[]) {
- C: printf("Hello World!\n");
Java: System.out.println("Hello World!");
- C: exit(0);
Java: System.exit(0);
である。このように C (あるいは C++) 言語と Java は似ているところがあるが、
実際には全く異なる言語であると考えた方が良い。その大きなポイントが
「オブジェクト指向」である。このことについては徐々に話を進める。
実行するには
Javaのプログラムを実行する手順は次の通り。
- Java のプログラム(ソースプログラム)をテキストエディタで入力し、
ファイルに保存する。
この時、ファイル名の末尾には``.java'' とつける。
もし、public classがある時は、ファイル名はそのクラス名の
後に ``.java'' を付けたものとする必要がある。
(したがって、複数の public classがある時はファイルを複数
作る必要がある。)
- Java コンパイラ (javac) でソースプログラムをコンパイルする。
コンパイルした結果、オブジェクトコードが格納されたクラスファイルが生成
される。クラスファイルの名前は ``クラス名.class'' となる。
(つまり、複数のクラスを定義したプログラムをコンパイルするとそのクラスの
数だけクラスファイルが生成される。)
例: javac HelloApp.java
- プログラムの実行は Java 仮想マシン (Java VM, コマンド名はjava)
によって行なう。実行の際には
``public static void main (String args[])''
というメソッド(関数のようなもの)が定義されているクラスの名前を指定する。
例: java HelloApp
上述のプログラム例の場合はクラス ``HelloApp'' を実行時に指定する
ことになる。
オブジェクト指向プログラミングの基本概念
オブジェクト指向プログラミングでは次のような基本概念に基づいて
プログラミングを行なう。
- オブジェクト
-
C 言語などの手続き型言語ではデータと手続きは別々に扱われるが、
オブジェクト指向では、データと手続きを不可分のものとして結び付けている。
オブジェクトとは、データであるとともに、そのデータを取り扱う手続きを
自ら知っているものである。
- クラス
-
オブジェクトの型を定義するものがクラスである。この場合、クラスでは
オブジェクトが保持するデータと、それらを扱う手続きが定義される。
オブジェクトが保持するデータが納められる場所は Java ではフィールドと
呼ばれる。フィールドはプログラム上では変数の一種として記述される。
フィールドによってそのオブジェクトの状態が保持される。
手続きはメソッドと呼ばれる。メソッドによってオブジェクトの振舞いが
定められる。
- インスタンス
-
あるクラスによって定義された一つ一つのオブジェクトをそのクラスの
インスタンスと呼ぶ。
- フィールド(インスタンス変数)
-
各オブジェクトが持つデータを格納する場所。
なお、これをインスタンスが持つ変数という意味で、インスタンス変数
と呼ぶことも多い。
[目次]
[その2]
This page is written by
<saka@ulis.ac.jp>.
2002年 12月 4日 水曜日 15時54分15秒 JST