2015-09-23 3 views
-4

Я пытаюсь создать «Класс»: Sandwich.Java и «Приложение»: testSandwich.java.Практическое руководство. Использование java Set и Get

Моя задача состоит в том, чтобы включать в себя методы, чтобы получить и установить значения для 3-х полей в Sandwich.java: Основной ингредиент, хлеб тип, цена. Затем с приложением, которые создают пять объектов Sandwich в массиве. (Пять) Массивы

Sandwich.java:

public class Sandwich { 
    public String mainIngredient = ""; 
    public String breadType = ""; 
    public Double price; 

    String getMainIngredient(){ 
     return mainIngredient; 
    } 

    void setMainIngredient(String mainIng){ 
     mainIngredient = mainIng; 
    } 

    void setBread(String wheat){ 
     breadType = wheat; 
    } 

    void setPrice(double mainPrice){ 
     price = mainPrice; 
    } 

testSandwich.java:

public class TestSandwich { 

    public static void main(String args[]) { 

       Sandwich[] sandwiches = new Sandwich[5]; 


       for(int i = 0; i < 5; i++){ 
       sandwiches[i] = new Sandwich(); 

       System.out.println("Choose a Main Ingredient: "); 
       String userInput = user_input.next(); 
       sandwiches[i].setBread(userInput); 

       System.out.println("Choose a Bread: "); 
       userInput = user_input.next(); 
       sandwiches[i].setMainIngredient(userInput); 

       System.out.println(sandwiches[i].getMainIngredient()); 
       System.out.println(""); 

Выходной ток Ошибка:

выбрать Основной ингредиент:

Исключение в потоке "главный" java.lang.RuntimeException: Uncompilable исходный код - Ошибочный тип SYM: user_input.next

at practical.TestSandwich.main(TestSandwich.java:24) 

Java Результат: 1

строить успешные (общее время: 1 секунда)

Вопрос: Как исправить ошибку и как получить результат, который я ищу?

+0

Во-первых, я настоятельно рекомендую вам не пытаться запускать код, который не компилируется. Убедитесь, что ваш код скомпилирован в первую очередь - и если вам предлагается выполнить код, который не был скомпилирован правильно, * скажите «нет», если у вас нет конкретной причины, по которой вы, возможно, хотите использовать недопустимый код. –

+0

Что касается этой ошибки - это не имеет никакого отношения к методам getter и setter ... вы пытаетесь вызвать метод в переменной 'user_input', но вы так и не объявили это. Возможно, вам не хватает «Scanner user_input = new Scanner (System.in);' в начале вашего 'main' метода? (Я бы настоятельно советовал вам не указывать переменные, используя символы подчеркивания, и * обязательно * не имеют переменных, называемых как user_input, так и 'userInput' одним и тем же методом ... очень запутанным.) –

+0

Где вы объявили user_input? – Rehman

ответ

1

Exeption брошен, потому что вы вообще не инициировали Scanner user_input. Попробуйте это в начале вашей main() функции:

Scanner user_input = new Scanner(System.in); 

здесь является основной учебник, как иметь дело с объектами сканера и ввод данных пользователем: http://www.homeandlearn.co.uk/java/user_input.html

Я также настоятельно рекомендую вам, чтобы сделать некоторые исследования, прежде чем Youre отправляя свой вопрос. Также вы должны понимать, что делает ваша программа, иначе вы вообще не поймете свои проблемы (как сейчас).

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