2015-03-11 2 views
0

Я пытаюсь получить скорость объекта автомобиля. На самом деле все автомобили, хранящиеся в массиве, а затем передают это значение другой переменной.Как получить информацию об атрибутах объектов из массива

Так Вот пример того, что у меня есть:

public class Car 
{ 
    private int speed; 

    public Car(int s) 
    { 
     speed = s; 
    } 

    public int getSpeed() 
    { 
     return speed; 
    } 
    public void setSpeed(int s) 
    { 
     speed = s; 
    } 
} 

У меня есть класс, который создает массив автомобилей.

public class Environment { 

private Car[] garage; 
private Random random; 


public Environment(){ 
    random = new Random(); 
    populateGarage(); 
} 

public void populateGarage() 
{ 
    garage = new Car[4]; 
    int randomSpeed; 
    Car car; 

    for(int i= 0; i < garage.length; i++) 
    { 
     randomSpeed = random.nextInt(10); 
     if(randomSpeed < 5){ 
      randomSpeed = randomSpeed +5; 
     } 
     car = new Car(carNames[i], randomSpeed); 
     garage.add(car); 

     System.out.println("car has speed "+ car.getSpeed()); 
    } 

Все работает нормально до этого момента. Теперь я пытаюсь получить доступ к этому значению в другом классе. Вот пример:

public class RaceDisplay extends JPanel implements ActionListener{ 

    private int velX; 
    private int x; 
    private Car car; 
    private Environment env; 


public RaceDisplay(){ 

     x=0; 
     velX=env.getArray[0]... (the velocity value should be one of the car's speeds) <------------- 
    } 

    public void paintComponent(Graphics g){ 

     super.paintComponent(g); 
     // (....) 

    } 
    public void actionPerformed(ActionEvent e) { 

     x=x+velX; 
      if(x>=650){ 
      x=0; 
      x=x+velX; 
    } 
} 

Я зациклился на том, как получить доступ к этой информации через другой класс. Любая помощь приветствуется.

ответ

1

потому что garage является частным полем вам нужна функция геттер, установленный в Environment

public Car getGarage (int index) { 
    return garage [index]; 
} 

Конечно, если вы не заинтересованы в Car объекта на всех и просто хотите скорость вы могли бы написать метод к этому как:

public int getSpeedOfCar (int index) { 
    return garage [index].getSpeed(); 
} 
+0

Итак, геттер в классе окружающей среды? –

+0

Извините, только что просмотрел код. –

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