• 検索結果がありません。

クラスの基本

ドキュメント内 Java学習教材 (ページ 88-105)

オブジェクト指向とは

プログラム部品を組み合わせることでプ ログラム全体を作成する

プログラムを自動車に例えると・・

自動車は様々な部品から構成される

車体・エンジン・タイヤ・ヘッドライト

最終製品は部品の組み合わせ

それぞれの部品の内部構造を知らなくても、

組み合わせ方(使い方)がわかればよい

部品単位でアップデートできる

オブジェクト指向とクラス

プログラムの部品=オブジェクト と考える

オブジェクトがどのようなものか記述したも のが「クラス(

class

)」

• Java

によるプログラミング

class

を定義すること

複雑なプログラムは多くの

プログラム部品から構成される

クラスとインスタンス

クラス

オブジェクトに共通する属性(情報・機能)を抽象化した もの

インスタンス

具体的な個々のオブジェクト

クラス インスタンス

自動車 私の愛車、そこにある車

私の飼っているポチ、隣の家のクロ

私、私の父、私の母

2次元平面上の点 (x=2,y=5)の点、(x=-1,y=3)の点

中心(0,0)半径1の円、中心(3,4)半径5の円

演習

日常を見まわして、クラスとインスタンスの関係 で表されるものを挙げてみましょう。

簡単なクラスの宣言とインスタンスの生成

例として

2

次元の座標

(x,y)

を持つ「点」を 扱うためのクラスは、次のように宣言する。

class Point { int x;

int y;

}

クラスの名前は自由に決められる。今回は

Point

とした。

• x

y

という名前の

int

型の変数をクラスの中 に定義した。これをフィールドと呼ぶ。

• x

y

という

2

つの値をセットにして扱える。

フィールド(Pointクラスがもつ情報)

演習

日常を見まわして、クラスの定義をしてみましょ う。日本語を使ってかまいません。

例:

class { タイトル 著者

出版社 }

class 賃貸ルーム { 広さ

家賃 住所 }

インスタンスの生成

インスタンスを生成するには

new

を使用する。

new Point();

生成したインスタンス を後で参照するために 変数に(参照を)代入 できる。

Point p = new Point();

クラス名

インスタンスが持つ 変数に値を代入でき る。

Point p = new Point();

p.x = 10;

p.y = 5;

インスタンス変数へのアクセス

インスタンスが持つ変数(クラスのフィールド に定義された変数)のことを「インスタンス変 数」と呼ぶ。

• Point

クラスでは変数

x

y

がインスタンス変数。

インスタンス変数にアクセスするには

「インスタンスを代入した変数+ドット+イン スタンス変数名」

とする。

例:

Point p = new Point();

p.x = 10;

(ドットを「の」に置き換えて「px」と読むとわかり やすい)

Point クラスの使用例

class Point {

int x; // x座標値 int y; // y座標値 }

class PointInstanceExample {

public static void main(String[] args) { Point p1 = new Point();

p1.x = 10;

p1.y = 5;

Point p2 = new Point();

p2.x = 5;

p2.y = 2;

System.out.println("p1x座標は" + p1.x);

System.out.println("p1y座標は" + p1.y);

System.out.println("p2x座標は" + p2.x);

System.out.println("p2y座標は" + p2.y);

} }

参照型

• Java

で使用できる変数の型

基本型(

int, double, boolean

など)

参照型(インスタンスへの参照)

変数にインスタンスそのものは代入され ない。

参照の代入

• Point p = new Point();

としたとき、変数

p

には、

Point

クラスの インスタンスの参照が代入される。

演習

次のプログラムコードの意味を考えてみましょう。

class Dog {

String name;

}

class Example {

public static void main(String[] args) { Dog dog1 = new Dog();

dog1.name = "Taro";

Dog dog2 = new Dog();

dog2.name = "Pochi";

Dog dog3 = dog2;

System.out.println(dog3.name);

dog3.name = "Jiro";

System.out.println(dog2.name);

} }

参照の例

Point p1 = new Point();

Point p2 = new Point();

Point p3 = p2;

p1.x = 0;

p1.y = 0;

p2.x = 5;

p2.y = 10;

参照の配列

基本型の配列と同じように、参照の配列 も作成できる。

Point[] points = new Point[5];

points[0] = new Point();

points[1] = new Point();

points[2] = new Point();

points[3] = new Point();

points[4] = new Point();

配列を生成

何も参照しないことを表す null

参照型の変数に、何も参照が入っていな い状態を

null

という。

Point[] points = new Point[5];

points[0] = new Point();

points[1] = new Point();

points[2] = new Point();

null は参照型の値

• null

は、参照型の変数に代入できる

Point p;

p = null;

• null

は参照型の変数の値と比較できる

Point p = new Point();

if(p == null) {

System.out.println("p

null");

} else {

System.out.println("p

null

でない

");

}

ドキュメント内 Java学習教材 (ページ 88-105)

関連したドキュメント