-2

私の課題は、単純なオンライン ショッピング プログラムをシミュレートするプログラムを作成することです。3 つのオプションを持つメイン メニューを作成し、メイン メニューで 2 番目のオプションを選択するときにサブメニューを作成する必要があります。

たとえば、別のクラスからメソッドを呼び出す方法がわかりません。

私は方法を与えられました:

public void start() {

ファイル「GroceryStore.java」にあります

ユーザーが「1」を入力するとメソッドを呼び出す topMenu メソッドを作成することになっています。

public void displayItems(){

^「Stock.java」というファイル

次に、オンラインストアに在庫がある一連のアイテムを印刷します。Stock.java の配列は

private SalesItem[] items;

誰でもこれを行う方法を教えてもらえますか? 私はいくつかのことに対してこれを行う必要があり、これの骨組みを残りのケースに適用できることを望んでいます。

4

4 に答える 4

2

今のところ、それStockがインスタンス タイプ (インスタンス タイプのように聞こえます) であると仮定しますGroceryStore。1 つ以上のStockアイテムへの参照があることは理にかなっています。


あなたの は、キーワードStockでインスタンス化する必要があります。newそれで

Stock myStock = new Stock(/*parameters for constructor*/);

それを行った後、そのようなdisplayItemsメソッドを呼び出すことができますmyStock

myStock.displayItems(); 
于 2013-05-15T17:43:29.663 に答える
1

現在のインスタンスの外部でメソッドを呼び出すには、複数のオプションがあります。

  • メソッドを作成しstatic(特定のインスタンスにアタッチされないように)、 を介して呼び出しますMyClass.method()。これは、ステートレスオブジェクト、ほとんどがユーティリティメソッドである場合に意味があります
  • アクセス可能な静的インスタンス変数を作成し(つまり、メソッドは静的ではありませんが、特定のオブジェクトは静的です)、それを介して呼び出しますSomeClass.stock.method()。これは、プログラム全体で特定の型の単一のオブジェクトが必要な場合に意味があります
  • メソッドを呼び出したいクラス内に通常のインスタンス変数を作成します (これは、含まれているオブジェクトがHAS-A関係で使用されている場合にのみ意味があります)。次に、それを単純に呼び出しますthis.stock.method()(省略できますthis
于 2013-05-15T17:43:36.840 に答える
0

メソッドが同じクラスにない場合は、どこからメソッドを取得するかをコンパイラに伝える必要があります。これを行う最善の方法は、アクセスしようとしているクラスを参照するオブジェクトを作成することです ( NewJava キーワードと適切な構文を使用します。つまりClassName objectName = new ClassName()、任意のパラメータを含めることができます)。

この他の StackOverflow の回答を見てください。ユーザーはあなたの質問と非常によく似た質問をしていたので、役立つかもしれません。

また、TutorialsPoint には、オブジェクトとクラスに関する非常に優れたチュートリアルがあります。じっくり見て、やってみる事をお勧めします。最初に達成しようとしているものの背後にある概念を理解してみてください。これはオブジェクト指向プログラミングの非常に基本的な概念であるため、後で役立つことを保証できます。

于 2013-05-15T17:51:25.313 に答える