2013-10-06 6 views
-1

У меня есть вопрос относительно к использованию метода в основном классе, вот мой код класса Race:вызова метода в основном методе в Java

import java.util.ArrayList; 


public class Race { 

    private ArrayList<Car>cars; 


    public Race(){ 
     cars = new ArrayList<Car>(); 
    } 

    public void addCars(Car car){ 
     cars.add(car); 
    } 
} 

выше является то, что я сделал, чтобы сделать ArrayList для автомобили, которые я готов поставить в системе с помощью основного метода в другом классе:

public class Test { 

    public static void main(String[] args) { 
     Car toyota = new Car("Toyota",1.0,1.0,2.0,2.0); 
     cars.addCars(toyota); 
    } 
} 

Однако он имеет ошибки в последней строке, она показывает «автомобили не могут быть решены», я не знаю, как должен Я исправлю это, возможно, написав метод геттера в классе Race?

+1

У вас нет переменной под названием 'cars'. Возможно, вы хотели «Race cars = new Race();' –

+1

Вы забыли создать гонку. – Nikhil

+0

Кроме того, [Кодовые обозначения] (http://www.oracle.com/technetwork/java/codeconv-138413.html) рекомендуют, чтобы имена переменных начинались с строчной буквы, например. 'Автомобиль toyota = новый автомобиль (...)'. –

ответ

2

Создать экземпляр race и вызвать addCars

Race race = new Race(); 
race.addCars(toyota); 
+0

Спасибо за помощь, ваше решение добавляет автомобиль в arraylist, который я сделал? –

+0

ну да, добавьте его в «Список», содержащийся в 'Race' – Reimeus

+0

Вся идея класса« Race »заключается в том, что он инкапсулирует и скрывает детали реализации (ArrayList). – KarlP

1

cars не существует в этом контексте, вы можете придерживаться convention на том, прописные имена переменных, а также.

Изменить Test класс что-то похожее на это:

public class Test { 
    public static void main(String[] args) { 
     Race race = new Race(); 
     Car toyota=new Car("Toyota",1.0,1.0,2.0,2.0); 
     race.addCars(toyota); 
    } 
} 

Вы хотите добавить автомобилей в гонки, не cars (который не существует). Чтобы добавить автомобили в гонку, вам сначала нужно сделать это.

При добавлении автомобилей в гонку, это будет внутренне добавить его в список автомобилей. (Потому что вы сделали это так) Проблема заключается в том, что вы пытаетесь использовать переменную, которая находится за пределами области действия. (Где-то в другом месте, в основном)

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

+0

Спасибо, Xandaros! –

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