Я очень плохо знаком с программированием, поэтому я практиковался с некоторыми простыми вещами и столкнулся с проблемой, которую пытался решить около 2 часов, и я понятия не имею, что с ней не так.
Проблема в том, что когда я вызываю crate.fillCrate();
или crate.emptyCrate();
, в консоли ничего не появляется, а когда я вызываю crate.crateInfo();
, в консоли появляется следующее:
A nice crate of Heineken
It contains 24 slots
slots: are filled.
slots: are empty.
Полагаю, это означает, что мои циклы for не запускаются, но я понятия не имею, почему ...
Мой основной класс:
public class Main {
public static void main(String[] args) {
Crate crate = new Crate(24, "Heineken");
}
}
Мой класс ящиков:
public class Crate {
private int crateSize;
private Bottle[] bottles = new Bottle[crateSize];
public String brand = null;
public Crate(int crateSize, String brand) {
this.crateSize = crateSize;
this.brand = brand;
}
public void fillCrate(){
for(int i = 0; i < bottles.length; i++) {
if(bottles[i] == null && !bottles[i].getSpotInfo()) {
bottles[i] = new Bottle(true);
System.out.println("Spot " + (i+1) + " is filled.");
} else {
System.out.println("Spot " + (i+1) + " was already full");
}
}
}
public void emptyCrate() {
for(int i = 0; i < bottles.length; i++) {
if(bottles[i] != null && bottles[i].getSpotInfo()) {
bottles[i].makeSpotEmpty();
System.out.println("Spot " + (i+1) + " is empty.");
} else {
System.out.println("Spot " + (i+1) + " was already empty");
}
}
}
public void crateInfo() {
System.out.println("A nice crate of " + brand);
System.out.println("It contains " + crateSize + " slots");
System.out.print("slots: ");
for(int i = 0; i < bottles.length; i++) {
if(bottles[i] != null && bottles[i].getSpotInfo()) {
System.out.print((i+1));
}
}
System.out.println(" are filled.");
System.out.print("slots: ");
for(int c = 0; c < bottles.length; c++) {
if(bottles[c] != null && !bottles[c].getSpotInfo()) {
System.out.print((c+1));
}
}
System.out.println(" are empty.");
}
}
И мой Bottle класс:
public class Bottle {
private boolean occupiesSpot = false;
public Bottle(boolean occupiesSpot) {
this.occupiesSpot = occupiesSpot;
}
public void makeSpotEmpty() {
occupiesSpot = false;
}
public boolean getSpotInfo() {
return occupiesSpot;
}
}