学生向けプログラミング入門

学生向けにプログラミングを解説。Java、C++、Ruby、PHP、データベース

Javaプログラミング入門その21 コンストラクタを作成、利用するプログラムその2

<<前  [TOP]  次>>


メモ帳を開いて次の2つのプログラムを作ってみましょう。


Panda.java 直

public class Panda {

	public String name;
	public int bornYear;
	public boolean isAlive;
}

PandaTest.java 直

import java.util.Calendar;

public class PandaTest {
	public static void main ( String[] args ) {

		Panda p1 = new Panda();
		p1.name = "ファンファン";
		p1.bornYear = 1995;
		p1.isAlive = true;

		Panda p2 = new Panda();
		p2.name = "ミンミン";
	       	p2.bornYear = 1990;
	        p2.isAlive = false;

		printPanda( p1 );
		printPanda( p2 );
	}
	public static void printPanda( Panda p ) {

		String info = "名前:" + p.name + ",";
		Calendar cal = Calendar.getInstance();
		int thisYear = cal.get( Calendar.YEAR );
		
		if( p.isAlive == true ) {
			info += "年齢:" + (thisYear - p.bornYear);
		}
		else {
			info += "生存していません";
		}
		System.out.println( info );
	}
}



「Panda.java」は、String型、int型、boolean型の3つのフィールドを宣言しています。


「PandaTest.java」の内容を見てみましょう。

import java.util.Calendar;

java.utilパッケージのCalenderクラスをインポートしています。
後でこのクラスを使います。

Panda p1 = new Panda();

Pandaクラスのインスタンスを作成しています。

p1.name = "ファンファン";
p1.bornYear = 1995;
p1.isAlive = true;

Pandaのフィールドにそれぞれ値を代入しています。
isAliveは、boolean型なので、trueかfalseを入れています。


printPandaメソッドを見てください。

Calendar cal = Calendar.getInstance()

最初にインポートしたCalendarクラスのgetInstance()メソッドを使ってインスタンスを取得しています。
Calendarクラスの機能を使うにはまず、getInstance()メソッドを使ってカレンダ(インスタンス)を取得しなければなりません。
Calendarクラスにはコンストラクタ(クラスと同じ名前のメソッド)が無いからです。

int thisYear = cal.get( Calendar.YEAR );

Calendarクラスには、staticなフィールドがいくつか用意されています。
使うときは、staticなのでインスタンスの生成は必要ありませんから、( Calendar.YEAR )などとして使うことができます。
Calendar.YEARは、年を表す定数です。
get()メソッドは、引数で与えられたものをint型で返してくれます。


出力結果です。
「Panda.java」「PandaTest.java」の2つをコンパイルして、「PandaTest.java」を実行します。





メモ帳を開いて次の2つのプログラムを作ってみましょう。


Shokudou.java 直

public class Shokudou {

	public String name;
	
	public int price;

	public boolean canUse;

	public Shokudou( String s, int p, boolean c ) {

		name = s;

		price = p;

		canUse = c;

	}
}

ShokudouTest.java 直

public class ShokudouTest {

	public static void main( String[] args ) {
		Shokudou[] t = { 
				new Shokudou( "A定食",470,true ),
				new Shokudou( "B定食", 470, false ),
				new Shokudou( "ビーフカレー", 370, false ),
				new Shokudou( "PP弁当", 350, true ),
				new Shokudou( "野菜弁当", 300, true ),
				};

		System.out.println( "合計金額:" + totalUsefulPrice( t ) );
	}
	public static int totalUsefulPrice( Shokudou[] t ) {

		int sum = 0;
		for( int i=0; i<t.length; i++ ) {
			if( t[i].canUse ) {
				int sumt = t[i].price;
				sum = sum + sumt;
			}
		}
		return sum;
	}
}



今までの確認も含めて、このプログラムを載せました。
「Shokudou.java」と「ShokudouTest.java」の2つをコンパイルして、「ShokudouTest.java」を実行してみましょう。





<<前  [TOP]  次>>