Рассчитать комплектующие ПК и их вес с использованием enum
Столкнулся с проблемой- не понимаю как посчитать комплектующие ПК и их вес. Информацию не выводит а пишет только ошибки. Код ниже:
public class Computer {
private final String vendor;
private final String name;
private Processor processor;
private Ram ram;
private Hdd hdd;
private Screen screen;
private Keyboard keyboard;
private double totalWeight;
public Computer(String vendor, String name, Processor processor, Ram ram,
Hdd hdd, Screen screen, Keyboard keyboard, double totalWeight) {
this.vendor = vendor;
this.name = name;
this.processor = processor;
this.ram = ram;
this.hdd = hdd;
this.screen = screen;
this.keyboard = keyboard;
this.totalWeight = calculateTotalWeight();
}
public Computer setVendor(String vendor) {
return new Computer(vendor, name, processor, ram,
hdd, screen, keyboard, totalWeight);
}
public String getVendor(){
return vendor;
}
public Computer setName(String name) {
return new Computer(vendor, name, processor, ram,
hdd, screen, keyboard, totalWeight);
}
public String getName(){
return name;
}
public void WEIGHT(Processor processor, Ram ram,
Hdd hdd, Screen screen, Keyboard keyboard) {
processor = Processor.WEIGHT;
ram = Ram.WEIGHT;
hdd = Hdd.WEIGHT;
screen = Screen.WEIGHT;
keyboard =Keyboard.WEIGHT;
}
public double calculateTotalWeight() {
totalWeight = processor.WEIGHT() + ram.WEIGHT() +
hdd.WEIGHT() + screen.WEIGHT() + keyboard.WEIGHT();
return 0;
}
public double getTotalWeight(){
return totalWeight;
}
public String toString(){return "PC manufacturer: " + vendor + "\n" + "PC name: " + name +
"\n" + processor + "\n" + ram + "\n" + hdd + "\n" + screen + "\n" + keyboard +
"Total weight " + totalWeight + "kg.";
}
}
И класс Main:
public class Main {
public static void main(String[] args) {
Computer computer = new Computer("China", "VLAD PC",
new Processor(1.9,4, "Intel", Processor.COREI7, 10),
new Ram(4, Ram.SRAM, 4),
new Hdd(500, Hdd.HDD, 500),
new Screen(17, Screen.IPS, 10),
new Keyboard(true, Keyboard.MECHANICAL, 1200),
1);
System.out.println(computer);
}
}
Также enum:
public enum Hdd {
MEMORYSIZE,
HDD, SSD,
WEIGHT
}
public enum Keyboard {
MEMBRANE, MECHANICAL,
BACKlIGHT,
WEIGHT
}
public enum Processor {
COREI7, COREI9,
FREQUENCY,
NUMBEROFCORES,
MANUFACTURER,
WEIGHT
}
public enum Ram {
RAMAMOUNT,
SRAM, DRAM,
VOLUME,
WEIGHT
}
public enum Screen {
DIAGONAL,
IPS,
TN,
VA,
WEIGHT
}
А нужно понять как откорректировать код чтобы всё заработало.
Ответы (1 шт):
Автор решения: the__Komar
→ Ссылка
проблема в `
new Processor(1.9,4, "Intel", Processor.COREI7, 10),
new Ram(4, Ram.SRAM, 4),
new Hdd(500, Hdd.HDD, 500),
new Screen(17, Screen.IPS, 10),
new Keyboard(true, Keyboard.MECHANICAL, 1200),
`
Попробуйте заменить enum"ы на классы с соответствующими полями, сейчас исходя из вашего примера вы пытаетесь создать экземпляр "enam'a"