JAVA プログラミング 入門

JAVAのプログラミングについて初歩から解説します。まずは、mainメソッド、変数、演算、if文、for文、while文、メソッド、配列など。続いて、メソッドを複数構成して、プログラムを作成(非オブジェクト指向プログラミング)、しばらく後になると思いますが、オブジェクト指向プログラミングを解説します。 クラスの構成、コンストラクター、継承、・・・、など、本格的OOP(Object Oriented Programming)を解説します。

Java: 初めてのオブジェクト作成(Constructorを書かない)

図Pron1_1_㏛cは「初めてのオブジェクト作成(Constructorを書かない)」を説明するためのプログラム例である。このプログラムの最後にコメントで実行結果が示されている。

f:id:Kurokawa_Tomio:20190625201814p:plain
図Pron1_1_src
クラスはオブジェクト作成のテンプレートのようなものである。オブジェクトを作成するには先ずそのテンプレートであるクラスが必要である。クラスは例えば以下のような形をしている。

class クラス名{
フィールドの宣言; ・・・・;フィールドの宣言;
メソッドの宣言;・・・;メソッドの宣言;
}

フィールドの宣言とはint, double, 配列変数、オブジェクト変数などである。
メソッドの宣言とはメソッドの定義である。オブジェクト属するメソッドとする場合はstaticを付けない。

図Pron1_1_srcの場合、BookとPron1_1がクラスである。Bookは二つのフィールドtitleとpage_suuを持っている、またメソッドdisplayを持っている。String title;によりtitle はStringタイプの参照変数となり int page_suu;によりpage_suuはint変数となる。従って、Bookはそれらのフィールドとメソッドを持つクラスである。クラスはオブジェクトを作るテンプレートである。

12行 変数aをBook型の参照変数として宣言している。
13行 new Book()によりBook型の新しいオブジェクトを作っている。このオブジェクトはBookクラスで定義している内容を持っている。それなりのメモリーが必要で、Javaのシステム内のどこかにとられ、その参照がaにセットされる。つまり、aはtitle, page_suu, dispayを持っているオブジェクトともいえる。
14行 Stringの参照変数titleに文字列”Introduction to Java”がセットされる。
15行 aのpage_suuに500がセットされる。
16行 aはBook型のオブジェクトであるのでその中にはdisplayメソッドがあり、a.dispay();のように使用できる。displayはtitle, page_suuを表示している。
17行 aと同じようにbが宣言されている。
18行 bにオブジェクトがセットされる。
19行 b.titleに文字列がセットされる。
20行 b.page_suuに300がセットされる。
21行 bの内容が表示れる。
24行 cのフィールドは明示的には初期化されていないので、defaultの値で初期化される。

コンストラクターについて:
Book()はコンストラクターと言われ、newを付けて呼ばれる特殊なメソッドである。このプログラムにはコンストラクターが明示的には何も定義されていない。その場合は引数のないコンストラクターが定義される。コンストラクターの名前はクラス名と同じである。引数のないコンストラクターを呼ぶとフィールは決まった値で初期化され、オブジェクトができる。数値の場合
はゼロ、booleanはfalseなどである。

30行 titleはnull(ナル)で、page_suuは0で初期化されている。nullとはこの場合、参照変数titleがどこも参照していない状態である。

GO TO Java: Understanding Classes

以下にソースを張り付けます。よかったら使ってください。

/* 最初のオブジェクトの作成(Constructorを書かない)*/
class Book {
	String title;
	int page_suu;
	void display(){
		System.out.println("title="+title+
				", page_suu="+page_suu);
	}
}
class Pron1_1{
	public static void main(String[] args){
		Book a;
		a=new Book();
		a.title="Introduction to Java";
		a.page_suu=500;
		a.display();
		Book b;
		b=new Book();
		b.title="Introduction to C";
		b.page_suu=300;
		b.display();
		Book c;
		c=new Book();
		c.display();
	}
}
/*
title=Introduction to Java, page_suu=500
title=Introduction to C, page_suu=300
title=null, page_suu=0
*/

JAVA PROGRAMMING 入門 TOP へ