Last Block of main prints:
null, 0, null
null, 0, null
null, 0, null
null, 0, null
But should print the following: Ferrari 488, 0, Ferrari; Audi A7, 0, Audi
Ferrari F1, 20, Ferrari; AudiR8, 3, Audi
Попытка изменить тип списка массива на String, который упоминался как ошибка.
Перепробовал несколько типов списков. Но я не получаю указанный вывод, только вывод 0 / null, и я много чего пробовал; надеюсь, кто-нибудь может помочь.
import java.util.ArrayList;
class Car {
String name;
String type;
int age;
Car() {
name = null;
type = null;
age = 0;
}
Car(String name, String type, int age) {
this.name = name;
this.type = type;
this.age = age;
}
// GETTERS:
public String getName() {
return name;
}
public String getType() {
return type;
}
public int getAge() {
return age;
}
// SETTER:
public void setAge(int age) {
this.age = age;
}
public void printInfo() {
System.out.println(name + ", " + age + ", " + type);
}
}
class Audi extends Car {
String type = "Audi";
Audi() {
super("Audi A7", "Audi", 0);
}
Audi(String name, int age) {
super(name, "Audi", age);
}
}
class Ferrari extends Car {
String type = "Ferrari";
Ferrari() {
super("Ferrari 488", "Ferrari", 0);
}
Ferrari(String name, int age) {
super(name, "Ferrari", age);
}
}
class Mercedes extends Car {
String type = "Mercedes";
Mercedes() {
super("AMGGT", "Mercedes", 0);
}
Mercedes(String name, int age) {
super(name, "Mercedes", age);
}
}
class Dealer {
// ArrayList for Cars
private ArrayList<Car> cars = new ArrayList<>();
public void addCar(Car a) {
cars.add(a);
}
public void printAllInfo() {
Car print = new Car();
print.printInfo();
for (Car a : cars) {
print.printInfo();
}
}
}
public class CarBuilder {
public static void main(String[] args) {
Ferrari e1 = null, e2 = null;
Audi p1 = null, p2 = null;
Dealer z = null;
try {
e1 = new Ferrari();
if (e1.name.equals("Ferrari 488")) {
System.out.println("PASS1");
} else {
System.out.println("FAIL1");
}
if (e1.type.equals("Ferrari")) {
System.out.println("PASS2");
} else {
System.out.println("FAIL2");
}
if (e1.age == 0) {
System.out.println("PASS3");
} else {
System.out.println("FAIL3");
}
} catch (Exception e) {
System.out.println("FAIL-block1");
}
try {
p1 = new Audi();
if (p1.name.equals("Audi A7")) {
System.out.println("PASS4");
} else {
System.out.println("FAIL4");
}
if (p1.type.equals("Audi")) {
System.out.println("PASS5");
} else {
System.out.println("FAIL5");
}
if (p1.age == 0) {
System.out.println("PASS6");
} else {
System.out.println("FAIL6");
}
} catch (Exception e) {
System.out.println("FAIL-block2");
}
try {
e2 = new Ferrari("Ferrari F1", 20);
if (e2.name.equals("Ferrari F1")) {
System.out.println("PASS7");
} else {
System.out.println("FAIL7");
}
if (e2.type.equals("Ferrari")) {
System.out.println("PASS8");
} else {
System.out.println("FAIL8");
}
if (e2.age == 20) {
System.out.println("PASS9");
} else {
System.out.println("FAIL9");
}
} catch (Exception e) {
System.out.println("FAIL-block3");
}
try {
p2 = new Audi("AudiR8", 3);
if (p2.name.equals("AudiR8")) {
System.out.println("PASS10");
} else {
System.out.println("FAIL10");
}
if (p2.type.equals("Audi")) {
System.out.println("PASS11");
} else {
System.out.println("FAIL11");
}
if (p2.age == 3) {
System.out.println("PASS12");
} else {
System.out.println("FAIL12");
}
} catch (Exception e) {
System.out.println("FAIL-block4");
}
System.out.println("--- Testing printInfo function ---");
try {
e1.printInfo();
} catch (Exception e) {
System.out.println("FAIL-print1");
}
try {
p1.printInfo();
} catch (Exception e) {
System.out.println("FAIL-print2");
}
try {
e2.printInfo();
} catch (Exception e) {
System.out.println("FAIL-print3");
}
try {
p2.printInfo();
} catch (Exception e) {
System.out.println("FAIL-print4");
}
System.out.println("--- Testing printAll function. Should match the above output ---");
try {
z = new Dealer();
z.addCar((Car) e1);
z.addCar((Car) p1);
z.addCar((Car) e2);
z.addCar((Car) p2);
z.printAllInfo();
} catch (Exception e) {
System.out.println("FAIL-lastblock1");
System.out.println("FAIL-lastblock2");
System.out.println("FAIL-lastblock3");
System.out.println("FAIL-lastblock4");
}
}
}
следует напечатать: Ferrari 488, 0, Ferrari
вместо нуля 0, ноль