Доступ к другим Java классам - PullRequest
0 голосов
/ 30 марта 2020

Я - Java новичок, и два вопроса ошеломляют меня очень сильно, поэтому у меня есть эти вопросы. Например, я не понимаю, почему в чемодане классов может быть вызван вызов метода getWeight(), но в удержании класса вызов метода totalWeight() отсутствует.

Это работает здесь:

 public int totalWeight() {
        int momentaryWeight = 0;
        for (Item items: this.itemList) {
            momentaryWeight = momentaryWeight + items.getWeight();
        }
        return momentaryWeight;
    }

Но не здесь:

 public String toString() {
        int momentaryWeight = 0;
        int index = 0;
        for (int i = index; i < this.suitcaseList.size(); i++) {
            Suitcase suitcaseChosen = this.suitcaseList.get(i);
            int weightOfsuitcaseChosen = suitcaseChosen.totalWeight();
            momentaryWeight += weightOfsuitcaseChosen;
        }

Также, имея метод, который возвращает что-то, и используя оператор if (так, 2 оператора возврата), он впоследствии запрашивает у меня другой оператор возврата, как здесь:

public Item printGoods() {
    if (this.itemList.isEmpty() == true) {
        return null;
    } else {
    for (Item itemThis: this.itemList) {
        return itemThis;
    }
    }
    return null;
}

Я знаю, что, возможно, это скучные вопросы, но я не мог придумать лучшего форума, чтобы понять это. Спасибо.

Класс Hold:

public class Hold {
    private int maxWeight;
    private ArrayList<Suitcase> suitcaseList;

    public Hold(int maxWeightGiven) {
        this.maxWeight = maxWeightGiven;
        this.suitcaseList = new ArrayList<>();
    }

    public void addSuitcase(Suitcase suitcase) {
       this.suitcaseList.add(suitcase); 
    }

    public String toString() {
        int momentaryWeight = 0;
        int index = 0;
        for (int i = index; i < this.suitcaseList.size(); i++) {
            Suitcase suitcaseChosen = this.suitcaseList.get(i);
            int weightOfsuitcaseChosen = suitcaseChosen.totalWeight();
            momentaryWeight += weightOfsuitcaseChosen;
        }
        return this.suitcaseList.size() + " suitcases" + " (" + momentaryWeight + " kg)";
    }

Класс Чемодан:

import java.util.ArrayList;

public class Suitcase {
    private int maximumWeight;
    private ArrayList<Item> itemList;

public Suitcase(int maximumWeightGiven) {
    this.maximumWeight = maximumWeightGiven;
    this.itemList = new ArrayList<>();
}

public void addItem(Item item) {
    int momentaryWeight = 0;
    if (momentaryWeight <= this.maximumWeight && momentaryWeight + item.getWeight() <= this.maximumWeight) {
    this.itemList.add(item);    
    }
}


public int totalWeight() {
    int momentaryWeight = 0;
    for (Item items: this.itemList) {
        momentaryWeight = momentaryWeight + items.getWeight();
    }
    return momentaryWeight;
}

Класс Item выглядит так:

    public class Item {
        private String name;
        private int weight;

        public Item(String nameGiven, int weightGiven) {
            this.name = nameGiven;
            this.weight = weightGiven;
        }

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

         public int getWeight() {
             return this.weight;
         }

         public String toString() {
             return this.name + "( " + this.weight + " kg)";
         }

    }
}

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Не знаю, что случилось, но когда я работал над этим некоторое время спустя, внезапно сообщения об ошибках исчезли, и я смог запустить программу. Есть ли в NetBeans специальный ключ для «обновления»?

0 голосов
/ 30 марта 2020

Первый вопрос - неполный код и детализация.

Второй вопрос: предположим, что if-condition ложно, а ваше условие l oop также ложно (пустой массив), тогда программа не достигнет оператора возврата, который почему вы должны добавить дополнительную инструкцию возврата.

Вы можете переместить последнюю return строку внутри else block

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...