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

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

Javaプログラミング入門その21 コンストラクタを作成、利用するプログラム その2(2020年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」を実行します。


PandaTest.java実行結果
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」を実行してみましょう。


ShokudouTest.java実行結果
ShokudouTest.java実行結果


<<前  [TOP]  次>>