4章 クラスの基礎 | |
1.クラスとは | |
クラスとは、プログラムをある実世界のモノとして考え、それに必要なデータと働き(メソッド)をひとまとめにしたものである。 クラスは、「System」クラスと「String」クラスがある。Systemクラスはディスプレイに文字を表示させるための標準出力、標準エラー出力に表示させるために用いてきた。「String」クラスは、文字列を担うクラスである。そのでーた(クラス変数)として文字列そのものを持ち、メソッドとして検索したり、つなげたり、部分文字列を抽出したりといったメソッドが定義されている。 このように、データとそれらを扱うメソッドを作成したクラスは、そのクラスの内部がどのようになっているのか知らなくても、部品のように使用することができる。つまり、SystemクラスやStringクラスの中身を知らなくても(ソースコードを見なくても)、そのクラスを使って、プログラムを作ることができる。さらに、その部品(クラス)は他のプログラムを作成するときにも使いまわしができる。 |
|
2.クラスの作成 | |
ここでは、Mypoingクラスを作ってみる。Mypointクラスは座標を担うクラスで、メンバー変数として、X座標とY座標を持つ。メソッドとしては、2点間の座標を求めるメソッドと、ディスプレイに表示するためにString型に変換するメソッドを持つ。 クラスを作成する場合、基本的に1ファイルに1クラスでファイル名はクラス名と同じにする必要がある。 |
|
MyPoint.java
class MyPoint{ // 文字列に変換する // 距離を計算する |
|
Test.java
import java.io.*; pnt1.m_x = 10; pnt2.m_x = 50; System.out.println("pnt1 " + pnt1.toString( )); |
|
C:\java>javac Test.java
C:\java>javac Test 距離:56.568542494923804 C:\java> |
|
クラスを定義した(MyPoint.javaを作成しただけ)では、クラスを使えるようにはならない。 Test.javaのように「new」をしてはじめてクラスを使えるようになる。このnewをインスタンスを作るまたはオブジェクトを作ると言う。 |
|
newを何個も行うことで、インスタンスをたくさん作ることができる。これらのインスタンスは別のものであるが、変数の値もインスタンスが異なれば違う値を保持する。この場合、pnt1のメンバー変数のm_xとpnt2のm_xは違う値を保持している。それはこのためである。 |
__pnt1__ __pnt2__ |_____m_x = 10 | | m_x = 50 | | m_y = 20 | | m_y = -20 | ↑ ↑ | | | | 両者は違うメモリーに格納される。このため、別のものとなる。 |
3.コンストラクタ | |
クラスには、インスタンスが作られた時に一度だけ実行される「コンストラクタ」というものがある。一般にコンストラクタにはそのクラスインスタンスを初期化するために使用される。 | |
MyPoint.java
class MyPoint{ // コンストラクタ // コンストラクタ2 |
|
Test.java
import java.io.*; public static void main(String args[ ] ) { // pnt1.m_x = 10; // pnt2.m_x = 50; System.out.println("pnt1 " + pnt1.toString()); |
|
C:\java>javac Test.java
C:\java>javac Test pnt1 X:10.0 Y:20.0 C:\java> |
|