2016-03-15 2 views
0

Мой учитель дал мне путаные инструкции по этому заданию кодирования. Если вы, ребята, можете помочь разработать или дать мне советы, я предоставлю то, что у меня есть.java: запутывающие инструкции, программа корзины

Прежде всего, программа, в которой я должен сделать 2 класса, которые будут работать с большим классом, чтобы создать список покупок, где вы можете отредактировать, сколько из каждого элемента вы хотите. Необходимо взять имя предмета, сколько раз его купили, и сколько стоит каждый.

Я закончил свой первый класс, я опубликую всю кодировку и правила для кодирования в нижней части этого вопроса.

Хорошо, вот что я имею. Я пойду шаг за шагом. Правило 1: поле private Purchase [] как массив покупок. Другое поле INT, который отслеживает, сколько покупок на самом деле были сделаны

Так что я сделал это:

private int Purchase[]; 
private int purchaseCount; 

Правило 2: Отрицательные значения не имеют смысла, так просто сбросить те к нулю, если обеспечивается пользователем

Хорошо, поэтому в первой программе мне пришлось сделать то же самое, но я смущен, как это сделать сейчас.

В модификаторах я реализовал «сброс до нуля», но теперь мой учитель не просит модификаторов. Должен ли я их поместить? Я знаю, что мне просто нужно поставить «if blahblahblah < 0, а затем blahblahblah = 0», но как мне это сделать?

Правило 3: метод Accessor .length(), который возвращает ИНТ поле, сколько покупок

public int Purchase(){ 
    return ; 
} 

Я думаю, это все, что я знаю, что. Я знаю, что мне нужно что-то вернуть, но не знаю, как использовать длину. И я думаю, что есть параметр.

Окончательное правило 4: Accessor .get (int) для массива Purchase, для которого требуется параметр, который будет индексировать массив. Итак, get (0) возвращает первый элемент (объект Purchase) массива.

Я думаю, что понимаю это, но поскольку я не знаю, как сделать последний шаг, я еще не пробовал это. ".get (int)" что? Итак, аксессор, где я выполняю внутри него .get (int)? Я мало знаю об аксессуарах, поэтому мне нужна эта помощь. Остальная часть программы кажется мне довольно простой, но этот исходный материал меня смущает. Благодарю.

Правило уже завершенный класс:

Три поле, строка для имени покупки, INT для блоков купили, а двойное для затрат на единицу. • Стандартные методы доступа и модификаторы для каждого поля. • Отрицательные значения не допускаются, поэтому во всех случаях изменяйте их на ноль. • Конструктор для инициализации этих трех полей (String, int, double) в этом порядке. • Перегрузка конструктора (String, double) предполагает, что значение int равно нулю. • Конструктор по умолчанию, который принимает имя, равен «", а числа равны нулю, должен вызывать три конструктора аргументов. • Метод getCost, который представляет собой просто количество единиц, приобретенных по цене единицы товара. • Предложен метод ToString возвращает строку с именем элемента, затем цены за единицу товара в скобках

Завершена программа:

public class Purchase { 
private String purchase; 
private int unitsPurchased; 
private double costPerUnit; 

// Accessors 
public String purchase() { 
    return purchase; 
} 

public int unitsPurchased() { 
    return unitsPurchased; 
} 

public double costPerUnit() { 
    return costPerUnit; 
} 

// Modifiers 
public void setPurchase(String purchase) { 
    this.purchase = purchase; 
} 

public void setunitsPurchased(int unitsPurchased) { 
    if (unitsPurchased < 0) { 
     unitsPurchased = 0; 
    } 
    this.unitsPurchased = unitsPurchased; 
} 

public void setCostPerUnit(double costPerUnit) { 
    if (costPerUnit < 0) { 
     costPerUnit = 0; 
    } 
    this.costPerUnit = costPerUnit; 
} 
//constructors 
public Purchase() { 
    this("", 0, 0); 
} 

public Purchase(String initialPurchase, double initialCostPerUnit) { 
    this.purchase = initialPurchase; 
    this.unitsPurchased = 0; 
    this.costPerUnit = initialCostPerUnit; 
} 

public Purchase(String initialPurchase, int initialUnitsPurchased, double initialCostPerUnit) { 
    this.purchase = initialPurchase; 
    this.unitsPurchased = initialUnitsPurchased; 
    this.costPerUnit = initialCostPerUnit; 
} 

//end of everything I am sure about 
//beginning of unsurety 
public static double getCost(String purchase, int unitsPurchased, double costPerUnit) { 
    return unitsPurchased * costPerUnit; 
} 
public static String toString(String purchase, int unitsPurchased, double costPerUnit){ 
    return purchase + costPerUnit; 
} 

}

ответ

1

Итак, первое правило 1 код должен выглядеть следующим образом:

private Purchase[] purchases; 
private int purchaseCount; 

Помните, что в этом случае, так как вы уже определили покупки в вашем другом файле Java, вы используете его в качестве типа данных, не как идентификатор.

Для правила 2 вам понадобится инструкция if в методах доступа для purchaseCount, а также в конструкторе.

Правило 3 является чрезвычайно неопределенным ... но мое лучшее предположение заключается в том, что ваш учитель хочет, чтобы вы определили метод длины для этого класса, так что, когда вы вызываете слово purchases.length(), он возвращает счет покупки.

Опять же, правило 4 является неопределенным, но я думаю, вам нужно определить метод get для этого класса, который просто возвращает значение из вашего массива частных покупок, используя данный индекс. Что-то вроде этого:

public Purchase get(int index) { 
    return purchases[index] 
} 

Я надеюсь, что это помогает и удачи !!

Смежные вопросы