何らかの理由で、変数の下位2つのメソッドを上位に呼び出す方法がわかりません。initalizeString(String [] names);を実行すると 私は常に.classを期待しています。ここでメソッドを呼び出すときに何が間違っているのかよくわかりません。
import java.util.Scanner;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class SoftDrinkInventory {
static final int MAXSIZE = 100; // maximum size of 100
private String[] names; // softdrink names
private String[] ids; // softdrink identifications
private int[] startingInventory; // starting inventory of the softdrinks
private int[] finalInventory; // final inventory of the softdrinks
private int[] transactionCounts; // number of transactions per softdrink
private int trueSize; // total number of softdrinks
public SoftDrinkInventory() {
// call initalizeString for names/ids
// call initializeInt for inventory/transaction counts
}
private void initializeInt(int[] a) {
a = new int[MAXSIZE];
for(int i = 0; i <= MAXSIZE; i++) {
a[i] = 0;
}
}
private void initializeString(String[] s) {
s = new String[MAXSIZE];
for(int i = 0; i <= MAXSIZE; i++) {
s[i] = "";
}
}
}
特定の問題を解決するinitializeString(names)
には:の代わりにを使用しますinitalizeString(String[] names)
。しかし、あなたのプログラムは期待通りに機能しません。Javaはメソッドパラメータを値で渡します。つまりs
、initializeString(String[])
メソッドでパラメータを再割り当てできますが、これはnames
フィールドには影響しません。
さらに、を作成するnew int[MAXSIZE]
と、配列には0
デフォルトで100個の値が含まれます。手動で設定する必要はありません。最後になりましたがList
、配列の代わりにコレクションフレームワーク、特にインターフェイスの使用を検討する必要があります。使いやすく、大きなデメリットはありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加