#java
#java
Вопрос:
public class ShoppingCart {
//initialise the array
Item[] myItemList = new Item[100];
CartItem[] cartItem = new CartItem[100];
/* Just some getter/setter methods ignore them for now.
public Item[] getItemList () {
return this.myItemList;
}
public CartItem[] getCartItem () {
return this.cartItem;
}
*/
Random randomGenerator = new Random();
public CartItem[] Shop (int numOfItems) {
for (int i = 0; i < numOfItems; i ) {
CartItem.cartItem[i] =randomGenerator.nextInt(numOfItems-1);
}
return cartItem;
}
}
Вот объяснение для класса:
ShoppingCart.java
: Это полная корзина покупателя. Другими словами, покупатель помещает товары, которые он покупает, в экземпляр этого класса. Этот класс имеет два атрибута: ссылку на массив объектов, называемый basket, и ссылку на массив товаров, доступных в супермаркете. Конструктор принимает ссылку на массив элементов в качестве параметра и инициализирует этот атрибут. Конструктор также может создавать корзину.
Покупатель завершает свои покупки в этом классе. Политика покупки товара следующая. Предположим, что в инвентаре есть k предметов, она генерирует случайное число от 0 до k, чтобы выбрать предмет, а затем покупает 50 штук этого предмета. Она также несет ответственность за пополнение запасов элемента, если этого элемента меньше 50 штук.
Ответ №1:
Вы не должны указывать класс, когда говорите CartItem.cartItem[i] = randomGenerator.nextInt(numOfItems-1)
, поскольку CartItem не является статическим членом. Вместо этого вы должны сказать cartItem[i] =randomGenerator.nextInt(numOfItems-1)
, что приведет к:
public class ShoppingCart {
Item[] myItemList = new Item[100];
CartItem[] cartItem = new CartItem[100];
/* Just some getter/setter methods
public Item[] getItemList () {
return this.myItemList;
}
public CartItem[] getCartItem () {
return this.cartItem;
}
*/
Random randomGenerator = new Random();
public CartItem[] Shop (int numOfItems) {
for (int i = 0; i < numOfItems; i ) {
cartItem[i] =randomGenerator.nextInt(numOfItems-1);
}
return cartItem;
}
}
Ответ №2:
Вы получаете доступ CartItem.cartItem
статическим способом. Просто удалите CartItem.
, и все будет в порядке.
Кроме того, у вас есть некоторые потенциальные проблемы с вашим кодом:
-
Когда вы это делаете
CartItem[] cartItem = new CartItem[100];
, вы не инициализируете элементы в массиве. Вам нужно перебирать элементы и инициализировать их, иначе они будут нулевыми.. -
randomGenerator.nextInt(numOfItems-1);
:nextInt(n)
метод рандомизирует число beteen0
(включено) иn
(исключено). При передачеnumOfItems - 1
вам потенциально не хватает одного элемента из вашего случайного (последнего). -
Разве метод
Shop
(илиshop
?) Не должен принимать массив элементов, которые он может хранить, вместо того, чтобы уже иметь массив в качестве переменной экземпляра?