zoukankan      html  css  js  c++  java
  • 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修饰的成员变量进行赋值。

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

  • 相关阅读:
    语音识别六十年
    神经网络架构PYTORCH-几个概念
    Ubuntu 16.04 系统无法挂载u盘的问题
    技术的止境
    神经网络架构PYTORCH-宏观分析
    Python中parameters与argument区别
    神经网络架构PYTORCH-初相识(3W)
    【ES】学习9-聚合2
    【ES】学习8-聚合1
    【python】中文提取,判断,分词
  • 原文地址:https://www.cnblogs.com/Gazikel/p/13375792.html
Copyright © 2011-2022 走看看