В отличие от других ответов, я начну с еще одной вещи.
Вы забыли про самый важный метод - и это Constructor
.
Вам необходимо создать калькулятор класса, чтобы вы создали класс (тип), который представляет объекты калькуляторов классов. Используя соглашение Java, этот класс следует называть GradeCalculator
, не используйте сокращения, такие как Calc
, чтобы имя не было двусмысленным.
Итак, вернитесь к constructor
- Вы не создали свой объект Calculator. Возможно, это не понадобится, и вы можете достичь своей цели, не используя ее, но это не очень хорошая практика.
Итак, используйте этот метод - таким образом, вы создадите реальный объект Calculator.
Это может быть достигнуто так:
public static void main(String[] args)
{
GradeCalculator myCalculator = new GradeCalculator();
}
И теперь вы можете себе представить, у вас есть калькулятор перед вами. Что вы можете с этим сделать? Получение знака будет хорошее начало - так, что вы можете сделать, это:
myCalculator.getMark()
Теперь вы должны определить метод getMark()
:
private void getMark() { }
В каком бы вы подсказать пользователю для ввода. Вы также можете сделать:
myCalculator.getMaxMark() { }
и таким образом получить максимальную отметку (после определения метода).
Точно так же вы можете позвонить по методу myCalculator.getWeighting()
, myCalculator.calculateFinalResult()
, myCalculator.printResult()
.
Таким образом, вы будете иметь реальный объект со следующими mehtods (то, что он может сделать):
public GradeCalculator() { } //constructor
private void getMark() { } //prompts user for mark
private void getMaxMark() { } //prompts user for max mark
private void getWeighting() { } //prompts user for weighting factor
private void calculateFinalResult() // calculates the final result
private void printResult() // prints the result.
И что я бы назвал создание калькулятора, используя методы, - и я бы высокообогащенного. Попробуйте подумать о классах, которые вы создаете как реальные объекты, и создать методы, представляющие поведение, которое действительно имеет объекты. Чем скорее вы начнете это делать, тем лучше для вас. Написание всего кода одним методом не является хорошей практикой, а в больших приложениях может привести к различным проблемам. Поэтому даже при небольших проектах старайтесь делать их с использованием лучших практик, чтобы у вас не развивались плохие habbits.
Edit: Так что вся ваша программа может выглядеть следующим образом:
import java.util.Scanner;
public class GradeCalculator
{
//here you define instance fields. Those will be visible in all of your classes methods.
private Scanner userInput; //this is the userInput the calculator keypad if you will.
private int mark; //this is the mark the user will enter.
private int maxMark; //this is the mark the user will enter.
private int weightingFactor; //this is the weighting factor the user will enter.
private int result; //this is the result that will be calculated.
public static void main(final String args[])
{
Scanner userInput = new Scanner(System.in); //create the input(keypad).
GradeCalculator calculator = new GradeCalculator(userInput); //create the calculator providing it with an input(keypad)
calculator.getMark();
calculator.getMaxMark();
calculator.getWeightingFactor();
calculator.printResult();
}
private GradeCalculator(final Scanner userInput)
{
this.userInput = userInput; //from now the provided userInput will be this calculators userInput. 'this' means that it's this specific calculators field (defined above). Some other calculator may have some other input.
}
private void getMark() { } //here some work for you to do.
private void getMaxMark() { } //here some work for you to do.
private void getWeightingFactor() { } //here some work for you to do.
private void printResult() { } //here some work for you to do.
}
Пожалуйста, обратите внимание на то, что после построения объекта калькулятора вы не должны использовать методы, которые static.
Я знаю, что, вероятно, звучит глупо, но когда я определяю свои параметры, как мне определить его так, что они равны, вводимый пользователь? – lildizzle63
Если вы получаете значения от пользователя с помощью ввода с клавиатуры, нет необходимости определять параметр с тем же семантическим значением. Например, вы передаете метод maxMark в этот метод, и вы получаете его значение от ввода пользователя. Это не имеет смысла. Передавайте в качестве параметров только информацию, которая требуется в ваш метод, но не существует в нем. – 2014-09-01 11:38:57