В вашем Spanish
классе у вас есть
public class Spanish {
public Spanish() {}
}
, но public Spanish()
- это не обычный метод, это конструктор, который можно вызвать только с ключевым словом new
, которое вы уже делаете.
if (language.equals("Span")) {
Spanish span = new Spanish();
span.Spanish();
}
(я удалил имя пакета, так как оно не нужно). Итак, вам нужен еще один метод в вашем классе Spanish
, который выполняет реальную работу.
Основная проблема, несмотря на то, что вы продублировали весь код, состоит в том, что вы пытаетесь сделать все в методе main () CashRegister
Для начала я бы создал простой начальный класс, назовем его Starter
, который задает вопрос о языке, а затем позволяет классу CashRegister
или Spanish
обрабатывать основные функции.
class Starter {
public static void main(String[] args) {
//Ask question about language as before
if (language.equals("Span")) {
Spanish.register();
} else {
CashRegister.register();
}
}
}
И затем вы реализуете метод register
в CashRegister
и Spanish
, которые содержат код после else
, обратите внимание, что я сделал метод static
public class CashRegister {
public static void register() {
System.out.print("Please enter cash register's float: $");
registerfloat = in.nextLine();
balance = Double.parseDouble(registerfloat);
//... rest of code
}
}
Это должно помочь вам начать, но есть много других улучшений, которые можно сделать.
Если вы не хотите иметь статический метод, класс Starter
необходимо изменить, как показано ниже, но я думаю, что статический метод имеет больше смысла.
if (language.equals("Span")) {
Spanish spanish = new Spanish();
spanish.register();
} else {
CashRegister cashRegister = new CashRegister();
cashRegister.register();
}