2014-11-08 2 views
1

Я немного пытаюсь найти, как отправить/получить доступ к объекту, который был создан в основном методе другим статическим методом.Как получить доступ к объекту, созданному в основном методе

Вот моя часть моего класса обслуживания коды, который состоит из публичного конструктора, сбруя, и мутаторные методы:

public class Participants 
    { 
     String firstName=" "; 
     String lastName=" "; 
     int socialSecurity=0; 
     int ticket=0; 

     char status='N'; 
     Vehicle veh=null; 


     public Participants(String fn, String ln, int ssn, int tkt) 
     { 
      firstName=fn; 
      lastName=ln; 
      socialSecurity=ssn; 
      ticket=tkt; 
     } 
    } 

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

public class Race 
{ 
    public static void main(String[] args) 
    { 
     .... 
     Participants []people=new Participants[35]; 
     Vehicle []cars=new Vehicle[10]; 
...code to "fill" those objects 
     GiveAway([]cars,[]people); //sending those objects to static method- doesn't work from here) 
    } 

public static void GiveAway(Vehicle[] veh, Participants[] part) 
    { 
     //set of instructions to work and change those objects 
    } 
} 

код просто не работает, и это потому, что я не знаю, как либо «отправить» массив объектов в метод (возможно ли это, кстати?).

Я делаю это правильно? Или есть более простой способ? Я нашел несколько тем о частных занятиях и обо всем остальном, но не мог понять, что делать с моим кодом.

Я ценю любую помощь

Спасибо!

ответ

2

Я думаю, что вы считаете, что имя массива []people и []cars. Это не. Когда вы объявляете их, это на самом деле:

Vehicle[] cars = new Vehicle[10]; 
└───────┘ └──┘ 
    Type  var name 

Так массив называется cars, и это, как вы должны передать его другим способом:

GiveAway(cars, people); 

В качестве примечания: не дают имена методов, начинающиеся с заглавной буквы. Соглашения заключаются в том, что только имена типов (классы, интерфейсы и т. Д.) Начинаются с заглавной буквы. Константы - все-шапки, а методы имеют строчную первую букву.

1

Ваш призыв к GiveAway должен выглядеть следующим образом

GiveAway(cars, people); 

Эти квадратные скобки дает вам ошибку компилятора.

1
Participants []people=new Participants[35]; 
Vehicle []cars=new Vehicle[10]; 
GiveAway([]cars,[]people); 

должен быть

Participants[] people=new Participants[35]; 
Vehicle[] cars=new Vehicle[10]; 
GiveAway(cars, people); 

В Java вы используете [], чтобы сигнализировать компилятор, что это массив. вы поместили его прямо за именем объекта, который хотите создать массив (участников, автомобиль). А при вызове «GiveAway» вам нужно только использовать имена массивов.

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