↓↓クリックして頂けると励みになります。
【22 | コンストラクタ】 << 【ホーム】 >> 【24 | クラス分割】
前のセッションで学んだコンストラクタを応用したJavaプログラムを作成して理解を深めます。
Visual Studio Codeで以下の2つのプログラム「Panda.java」「PandaTest.java」を作成します。
新規作成1 【Panda.java】
public class Panda { public String name; public int bornYear; public boolean isAlive; }
新規作成2 【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」を実行します。
~/Desktop/Programming/JP $ javac Panda.java
~/Desktop/Programming/JP $ javac PandaTest.java
~/Desktop/Programming/JP $ java PandaTest
名前:ファンファン,年齢:29
名前:ミンミン,生存していません
Visual Studio Codeで以下の2つのプログラム「Shokudou.java」「ShokudouTest.java」を作成します。
新規作成1 【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; } }
新規作成2 【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」を実行します。
~/Desktop/Programming/JP $ javac Shokudou.java
~/Desktop/Programming/JP $ javac ShokudouTest.java
~/Desktop/Programming/JP $ java ShokudouTest
合計金額:1120
【22 | コンストラクタ】 << 【ホーム】 >> 【24 | クラス分割】
↓↓クリックして頂けると励みになります。