7-24 计算机类

构造计算机类,其中包含其配置信息:处理器、主板、内存、显示器、硬盘等设备,各个设备均有型号(字符串),特别的,处理器有主频(小数)和内核数(整数)、显示器有尺寸(整型)、内存和硬盘有容量数据(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());
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值