• Java日志第20天 2020.7.25


    综合实例

    笔记本电脑(laptop)通常具备使用USB设备的功能。在生产时。笔记本都预留了可以插入USB设备的USB接口。但具体是什么USB设备,笔记本厂商并不关心,只要符合USB规格的设备都可以。

    定义USB接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须符合USB规范,实现USB接口,否则鼠标和键盘的生产出来也无法使用。

    定义USB接口

    public interface USB {
    
        public abstract void open();
    
        public abstract void close();
    
    }

    定义鼠标类和键盘类,实现USB接口

    public class Mouse implements USB {
    
        @Override
        public void open() {
            System.out.println("鼠标已连接");
        }
    
        @Override
        public void close() {
            System.out.println("鼠标已断开");
        }
    
        public void click(){
            System.out.println("鼠标点击");
        }
    }
    public class Keyboard implements USB {
    
        @Override
        public void open() {
            System.out.println("键盘已连接");
        }
    
        @Override
        public void close() {
            System.out.println("键盘已断开");
        }
    
        public void type(){
            System.out.println("键盘打字");
        }
    
    }

    定义Laptop笔记本电脑类,实现开启和关闭功能以及鼠标和键盘的使用

    public class Laptop {
        public void powerOn(){
            System.out.println("开机");
        }
    
        public void powerOff(){
            System.out.println("关机");
        }
    
        public void connectedDevice(USB usb){
            usb.open();
        }
    
        public void useDevice(USB usb){
            if(usb instanceof Mouse){
                Mouse mouse = (Mouse) usb;
                mouse.click();
            } else if(usb instanceof Keyboard){
                Keyboard keyboard = (Keyboard) usb;
                keyboard.type();
            }
        }
    
        public void disconnectedDevice(USB usb){
            usb.close();
        }
    }

    实现类

    public class DemoMain {
    
        public static void main(String[] args) {
            //创建一个电脑
            Laptop laptop = new Laptop();
            //打开电脑
            laptop.powerOn();
            //连接鼠标
            USB usbMouse = new Mouse();//多态方法
            laptop.connectedDevice(usbMouse);
    
            //连接键盘
            Keyboard usbKeyboard = new Keyboard();//不使用多态方法
            laptop.connectedDevice(usbKeyboard);//正确写法
    
            //使用键盘和鼠标
            laptop.useDevice(usbMouse);
            laptop.useDevice(usbKeyboard);
    
            //断开键盘和鼠标
            laptop.disconnectedDevice(usbMouse);
            laptop.disconnectedDevice(usbKeyboard);
    
            //电脑关机
            laptop.powerOff();
        }
    }

    实验结果如下

    final关键字

    final关键字代表最终的,不可改变的。

    常见的四种用法:

    1.修饰一个类

    2.修饰一个方法

    3.修饰一个局部变量

    4.修饰一个成员变量

    final修饰类

    格式:public final class 类名称 { //... }

    含义:final修饰的类不能有任何子类,但是可以有父类。(最高父类Object)

    注意:因为final类没有子类,所以final修饰的类中的所有方法都无法被覆盖重写。

    final修饰方法

    格式:修饰符 final 返回值类型 方法名称(参数列表){ 方法体 }

    含义:final修饰方法不能被覆盖重写

    *对于类和方法,abstract和final不能同时使用。

    final修饰局部变量

    final修饰的局部变量只能对其进行唯一一次赋值,一旦赋值便不可以改变

    *对于基本类型,不可改变指的是数据

    *对于引用类型,不可改变指的是地址值,可以对其成员变量更改值

    final修饰成员变量

    由于成员变量具有默认值,所以需要手动赋值。

    可以直接赋值,或者通过构造方法进行赋值,但二者选其一即可。

    要保证类中所有的重载构造方法都对有final修饰的成员变量进行赋值。

    今天的知识比较简单,明天从修饰符开始学习,加油!

  • 相关阅读:
    Cousera课程Learning How to Learn学习报告
    C语言中当无符号数遇到符号数
    STC15 串口(工作方式1)使用小结
    取C语言头文件的文件名
    linux 的 shell 逻辑
    Win7 局域网内简单共享的设置
    写了一个批处理,可以实现文件备份,自动对比删除冗余文件。
    C语言 函数指针的应用
    自动控制原理 典型环节频率特性对比
    51单片机汇编的溢出标志位OV和进位标志位CY
  • 原文地址:https://www.cnblogs.com/Gazikel/p/13375792.html
Copyright © 2020-2023  润新知