2019年2月18日,面向接口——>面向接口編程


java源文件分享地址:

鏈接:https://pan.baidu.com/s/1ydG2Vv9TmXKXqaD-hLw2PA
提取碼:xwtc
復制這段內容后打開百度網盤手機App,操作更方便哦

 

作業一、接口實現手機

原始的手機,可以發短信,通電話。隨着發展,手機增加了功能:音頻、視頻播放、拍照、上網。使用接口實現手機功能;

首先創建手機父類:

package com.phone.jiekou;

public abstract class HandSet {
    private String brand;
    private String type;
    
    public HandSet() {}
    
    public HandSet(String brand,String type) {
        this.brand = brand;
        this.type = 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;
    }
    public abstract void message();
    public abstract void call();

}

創建手機功能接口:

1、上網功能接口:

package com.phone.jiekou;

public interface Network {
    public void net();

}

2、拍照功能接口:

package com.phone.jiekou;

public interface Photo {
    public void takePhoto();
}

3、播放視頻功能接口:

package com.phone.jiekou;

public interface Play {
    public void play(String film);

}

4、播放音頻功能接口:

package com.phone.jiekou;

public interface Music {
    public void boFang(String music);

}

創建普通手機類要求擁有播放音頻功能:

package com.phone.jiekou;

public class CommonPhone extends HandSet implements Music{
    
    public CommonPhone() {
        
    }
    
    public CommonPhone(String brand,String type) {
        super(brand,type);
        
    }

    public void showInfo() {
        System.out.println("手機信息及功能介紹:");
        System.out.println("這是一部"+this.getBrand()+"的手機,型號是"+this.getType());
    }
    public void message() {
        System.out.println("發送短信!");
    }

    
    public void call() {
        System.out.println("撥打電話!");
    }


    
    public void boFang(String music) {
        System.out.println("可以播放"+music+"!");
    }

}

創建智能手機類要求擁有上網功能、拍照功能、播放視頻功能

package com.phone.jiekou;

public class SmartPhone extends HandSet implements Network, Photo, Play {
    
    public SmartPhone() {}
    public SmartPhone(String brand,String type) {
        super(brand,type);
    }
    

    public void showInfo() {
        System.out.println("手機信息及功能介紹:");
        System.out.println("這是一部"+this.getBrand()+"的手機,型號是"+this.getType());
    }
    
    public void play(String film) {
        System.out.println("播放電影"+film);
    }

    
    public void takePhoto() {
        System.out.println("拍照功能");
    }

    
    public void net() {
        System.out.println("上網功能");
    }

    
    public void message() {
        System.out.println("發送短信");
    }

    
    public void call() {
        System.out.println("撥打電話");
    }

}

編寫測試類:

package com.phone.jiekou;

public class TestPhone {
    public static void main(String[] args) {
        CommonPhone cphone = new CommonPhone("三星","I3452");
        cphone.showInfo();
        cphone.message();
        cphone.call();
        cphone.boFang("音樂");
        
        SmartPhone sphone = new SmartPhone("蘋果","6P");
        sphone.showInfo();
        sphone.message();
        sphone.call();
        sphone.play("大話西游");
        sphone.net();
        sphone.takePhoto();
        
        
    }

}

實現結果為:

手機信息及功能介紹:
這是一部三星的手機,型號是I3452
發送短信!
撥打電話!
可以播放音樂!
手機信息及功能介紹:
這是一部蘋果的手機,型號是6P
發送短信
撥打電話
播放電影大話西游
上網功能
拍照功能

 

作業二、組裝一台計算機

1、采用面向接口編程思想組裝一台計算機

2、計算機的主要組成部分:cpu、硬盤、內存

實現思路:

定義CPU的接口cpu,返回CPU品牌和主頻;

定義內存的接口EMS,返回類型和容量;

定義硬盤的接口HardDisk,返回容量;

編寫各組件廠商分別實現CPU、EMS、和HardDisk接口

編寫計算機類,組裝計算機並顯示相關信息

編寫測試類運行

1、編寫cpu功能接口

package com.cpu;

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

}

1、1  生產AmdCpu

package com.cpu;

public class AmdCpu implements Cpu {

    
    public String brand() {
        return "Amd";
    }

    public String hz() {
        return "2.8G";
    }
    

}

1、2  生產IntelCpu

package com.cpu;

public class IntelCpu implements Cpu {

    
    public String brand() {
        return "Intel";
    }

    
    public String hz() {
        return "3.0G";
        
    }

}

 

2、編寫內存功能接口

package com.EMS;

public interface Ems {
    public String type();
    public String room();

}

2、1  生產Jinstom品牌的內存

package com.EMS;

public class Jinstom implements Ems {

    
    public String type() {
        return "DDR3";
    }

    public String room() {
        return "4G";
    }

}

2、2  生產SunXing品牌的內存

package com.EMS;

public class SunXing implements Ems {
    
    public String type() {
        return "DDR4";
    }

    public String room() {
        return "5G";
    }

}

 

3、編寫硬盤功能的接口

package com.HardDisk;

public interface HardDisk {
    public String hdd();

}

3、1  生產HaiLishi品牌的硬盤

package com.HardDisk;

public class HaiLishi implements HardDisk {

    public String hdd() {
        return "500G";
    }

}

3、2  生產XiShu品牌的硬盤

package com.HardDisk;

public class XiShu implements HardDisk {

    public String hdd() {
        return "1T";
    }

}

 

創建電腦組裝類

package com.computer;

import com.EMS.Ems;
import com.HardDisk.HardDisk;
import com.cpu.Cpu;

public class Computer {
    private Cpu cpu;
    private Ems ems;
    private HardDisk hdd;
    
    

    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 getHdd() {
        return hdd;
    }

    public void setHdd(HardDisk hdd) {
        this.hdd = hdd;
    }
    
    public void showInfo() {
        System.out.println("計算機配置信息:");
        System.out.println("CPU是:"+cpu.brand()+"品牌,主頻是:"+cpu.hz()+"Hz;");
        System.out.println("內存類型是:"+ems.type()+",容量為:"+ems.room()+";");
        System.out.println("硬盤容量為:"+hdd.hdd()+";");
    }


}

 

編寫測試類:

package com.user;

import com.EMS.Ems;
import com.EMS.Jinstom;
import com.HardDisk.HaiLishi;
import com.HardDisk.HardDisk;
import com.computer.Computer;
import com.cpu.Cpu;
import com.cpu.IntelCpu;

public class ComputerUser {
    public static void main(String[] args) {
        Computer com= new Computer();
        Cpu cpu = new IntelCpu();    
        Ems ems = new Jinstom();
        HardDisk hdd = new HaiLishi();
        com.setCpu(cpu);
        com.setEms(ems);
        com.setHdd(hdd);
        com.showInfo();
    }
}

實現結果為:

計算機配置信息:
CPU是:Intel品牌,主頻是:3.0GHz;
內存類型是:DDR3,容量為:4G;
硬盤容量為:500G;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM