Java 如何调用void方法将其合并到其他类中的方法中?
我的任务是创建一个模拟简单网上购物程序的程序。 我们必须: 在主菜单上选择第二个选项时,创建一个包含3个选项的主菜单,然后创建一个子菜单 我不确定如何从另一个类调用方法,例如: 我得到了一个方法:Java 如何调用void方法将其合并到其他类中的方法中?,java,arrays,methods,Java,Arrays,Methods,我的任务是创建一个模拟简单网上购物程序的程序。 我们必须: 在主菜单上选择第二个选项时,创建一个包含3个选项的主菜单,然后创建一个子菜单 我不确定如何从另一个类调用方法,例如: 我得到了一个方法: public void start() { 它位于文件“GroceryStore.java”中 我应该创建一个topMenu方法,当用户输入“1”调用该方法时: public void displayItems(){ ^在名为“Stock.java”的文件中 然后打印出在线商店库存的一系列商品。中
public void start() {
它位于文件“GroceryStore.java”中
我应该创建一个topMenu方法,当用户输入“1”调用该方法时:
public void displayItems(){
^在名为“Stock.java”的文件中
然后打印出在线商店库存的一系列商品。中的数组
java是
private SalesItem[] items;
谁能告诉我怎么做?我有几件事需要这样做,我希望我能把这个框架应用到其他的案例中。现在,我假设
Stock
是一个实例类型(听起来像是一个实例类型),你的杂货店会引用一个或多个Stock
项目
您的股票
s必须使用new
关键字进行实例化。所以
Stock myStock = new Stock(/*parameters for constructor*/);
完成此操作后,您可以像这样调用myStock
的displayItems
方法
myStock.displayItems();
要在当前实例之外调用方法,您有多个选项:
- 使该方法成为静态的(这样它就不会被附加到任何特定的实例),并通过
MyClass.method()
调用它,如果它是一个无状态对象,主要是一个实用方法,这是有意义的
- 创建一个可以访问的静态实例变量(因此方法不是静态的,但特定对象是静态的),然后通过
SomeClass.stock.method()
调用它,当您希望在整个程序中使用特定类型的单个对象时,这是有意义的
- 在要从中调用方法的类内创建一个普通实例变量(仅当包含的对象在关系中使用时,这才有意义)。然后您可以简单地将其称为执行
this.stock.method()
(您可以省略this
)
所以start()在GroceryStore类中
因此,在公共静态void主类中,您将:
GroceryStore gs = new GroceryStore();
gs.start();
在GroceryStore类中,您将有一个新方法,如下所示(您可能希望在GroceryStore对象的构造函数中有Stock Stock=new Stock()行,这更有意义:
Stock stock = new Stock();
public void topMenu(int parm){
if(parm==1)then{
stock.displayItems();
}
}
最后,在Stock类中,您有displayItems方法,它可能如下所示:
public void displayItems(){
for(int i=0;i<items.length;i++){
SalesItem temp = items[i];
System.out.prinlnt(temp.toString());//or this may be temp.getName() or whatever returns a string from this SalesItem object - I dont know what it looks like - you never said!
}
}
public void displayItems(){
对于(int i=0;i如果方法不在同一个类中,您需要告诉编译器从何处获取方法。最好的方法是创建一个对象,该对象引用您试图访问的类(使用New
Java关键字和适当的语法,即ClassName objectName=New ClassName()
-您可能希望包括您可能拥有的任何参数)
看看其他StackOverflow答案-用户的问题与您的问题非常相似,因此可能会有所帮助
此外,还有一个关于对象和类的非常好的教程。我建议你看一看并试一试。试着先理解一下你要实现的目标背后的概念-我可以向你保证,这将对你以后有所帮助,因为这是OO编程中一个非常基本的概念。看起来你已经有了一个pr框架项目。如果你能发布它,它可以给我们一些有用的上下文。如果你能管理一个,那就更好了。谢谢你这就是我要找的。这是任务给我们的一个预制键盘输入法。除了为什么我需要说Stock Stock=new Stock();。您需要它,因为否则GroceryStore对象无法调用displayItems方法-因为它存在于Stock对象的实例中,而不是GroceryStore对象的实例中。因此,我们创建一个新的Stock对象并调用其方法:)。如果这是您的答案,请使用我答案左上角的勾号标记它。干杯!