2016-04-25 3 views
0

Я делаю бронирование отеля. У меня есть этот класс, где я создаю большинство аргументов:объект как параметр между классами java

public class Habitaciones { 

    boolean ocupado; 
    int tipo; 
    int ID; 
    GregorianCalendar fecha; 
    GregorianCalendar fechafinal; 


    public Habitaciones(boolean _ocupado, int _tipo, int _ID) { 
     ocupado = _ocupado; 
     tipo = _tipo; 
     ID= _ID; 
    } 

    public int getID() { 
     return ID; 
    } 

    public void setID(int ID) { 
     this.ID = ID; 
    } 

    public boolean getOcupado() { 
     return ocupado; 
    } 

    public void setOcupado(boolean ocupado) { 
     this.ocupado = ocupado; 
    } 

    public int getTipo() { 
     return tipo; 
    } 

    public void setTipo(int tipo) { 
     this.tipo = tipo; 
    } 

    public Calendar getFecha() { 
     return fecha; 
    } 

    public void setFecha(GregorianCalendar fecha) { 
     this.fecha = fecha; 
    } 

    public Calendar getFechafinal() { 
     return fechafinal; 
    } 

    public void setFechafinal(GregorianCalendar fechafinal) { 
     this.fechafinal = fechafinal; 
    }   
} 

В другом классе, у меня есть данные по умолчанию:

public class Hotel { 

    static Habitaciones[] cuartos = new Habitaciones[6]; 

    public Hotel() { 
     cuartos[0] = (new Habitaciones(false, 1,1)); 
     cuartos[1] = (new Habitaciones(false, 1,2)); 
     cuartos[2] = (new Habitaciones(false, 2,3)); 
     cuartos[3] = (new Habitaciones(false, 2,4)); 
     cuartos[4] = (new Habitaciones(false, 3,5)); 
     cuartos[5] = (new Habitaciones(false, 3,6)); 
    } 

Теперь я хочу вернуться, что «cuartos» объект, так что я могу сделать другой класс, чтобы заполнить его, как, я пытаюсь вызвать его из меню, но он говорит, что эта переменная не существует.

случай 2:

SegundoReservar miReserva = new SegundoReservar(); 
miReserva.SegReservarHab(cuartos);` 

Моя проблема заключается в том, что я могу сделать это в том же классе, но не знаю, как назвать объект из другого класса, или, как его создать.

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

+0

вывесить ошибку StackTrace – Abdelhak

+0

Посмотрите на это. http://www.tutorialspoint.com/java/java_object_classes.htm – sebenalern

+0

Если вы хотите иметь доступ к 'cuartos' в вашем' отеле' из другого класса, вы должны добавить 'public Habitaciones [] getCuartos() {return cuartos; } ' – ericbn

ответ

0

Создайте общедоступный метод getCuartos так же, как вы сделали геттеры в Habitaciones, который возвращает нужный вам объект. Тогда ваш вызов метода становится:

miReserva.SegReservarHab(hotel.getCuartos()); 
0

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

SegundoReservar miReserva = new SegundoReservar(); 
miReserva.SegReservarHab(Hotel.cuartos);` 

, но следует помнить, что Cuartos массив будет иметь некоторые HabitacionesТОЛЬКО после вы создаете какой-то объект класса Hotel ...

some nullPointerexcetions может произойти в коде, если вы не считаете это ...

0
public class Hotel { 
     private Habitaciones[] cuartos; 

    public Hotel() { 
     cuartos[0] = (new Habitaciones(false, 1,1)); 
     cuartos[1] = (new Habitaciones(false, 1,2)); 
     cuartos[2] = (new Habitaciones(false, 2,3)); 
     cuartos[3] = (new Habitaciones(false, 2,4)); 
     cuartos[4] = (new Habitaciones(false, 3,5)); 
     cuartos[5] = (new Habitaciones(false, 3,6)); 
    } 

    public Habitaciones[] getHabitaciones() 
    { 
     return cuartos; 
    } 

Затем в меню вы должны сделать это:

1- Создать экземпляр отеля

Hotel hotel = new Hotel(); 

Это инициализировать поле cuartos путем вызова конструктора.

2- Теперь вы можете получить данные вызова функции getHabitaciones

hotel.getHabitaciones(); 

я думаю, что вы должны установить поле «cuartos» частному

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