Создание объекта и вызов его

1

это мой текущий код для хранения комнат (он компилируется отлично), но в UML есть переменная, называемая addEquipment, и есть еще один класс под названием Оборудование, которое будет определено. У меня возникли проблемы, обертывая голову вокруг того, что я должен делать с этим. Должен ли я создавать и вызывать объект под названием "Оборудование"? что происходит в addEquipment?

public class Room {
    //begin variable listing
    private String name;
    private int id;
    private int capacity;
    private String equipmentList;

    //begins get methods for variables  
    public String getName(){ 
        return name;
    }
    public int getID(){ 
        return id;
    }
    public int getCapacity(){
        return capacity;
    }
    public String getEquipmentList(){
        return equipmentList;
    }

    //  Set the variables
    public void setName(String aName){
        name=aName;
    }

    public void setID(int anID){
        id=anID;
    }

    public void setCapacity(int aCapacity){
        capacity=aCapacity; 
    }

    public void setEquipmentList(String anEquipmentList){
        equipmentList=anEquipmentList; 
    }

    public String addEquipment(String newEquipment, String currentEquipment){

    }

    //Create room object
    public Room(int capacity, String equipmentList) {
        setCapacity(capacity);
        setEquipmentList(equipmentList);
    }

    //Convert variables to string version of room
    public String toString(){
        return "Room "+name+", capacity: "+capacity+", equipment: "+getEquipmentList();
    }
}
  • 0
    addEquipment будет методом , а не переменной, как setEquipmentList . Это указывает на наличие списка оборудования (объектов), содержащегося в Room в который можно добавить отдельные элементы оборудования (то есть объекты типа « Equipment ). Вам это поможет?
Теги:
oop

2 ответа

0

Класс оборудования может быть любым. Предположим, что "Оборудование" -class имеет строку, называемую "имя", как атрибут

public class Equipment {
  String name;

  public Equipment( String name) {
    this.name = name;
  }

  public String getName() {
    return this.name
  }   
}

Когда вы расширяете свой класс комнаты по запрошенному методу "addEquipment", вы можете сделать что-то вроде этого.

public class Room {

  ... // Your code

  private int equipmentIndex = 0;
  private Equipment[] equipment = new Equipment[10]; // hold 10 Equipment objects

  public void addEquipment( Equipment eq ) {
    if ( equipmentIndex < 10 ) {
      equipment[ equipmentIndex ] = eq;
      equipmentIndex++;
      System.out.println("Added new equipment: " + eq.getName());
    } else {
      System.out.println("The equipment " + eq.getName() + " was not added (array is full)");
    }
  }
}

Теперь, когда вы звоните

 room.addEquipment( new Equipment("Chair") );

на ваш ранее инициализированный объект комнаты -class, вы получите

 "Added new equipment: Chair"

Надеюсь это немного поможет.

PS: Код не тестируется (возможно, там где-то скрывается синтаксическая ошибка)

0

Вы можете создать новый класс Equipment и изменить свой атрибут equipmentList как List:

 public class Equipment {
        private String name;

        public Equipment(String name) {
           this.name = name;
        }
}

public class Room {
    //begin variable listing
    private String name;
    private int id;
    private int capacity;
    private List<Equipment> equipmentList = new ArrayList<Equipment>();

    //begins get methods for variables  
    public String getName(){ 
        return name;
    }
    public int getID(){ 
        return id;
    }
    public int getCapacity(){
        return capacity;
    }
    public List<Equipment> getEquipmentList(){
        return equipmentList;
    }

    //  Set the variables
    public void setName(String aName){
        name=aName;
        }

    public void setID(int anID){
        id=anID;
    }

    public void setCapacity(int aCapacity){
            capacity=aCapacity; 
    }

    public void setEquipmentList(List<Equipment> anEquipmentList){
        equipmentList=anEquipmentList; 
    }

    public String addEquipment(String newEquipment, String currentEquipment){
        Equipment oneEquipment = new Equipment(newEquipment);
        equipmentList.add(oneEquipment);
    }

    //Create room object
    public Room() {
        setCapacity(capacity);
        setEquipmentList(equipmentList);
    }

    //Convert variables to string version of room
    public String toString(){
        String capacity=String.valueOf(getCapacity());
        String room = "Room "+name+", capacity: "+capacity+", equipment:     "+getEquipmentList();
        return room;
    }
}

В методе addEquipment вы можете создать новое оборудование и добавить его в список equipmentList, например, код выше.

  • 1
    Для чего используется currentEquipment в addEquipment(String newEquipment, String currentEquipment) ?!
  • 0
    Спасибо! но есть ли способ сделать его массивом, а не списком?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню