[英]How can i add the static variable number in a method?
我创建一个ProductMenu类来执行添加,搜索,删除和更新产品任务,并且它仅使用数组。 我面临的问题是如何在方法中添加静态变量,因为在将乘积添加到数组后无法添加最大数量的数组。 希望能对您有所帮助,谢谢。
public static void addProduct(){
Product product = new Product();
System.out.println("================================");
System.out.println(" Add Product ");
System.out.println("================================");
System.out.println("Product ID :- " + Product.getProdId());
System.out.print("Enter product name: ");
String prodName = input.next();
System.out.print("Enter product price: ");
double prodPrice = input.nextDouble();
product.setProductId(Product.getProdId());
product.setProductName(prodName);
product.setProductPrice((double)prodPrice);
products[productIndex] = product;
numOfArray++; // should be add ?
productIndex++; // should be add also?
ProductMenu.main(null); //back to main
}
我的课
public class ProductMenu {
static Scanner input = new Scanner(System.in);
static int productIndex; //should be add after addProduct()
static int numOfArray = 1; //should be add after addProduct()
static Product[] products = new Product[numOfArray];
public static void main(String[] args) {
int menuOption;
do{
menu();
System.out.print("Enter your choice: ");
menuOption = input.nextInt();
switch(menuOption){
case 1:
addProduct();
break;
case 2:
System.out.print("halo" + products[0].toString());
break;
case 3:
break;
case 4:
break;
default:
System.out.print("Invalid option. Please try
again.\n");
break;
}
}while(menuOption!=1 && menuOption!=2 && menuOption!=3 &&
menuOption!=4 );
}
public static void menu(){
System.out.println("================================");
System.out.println(" Product Menu ");
System.out.println("================================");
System.out.println("1. Insert Product\n2. Update Product\n3.
Search Product\n4. Delete Product\n");
}
这是错误消息,表示阵列号已经超过限制,为什么我要问我是否没错。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at ProductMenu.addProduct(ProductMenu.java:64)
at ProductMenu.main(ProductMenu.java:21)
at ProductMenu.addProduct(ProductMenu.java:68)
at ProductMenu.main(ProductMenu.java:21)
我想知道是否可以在代码中用arraylist替换array。 数组列表由后台的数组支持,在处理数据时您不必担心arrayindexoutofbound异常
给您的问题:我将使用ArrayList或LinkedList,因为它具有动态大小。 初始化后无法更改数组的大小,而将数组的大小设置为1。这会引起问题。
另外:您不需要调用ProductMenu.main(null); //back to main
ProductMenu.main(null); //back to main
因为在main方法中调用了addProduct
函数,执行addProduct
函数后,程序将在main函数中继续。
因为您只需要使用Array,然后创建一个函数add(),该函数将首先检查数组的大小,如果还有空间,则添加元素,否则创建两倍大小的新数组,复制所有先前的元素并在末尾添加新的元素。 同样,由于size是静态变量,因此您不必传递给方法。 您的方法也是静态的,并且方法和变量都在同一类中,因此您可以直接在方法中使用变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.