构造计算机类,其中包含其配置信息:处理器、主板、内存、显示器、硬盘等设备,各个设备均有型号(字符串),特别的,处理器有主频(小数)和内核数(整数)、显示器有尺寸(整型)、内存和硬盘有容量数据(GB为单位)。请你尝试构造合适的类和类的关系来表示计算机,并为该计算机类添加计算价格(各设备价格之和)、打印配置信息等方法。重写相关类的equals方法,使得两个配置完全相同的计算机为相同的计算机。重写相关类的toString函数,打印计算机的配置信息。
在main函数中
提示:
为计算机类和各个组成配件都构造类,分别重写toString和equals方法
在计算机类中调用各个配件的equals和toString方法
回车用\n
小数用String.format("%.1f",1.234)
输入格式:
两个计算机对象,包含
CPU:型号、主频、内核
主板:型号
内存:容量
显示器:尺寸
硬盘:容量
输出格式:
两个对象是否相等
两个对象的配置信息
输入样例:
在这里给出一组输入。例如:
Corei7 2.8 4
GIGABYTE-B250M-D3H
xiede-DDR3 8
SamsungC27F39 27
SEAGATE-ST1000DM010 2048
Corei7 2.8 4
GIGABYTE-B250M-D3H
xiede-DDR3 8
SamsungC27F39 27
SEAGATE-ST1000DM010 2048
输出样例:
在这里给出相应的输出。例如:
true
Computer1:
CPU:
Model: Corei7
Frequency: 2.8
Number of Cores: 4
Mainboard:
Model: GIGABYTE-B250M-D3H
Memory:
Model: xiede-DDR3
Size: 8
Screen:
Model: SamsungC27F39
Size: 27
Harddisk:
Model: SEAGATE-ST1000DM010
Size: 2048
Computer2:
CPU:
Model: Corei7
Frequency: 2.8
Number of Cores: 4
Mainboard:
Model: GIGABYTE-B250M-D3H
Memory:
Model: xiede-DDR3
Size: 8
Screen:
Model: SamsungC27F39
Size: 27
Harddisk:
Model: SEAGATE-ST1000DM010
Size: 2048
import java.util.Scanner;
class CPU{
private String model;
private double zhup;
private int neihe;
public CPU(){}
public CPU(String model,double zhup,int neihe){
this.model = model;
this.zhup = zhup;
this.neihe = neihe;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public double getZhup() {
return zhup;
}
public void setZhup(double zhup) {
this.zhup = zhup;
}
public int getNeihe() {
return neihe;
}
public void setNeihe(int neihe) {
this.neihe = neihe;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
CPU cpu = (CPU)obj;
return Double.compare(cpu.zhup,zhup)==0&&neihe == cpu.neihe&&model.equals(cpu.model);
}
public String toString(){
return "Model: "+model+"\n"+
"Frequency: "+zhup+"\n"+
"Number of Cores: "+neihe+"\n";
}
}
class Mainboard{
private String model;
public Mainboard(){}
public Mainboard(String model){
this.model = model;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
@Override
public boolean equals(Object obj) {
if(this == obj) return true;
if(obj == null || getClass() != obj.getClass()) return false;
Mainboard mainboard = (Mainboard)obj;
return model.equals(mainboard.model);
}
public String toString() {
return "Model: "+model+"\n";
}
}
class Memory{
private String model;
private int size;
public Memory(){}
public Memory(String model,int size){
this.model = model;
this.size = size;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
@Override
public boolean equals(Object obj) {
if(this == obj) return true;
if(obj == null || getClass() != obj.getClass()) return false;
Memory memory = (Memory)obj;
return model.equals(memory.model) && size == memory.size;
}
public String toString() {
return "Model: " + model + "\n" +
"Size: " + size+ "\n";
}
}
class Screen {
private String model;
private int size;
public Screen() {
}
public Screen(String model,int size){
this.model = model;
this.size = size;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
@Override
public boolean equals(Object obj) {
if(this == obj) return true;
if(obj == null || getClass() != obj.getClass()) return false;
Screen screen = (Screen)obj;
return model.equals(screen.model) && size == screen.size;
}
public String toString() {
return "Model: " + model + "\n" +
"Size: " + size+ "\n";
}
}
class Harddisk{
private String model;
private int size;
public Harddisk(){}
public Harddisk(String model,int size){
this.model = model;
this.size = size;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
@Override
public boolean equals(Object obj) {
if(this == obj) return true;
if(obj == null || getClass() != obj.getClass()) return false;
Harddisk harddisk = (Harddisk)obj;
return model.equals(harddisk.model) && size == harddisk.size;
}
public String toString() {
return "Model: " + model + "\n" +
"Size: " + size;
}
}
class Computer{
private CPU cpu;
private Mainboard mainboard;
private Memory memory;
private Screen screen;
private Harddisk harddisk;
public Computer(){}
public Computer(CPU cpu, Mainboard mainboard, Memory memory, Screen screen, Harddisk harddisk){
this.cpu = cpu;
this.mainboard = mainboard;
this.memory = memory;
this.screen = screen;
this.harddisk = harddisk;
}
@Override
public boolean equals(Object obj){
if(this == obj) return true;
if(obj == null || getClass() != obj.getClass()) return false;
Computer computer = (Computer)obj;
return cpu.equals(computer.cpu)&&
mainboard.equals(computer.mainboard)&&
memory.equals(computer.memory)&&
screen.equals(computer.screen)&&
harddisk.equals(computer.harddisk);
}
public String toString() {
return "CPU:\n"+cpu.toString()+
"Mainboard:\n" + mainboard.toString() +
"Memory:\n" + memory.toString() +
"Screen:\n" + screen.toString() +
"Harddisk:\n" + harddisk.toString();
}
}
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String cupModel1 = sc.next();
double zhup1 = sc.nextDouble();
int neihe1 = sc.nextInt();
String mainboardModel1 = sc.next();
String memoryModel1 = sc.next();
int memorysize1 = sc.nextInt();
String screenModel1 = sc.next();
int screensize1 = sc.nextInt();
String hardDiskModel1 = sc.next();
int hardDisksize1 = sc.nextInt();
String cupModel2 = sc.next();
double zhup2 = sc.nextDouble();
int neihe2 = sc.nextInt();
String mainboardModel2 = sc.next();
String memoryModel2 = sc.next();
int memorysize2 = sc.nextInt();
String screenModel2 = sc.next();
int screensize2 = sc.nextInt();
String hardDiskModel2 = sc.next();
int hardDisksize2 = sc.nextInt();
Computer computer1 = new Computer(
new CPU(cupModel1,zhup1,neihe1),
new Mainboard(mainboardModel1),
new Memory(memoryModel1,memorysize1),
new Screen(screenModel1,screensize1),
new Harddisk(hardDiskModel1,hardDisksize1)
);
Computer computer2 = new Computer(
new CPU(cupModel2,zhup2,neihe2),
new Mainboard(mainboardModel2),
new Memory(memoryModel2,memorysize2),
new Screen(screenModel2,screensize2),
new Harddisk(hardDiskModel2,hardDisksize2)
);
System.out.println(computer1.equals(computer2));
System.out.println("Computer1:\n"+computer1.toString());
System.out.println("Computer2:\n"+computer2.toString());
}
}