Как рассчитать вес компонентов ПК в java
Столкнулся с проблемой- не понимаю как посчитать вес компонентов ПК. Информацию о компонентах выводит, а вод конструктор на расчет веса не понимаю как написать. Код ниже:
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 = new Processor(processor.getProcessorFrequency(), processor.getNumberOfCores(),
processor.getProcessorManufacturer(), processor.getProcessorType(),
processor.getProcessorWeight());
this.ram = new Ram(ram.getRamAmount(), ram.getRamType(), ram.getRamWeight());
this.hdd = new Hdd(hdd.getMemoryAmount(), hdd.getHddType(), hdd.getHddWeight());
this.screen = new Screen(screen.getScreenDiagonal(), screen.getScreenType(),
screen.getScreenWeight());
this.keyboard = new Keyboard(keyboard.hasBacklight(), keyboard.getKeyboardType(),
keyboard.getKeyboardWeight());
this.totalWeight = totalWeight;
}
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 calculateTotalWeight() {
totalWeight = processor.getProcessorWeight() + ram.getRamWeight() +
hdd.getHddWeight() + screen.getScreenWeight() + keyboard.getKeyboardWeight();
}
public double getTotalWeight(){
return totalWeight;
}
public String toString(){return "Производитель ПК: " + vendor + "\n" + "Имя ПК: " + name +
"\n" + processor + "\n" + ram + "\n" + hdd + "\n" + screen + "\n" + keyboard +
"Общий вес " + totalWeight + "грамм";}
}
И класс Main:
public class Main {
public static void main(String[] args) {
Computer computer = new Computer("China", "ПК Пети",
new Processor(1.9,4, "Intel",
ProcessorType.BUFFERPROCESSOR, 10),
new Ram(4, RamType.SDRAM, 4),
new Hdd(500, HddType.HDD, 500),
new Screen(17, ScreenType.IPS, 10),
new Keyboard(true, KeyboardType.CONDUCTIVE, 1200),
1);
System.out.println(computer);
}
}
В консоль выводит:
Производитель ПК: China
Имя ПК: ПК Пети
Частота процессора: 1.9 Ггц
Количество ядер: 4
Производитель: Intel
Вес процессора 10.0 грамм
Тип процессора: BUFFERPROCESSOR
Объём оперативной памяти: 4 ГБ
Тип оперативной памяти: SDRAM
Вес планки оперативной памяти 4.0 грамм
Объём памяти: 500 ГБ
Тип жесткого диска: HDD
Вес жесткого диска 500.0 грамм
Диагональ экрана: 17 дюймов
Тип экрана: IPS
Вес монитора 10.0 кг.
Наличие подсветки: true
Тип клавиатуры: CONDUCTIVE
Вес клавиатуры 1200.0 граммОбщий вес 1.0грамм
Общий вес1.0
А нужно, чтобы вес всех компонентов суммировал.
Ответы (2 шт):
Автор решения: Pentiux
→ Ссылка
public double calculateTotalWeight() {
return processor.getProcessorWeight() + ram.getRamWeight() +
hdd.getHddWeight() + screen.getScreenWeight() + keyboard.getKeyboardWeight();
}
и в конструкторе:
public Computer(String vendor, String name, Processor processor, Ram ram,
Hdd hdd, Screen screen, Keyboard keyboard, double totalWeight) {
...
this.totalWeight = calculateTotalWeight();
}
Автор решения: Sergey Zh.
→ Ссылка
Просто замените в конструкторе строчку:
this.totalWeight = totalWeight;
на вот эту:
this.totalWeight = calculateTotalWeight();