JAVA面向接口编程

1. 接口是一种规范和标准,是一些方法特征的集合,但没有方法实现。

2.抽象类利于代码复用,接口利于代码的扩展和维护。

3.接口中只有全局静态常量和全局静态抽象方法。常量必须有初始值。

4.接口之间可以通过extends实现继承关系,一个接口可继承多个接口。

面向接口编程

组装电脑面向接口编程。

CPU接口

public interface Cpu {

    /*
     * 获取CPU品牌
     */
    public String getCpuCount();
    /*
     * 获取CPU主频
     */
    public Double getFrequery();
}

内存接口

public interface EMS {
    /*
     * 内存类型
     */
    public String getEmsType();
    /*
     * 获取内存容量大小
     */
    public int getSize();
}

硬盘接口

public interface HardDisk {
    /*
     * 获取硬盘大小
     */
    public int getCapacity();
}

因特尔CPU实现类

public class IntelCPU implements Cpu{
    @Override
    public String getCpuCount() {
        // TODO Auto-generated method stub
        return "Intel";
    }
    @Override
    public Double getFrequery() {
        // TODO Auto-generated method stub
        return    3.5;
    }   
}

英伟达CPU实现类

public class NVIDIACPU implements Cpu {
    @Override
    public String getCpuCount() {
        // TODO Auto-generated method stub
        return "英伟达CPU";
    }
    @Override
    public Double getFrequery() {
        // TODO Auto-generated method stub
        return 6.7;
    }
}

金士顿内存实现类

public class JSangDunEMS implements EMS {
    @Override
    public String getEmsType() {
        // TODO Auto-generated method stub
        return "DDR4";
    }
    @Override
    public int getSize() {
        // TODO Auto-generated method stub
        return 16;
    }
}

三星内存条实现类

public class SanSumgEMS implements EMS {
    @Override
    public String getEmsType() {
        // TODO Auto-generated method stub
        return "DDR3";
    }
    @Override
    public int getSize() {
        // TODO Auto-generated method stub
        return 8;
    }
}

三星硬盘实现类

public class SaanSumgHardDisk implements HardDisk {
    @Override
    public int getCapacity() {
        // TODO Auto-generated method stub
        return 600;
    }
}

希捷硬盘实现类

public class XJieHardDisk implements HardDisk{
    @Override
    public int getCapacity() {
        // TODO Auto-generated method stub
        return 800;
    }
}

电脑信息描述类

public class Install {
    Cpu cpu;
    EMS ems;
    HardDisk hard;
    public Install(Cpu cpu, EMS ems, HardDisk hard) {
        this.cpu = cpu;
        this.ems = ems;
        this.hard = hard;
    }
    public void setCpu(Cpu cpu) {
        this.cpu = cpu;
    }
    public void setEms(EMS ems) {
        this.ems = ems;
    }
    public void setHard(HardDisk hard) {
        this.hard = hard;
    }
    /*
     * 组装方法
     */
    public void packaing(){
        System.out.println("该计算机的CPU是"+cpu.getCpuCount()
        +"的,它的主频是"+cpu.getFrequery()
        +"\n它的内存类型为:"+ems.getEmsType()
        +",它的内存容量大小为"+ems.getSize()
        +"KB"+"\n它的硬盘容量为"+hard.getCapacity());
    }
}

电脑组装类

public class ComputerInstallTest {
    public static void main(String[] args) {
        Cpu cpu=null;
        EMS ems=null;
        HardDisk hard=null;     
        Install ins=new Install(cpu, ems, hard);
        /*
         * 使用intelcpu,三星内存,三星硬盘组装
         */
        cpu=new IntelCPU();
        ins.setCpu(cpu);
        ems=new SanSumgEMS();
        ins.setEms(ems);
        hard=new SaanSumgHardDisk();
        ins.setHard(hard);
        ins.packaing();
        /*
         * 使用英伟达cpu,金士顿内存,希捷硬盘组装
         */
        cpu=new NVIDIACPU();
        ins.setCpu(cpu);
        ems=new JSangDunEMS();
        ins.setEms(ems);
        hard=new XJieHardDisk();
        ins.setHard(hard);
        ins.packaing();
    }       
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值