12/16号笔记

12/16号学习笔记

接口的两种应用场景

1.需求说明:原始的手机,可以发短信,通电话。随着发展,手机增加了音频、视频播放、拍照、上网功能。按照作业3的思路和下面的类图进行程序设计:首先,编写类及接口,参照以下类的结构图;其次,编写测试类,让普通手机播放音频、发信息和通电话,让智能手机上网、播放视频、照相、发彩信和视频通电话。

实现如下图所示的程序运行效果。
在这里插入图片描述
在这里插入图片描述
文件结构:在里插入图片描述
主要代码:这是打印机结构

// An highlighted block
package HomeWork01;

import HomeWork01.JieKou.Network;
import HomeWork01.JieKou.Play;
import HomeWork01.JieKou.TakePicture;

public class AptitudeHandset extends Handset implements Play, Network, TakePicture {
    @Override
    void sendInfo() {
        System.out.println("开始发送带图片与文字信息。。。");
    }

    @Override
    void call() {
        System.out.println("开始视频通话。。。");
    }

    @Override
    public void play(String radio) {
        System.out.println("开始播放视频《"+radio+"》");
    }

    @Override
    public void netWorkConn() {
        System.out.println("已经启动移动网络。。。。。。");
    }

    @Override
    public void takePicture() {
        System.out.println("咔嚓。。。拍照成功");
    }
}
// An highlighted block
package HomeWork01;

import HomeWork01.JieKou.Play;

public class CommonHandset extends Handset implements Play {
    @Override
    void sendInfo() {
        System.out.println("开始发送文字信息。。。");
    }

    @Override
    void call() {
        System.out.println("开始语音通话。。。");
    }

    @Override
    public void play(String music) {
        System.out.println("开始播放音乐《"+music+"》");
    }
}

// An highlighted block
package HomeWork01;

public abstract class Handset {
    //属性
    private String brand;
    private String type;
    //属性封装
    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    //抽象方法
    abstract void sendInfo();
    abstract void call();

    public void info(){
        System.out.println("这是一款型号为 "+type+"的 "+brand+"手机");
    }
}





package HomeWork01;

public class TestHandset {
    public static void main(String[] args) {
        //普通手机
        CommonHandset h = new CommonHandset();
        h.setBrand("索尼爱立信");
        h.setType("G502C");
        h.info();
        h.play("热雪");
        h.sendInfo();
        h.call();
        //智能手机
        AptitudeHandset ah = new AptitudeHandset();
        ah.setBrand("I9100");
        ah.setType("HTC");
        ah.info();
        ah.netWorkConn();
        ah.play("小时代");
        ah.takePicture();
        ah.sendInfo();
        ah.call();

    }
}


public interface Network {
    void netWorkConn();
}

// An highlighted block
package HomeWork01.JieKou;

public interface Play {
    void play(String content);
}

package HomeWork01.JieKou;

public interface TakePicture {
    void takePicture();
}

2.接口实现计算机
需求说明:采用面向接口编程思想组装一台计算机,计算机的主要组成部分有:CPU、硬盘、内存:首先,定义CPU的接口CPU,返回CPU品牌和主频;其次,定义内存的接口EMS,返回容量;再次,定义硬盘的接口HardDisk,返回容量;然后,编写各组件厂商分别实现CPU、EMS、和HardDisk接口,编写计算机类,组装计算机并显示相关信息;最后,编写测试类运行如图所示的效果
在这里插入图片描述
在这里插入图片描述

这是防盗门结构,主要代码如下:

// An highlighted block
package HomeWork02.impl;

import HomeWork02.JieKou.Cpu;

public class CpuImpl implements Cpu {
    @Override
    public String brand() {
        return "Inter";
    }

    @Override
    public String hz() {
        return "3.8GHZ";
    }
}

// An highlighted block
package HomeWork02.impl;

import HomeWork02.JieKou.Ems;

public class EmsImpl implements Ems {
    @Override
    public int size() {
        return 4;
    }
}
// An highlighted block
package HomeWork02.impl;

import HomeWork02.JieKou.HardDisk;

public class HardDiskImpl implements HardDisk {

    @Override
    public int size() {
        return 3000;
    }
}

// An highlighted block
package HomeWork02;

import HomeWork02.JieKou.Cpu;
import HomeWork02.JieKou.Ems;
import HomeWork02.JieKou.HardDisk;

public class Computer {
    //接口作为成员属性并封装
    private Cpu cpu;
    private Ems ems;
    private HardDisk hardDisk;
    public Cpu getCpu() {
        return cpu;
    }
    public void setCpu(Cpu cpu) {
        this.cpu = cpu;
    }
    public Ems getEms() {
        return ems;
    }
    public void setEms(Ems ems) {
        this.ems = ems;
    }
    public HardDisk getHardDisk() {
        return hardDisk;
    }
    public void setHardDisk(HardDisk hardDisk) {
        this.hardDisk = hardDisk;
    }

    public void show(){
        System.out.println("计算机信息如下:\n Cpu的品牌是:"+cpu.brand()+"  ,主频是:"+cpu.hz()+" \n 硬盘容量是:"+hardDisk.size()+"GB \n " +
                "内存容量是:"+ems.size()+"GB");
    }


}

// An highlighted block
package HomeWork02;

import HomeWork02.Computer;
import HomeWork02.impl.CpuImpl;
import HomeWork02.impl.EmsImpl;
import HomeWork02.impl.HardDiskImpl;

public class TestComputer {
    public static void main(String[] args) {
        Computer c = new Computer();
        c.setCpu(new CpuImpl());
        c.setEms(new EmsImpl());
        c.setHardDisk(new HardDiskImpl());
        c.show();

    }
}
// An highlighted block
package HomeWork02.JieKou;

public interface Cpu {
    String brand();
    String hz();
}

// An highlighted block
package HomeWork02.JieKou;

public interface Ems {
    int size();
}
// An highlighted block
package HomeWork02.JieKou;

public interface HardDisk {
    int size();
}
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值