詳しくは公式マニュアルをお読みください。
Javaって、こんな風にも書ける、とか、こうとも言う、とか、色々有るので、
以下は雰囲気だけのざっくりとした説明です。
作成中です。ミス有ったら後免。
クラス名 インスタンスの名[] = new クラス名[要素の数];のような場合は、指定した要素の数だけのクラスの配列がインスタンスの名で実体化するが、 各々の要素のインスタンスには、別途、
インスタンスの名[添字] = new クラス名(引数);の様な処理が必要となる。
wagashi
-+----+-
| | ←Menuクラスの配列のインスタンスwagashiの先頭アドレスを記憶する為のメモリ領域(1行目)
-+----+-
↓
wagashi[0] wagashi[9]
-+----+----+----+----+----+----+----+----+----+----+-
| |NULL|NULL|NULL|NULL|NULL|NULL|NULL|NULL|NULL| ←Menuクラスのインスタンスの配列、wagashiの
-+----+----+----+----+----+----+----+----+----+----+- 各要素(Menuクラスのインスタンス wagashi[添字])
↓ の先頭アドレスを記憶する為のメモリ領域
↓ (1行目)
wagashi[0]のメンバのメモリ領域へ(2行目)
//Menu.java (3) 2016.10.13 by Ryn
public class Menu {
private String name;
private int tanka;
public Menu(String name, int tanka) { // コンストラクタ
this.name = name;
this.tanka = tanka;
}
private float calcPayment(int suryo) {
return tanka * suryo * (float)1.08;
}
public void dispData(int suryo) {
System.out.print(String.format("%-4s @%,5d円 %4d個",name, tanka, suryo));
System.out.println(String.format(" %,8d円(税込)", (int)calcPayment(suryo)));
}
}
//Sweets.java (3b) 2016.10.13 by Ryn
public class Sweets {
public static void main(String[] args) {
Menu wagashi[] = new Menu[2];
wagashi[0] = new Menu("饅頭", 350);
wagashi[1] = new Menu("羊羹", 500);
try{
if(args.length == 1){
int suryo = Integer.parseInt(args[0]);
for(int i = 0; i < wagashi.length; i++)
wagashi[i].dispData(suryo);
}
else
System.out.println("引数エラー!");
}
catch(NumberFormatException e2){
System.out.println("数字じゃない!");
}
}
}