Witam,
Mam problem z prawidłowym wydrukiem ArrayList. Dodaję obiekty do listy w klasie Main ale przy próbie wydruku zamiast mocy i pojemności silnika pojawia się wartość null :/
package my_project;
import java.util.Scanner;
public class Main {
public static CarBase carsBase = new CarBase();
public static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
Engine engine = new Engine();
Car car = new Car();
boolean quit = false;
int choice = 0;
printInstructions();
while(!quit) {
System.out.println("Enter your choice");
choice = scanner.nextInt();
switch(choice) {
case 1:
System.out.println("Enter an engine power:");
engine.setPower(scanner.nextInt());
scanner.nextLine();
System.out.println("Enter an engine capacity:");
engine.setCapacity(scanner.nextInt());
scanner.nextLine();
System.out.println("Enter a brand name:");
car.setBrand(scanner.nextLine());
System.out.println("Enter a type:");
car.setType(scanner.nextLine());
System.out.println("Enter a color:");
car.setColor(scanner.nextLine());
carsBase.addCar(car);
break;
case 2:
System.out.println("Car list:");
carsBase.printCarsBase();
break;
case 3:
System.out.println("Enter a position to remove car:");
carsBase.removeCar(scanner.nextInt());
break;
case 4:
printInstructions();
break;
case 5:
quit = true;
break;
}
}
}
public static void printInstructions() {
System.out.println("1. Add a new car to base");
System.out.println("2. Print list of cars");
System.out.println("3. Remove car in position");
System.out.println("4. Print menu");
System.out.println("5. Close program");
}
}
```
```
package my_project;
import java.util.ArrayList;
public class CarBase {
ArrayList<Car> carsBase = new ArrayList<Car>();
public void addCar(Car car) {
carsBase.add(car);
}
public void printCarsBase() {
for(Car c : carsBase) {
System.out.println(c);
}
}
public void removeCar(int position) {
carsBase.remove(position);
}
}
```
```
package my_project;
public class Car {
private Engine engine;
private String type;
private String color;
private String brand;
public Car() {}
public Car(Engine engine, String type, String color, String brand) {
this.engine = engine;
this.type = type;
this.color = color;
this. brand = brand;
}
public Engine getEngine() {
return engine;
}
public void setEngine(Engine engine) {
this.engine = engine;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
@Override
public String toString() {
return "Car [engine=" + engine + ", type=" + type + ", color=" + color + ", brand=" + brand + "]";
}
}
```
```
package my_project;
public class Engine {
private int power;
private int capacity;
public Engine () {}
public Engine(int power, int capacity) {
this.power = power;
this.capacity = capacity;
}
public int getPower() {
return power;
}
public void setPower(int power) {
this.power = power;
}
public int getCapacity() {
return capacity;
}
public void setCapacity(int capacity) {
this.capacity = capacity;
}
public void startEngine() {
System.out.println("Engine has started");
}
public void stopEngine() {
System.out.println("Engine has stoped");
}
@Override
public String toString() {
return "Engine [power=" + power + ", capacity=" + capacity + "]";
}
}
```