美文网首页
2023-11-21第08章_面向对象编程(高)

2023-11-21第08章_面向对象编程(高)

作者: 大也 | 来源:发表于2023-11-27 12:31 被阅读0次

    -- ---------------------- 本章概况
    -- ---------------------- 课件
    -- ---------------------- 随堂复习与企业真题
    -- ---------------------- 拓展练习

    -- ---------------------- 本章概况


    image.png
    image.png
    image.png

    -- ---------------------- 课件

    1. 关键字:static(1.1 类属性、类方法的设计思想/1.2 static关键字/1.3 静态变量[1.3.4 内存解析]/1.4 静态方法/1.5 练习)
    [修饰符] class 类{
        [其他修饰符] static 数据类型 变量名;
    }
    
    [修饰符] class 类{
        [其他修饰符] static 返回值类型 方法名(形参列表){
            方法体
        }
    }
    
    静态方法可以被子类继承,但不能被子类重写。
    
    1. 单例(Singleton)设计模式(2.1 设计模式概述/2.2 何为单例模式/2.3 实现思路/2.4.3 饿汉式 vs 懒汉式[lazy]/2.5 单例模式的优点及应用场景)


      image.png
    class Singleton {
        // 1.私有化构造器
        private Singleton() {
        }
        // 2.内部提供一个当前类的实例
        // 4.此实例也必须静态化
        private static Singleton single;
        // 3.提供公共的静态的方法,返回当前类的对象
        public static Singleton getInstance() {
            if(single == null) {
                single = new Singleton();
            }
            return single;
        }
    }
    线程不安全
    
    1. 理解main方法的语法()
    ![image.png](https://img.haomeiwen.com/i2673147/498eaa7e6272232e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    1. 类的成员之四:代码块(4.1 静态代码块/4.2 非静态代码块/4.3 举例/4.4 小结:实例变量赋值顺序/4.5 练习)
      ???补
    2. final关键字(5.1 final的意义/5.2 final的使用/5.3 笔试题)
      5.2 final修饰变量 一旦赋值,它的值就不能被修改,即常量,常量名建议使用大写字母。
      final 修饰方法 表示这个方法不能被子类重写。
      final 修饰类 表示这个类不能被继承,没有子类。提高安全性,提高程序的可读性。
    final class Eunuch{//太监类}
    
    1. 抽象类与抽象方法(或abstract关键字)(6.1 由来/6.2 语法格式/6.3 使用说明/6.4 注意事项/6.5 应用举例1/6.6 应用举例2:模板方法设计模式(TemplateMethod)/6.7 思考与练习)
    [权限修饰符] abstract class 类名{
        
    }
    [权限修饰符] abstract class 类名 extends 父类{
        
    }
    
    1. 接口(interface)(7.1 类比/7.2 概述/7.3 定义格式/7.4 接口的使用规则/7.5 JDK8中相关冲突问题/7.6 接口的总结与面试题/7.8 练习)
    
    [修饰符] interface 接口名{
        //接口的成员列表:
        // 公共的静态常量
        // 公共的抽象方法
        
        // 公共的默认方法(JDK1.8以上)
        // 公共的静态方法(JDK1.8以上)
        // 私有方法(JDK1.9以上)
    }
    
    【修饰符】 class 实现类  implements 接口{
        // 重写接口中抽象方法【必须】,当然如果实现类是抽象类,那么可以不重写
        // 重写接口中默认方法【可选】
    }
    
    【修饰符】 class 实现类 extends 父类 implements 接口{
        // 重写接口中抽象方法【必须】,当然如果实现类是抽象类,那么可以不重写
        // 重写接口中默认方法【可选】
    }
    
    1. 内部类(InnerClass)(8.1 概述/8.2 成员内部类/8.3 局部内部类/8.4 练习)
      ???补
    2. 枚举类(9.1 概述/9.2/9.3 定义枚举类(JDK5.0 之后)/9.4 enum中常用方法/9.5 实现接口的枚举类)
    public enum Week {
    MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY;
    }
    
    1. 注解(Annotation)(10.1 注解概述/10.2 常见的Annotation作用/10.3 三个最基本的注解/10.4 元注解/10.5 自定义注解的使用/10.6 JUnit单元测试)
    /**
         * 程序的主方法,程序的入口
         * @param args String[] 命令行参数
         */
    
    @author 标明开发该类模块的作者,多个作者之间使用,分割
    @version 标明该类模块的版本
    @see 参考转向,也就是相关主题
    @since 从哪个版本开始增加的
    @param 对方法中某参数的说明,如果没有参数就不能写
    @return 对方法返回值的说明,如果方法的返回值类型是void就不能写
    @exception 对方法可能抛出的异常进行说明 ,如果方法没有用throws显式抛出的异常就不能写
    
    @Override重写方法
    
    @Deprecated 不推荐使用。
    
    @SuppressWarnings 抑制警告信息
    
    1. 包装类(11.1 为什么需要包装类/11.2 有哪些包装类/11.3 自定义包装类/11.4 包装类与基本数据类型间的转换/11.5 基本数据类型、包装类与字符串间的转换/11.6 包装类的其它API/11.7 包装类对象的特点/11.8 练习)

    Integer obj = new Integer(4);
    int num1 = obj.intValue();

    int a = 10;
    //String str = a;//错误的
    String str = String.valueOf(a);
    或者
    int a = 10;
    String str = a + "";

    -- ---------------------- 随堂复习与企业真题

    1. 关键字:static

    • static:静态的,随着类的加载而加载、执行。

    • static用来修饰:属性、方法、代码块、内部类

    • 熟悉:static修饰的类变量、类方法与不使用static修饰的区别。

      • 类变量:类的生命周期内,只有一个。被类的多个实例共享。
    • 掌握:我们遇到属性或方法时,需要考虑是否声明为static的。

    2. 单例模式(或单子模式)

    • 经典的设计模式有23种
    • 解决的问题:在整个软件系统中,只存在当前类的唯一实例。
    • 实现方式:饿汉式、懒汉式、枚举类等
    • 对比饿汉式和懒汉式
      • 饿汉式:“立即加载”,线程安全的。
      • 懒汉式:"延迟加载",线程不安全。
    • 需要会手写饿汉式和懒汉式

    3. 理解main()方法

    • public static void main(String[] args){}
    • 理解1:作为程序的入口;普通的静态方法
    • 理解2:如何使用main()与控制台进行数据的交互。
      • 命令行:java 类名 "Tom" "Jerry" "123"

    4. 类的成员之四:代码块

    • 分类:静态代码块、非静态代码块
    • 使用频率上来讲:用的比较少。
    • 静态代码块:随着类的加载而执行
    • 非静态代码块:随着对象的创建而执行

    总结:对象的实例变量可以赋值的位置及先后顺序

    ① 默认初始化
    ② 显式初始化 或 ⑤ 代码块中初始化
    ③ 构造器中初始化

    ④ 有了对象以后,通过"对象.属性"或"对象.方法"的方法进行赋值

    执行的先后顺序:
    ① - ②/⑤ - ③ - ④

    5. 关键字:final

    • 最终的

    • 用来修饰:类、方法、变量(成员变量、局部变量)

      • 类:不能被继承
      • 方法:不能被重写
      • 变量:是一个“常量”,一旦赋值不能修改。

    6. 关键字:abstract

    • 抽象的
    • 用来修饰:类、方法
      • 类:抽象类:不能实例化。
      • 方法:抽象方法:没有方法体,必须由子类实现此方法。

    7. 关键字:interface

    • interface:接口,用来定义一组规范、一种标准。

    • 掌握:接口中可以声明的结构。

      • 属性:使用public static final修饰

      • 方法:jdk8之前:只能声明抽象方法,使用public abstract修饰

                jdk8中:声明static方法、default方法。
        
                jdk9中:声明private方法。
        
    • 笔试题:抽象类、接口的对比。

    8. 类的成员之五:内部类

    > 成员内部类的理解
    > 如何创建成员内部类的实例
    > 如何在成员内部类中调用外部类的结构
    > 局部内部类的基本使用(关注:如何在方法内创建匿名局部内部类的对象)
    

    9. 枚举类:enum

    • 掌握:使用enum关键字定义枚举类即可。

    10. 注解:Annotation

    • 框架 = 注解 + 反射 + 设计模式
    • Java基础阶段:简单。@Override 、 @Deprecated、@SuppressWarnings
    • 元注解:对现有的注解进行解释说明。
      • @Target:表明可以用来修饰的结构
      • @Retation:表明生命周期
    • 如何自定义注解。

    11. 包装类的使用

    • 掌握:基本数据类型对应的包装类都有哪些?
    • 掌握:基本数据类型、包装类、String三者之间的转换
      • 基本数据类型 <-> 包装类:自动装箱、自动拆箱
      • 基本数据类型、包装类 <-> String
        • String的valueOf(xxx)
        • 包装类的parseXxx(String str)

    12. IDEA:快捷键和debug

    相关文章

      网友评论

          本文标题:2023-11-21第08章_面向对象编程(高)

          本文链接:https://www.haomeiwen.com/subject/xlebwdtx.html