学习记录 Java进阶:权限修饰符、final、枚举、抽象类、接口

面向对象进阶第二天

    1. 作用:分门别类的管理代码的。
    2. 包要明确的知识:导包
      1. 相同包下的类,可以直接访问,无需导包
      2. 访问不同包下的类,必须导包才能使用
      3. 一个类如果要使用不同包下相同的类名,默认只能导入一个类,另一个如果还想使用,必须带包名。
  1. 权限修饰符
    1. 作用:约束成员变量,构造器,方法等的访问范围
    2.     

    1.     

  1. final
    1. final最终的含义
    2. final修饰类:类不能被继承。工具类可以用final修饰。
    3. final修饰方法:方法不能被重写。 模板方法可以用final
    4. final修饰变量:总规则:有且仅能被赋值一次。
    5. 注意:final修饰基本数据类型的变量,其存储的数据不能改变。final修饰引用类型的变量,其存储的地址不能改变,但是指向的对象内容可以改变。
  2. 常量
    1. 是什么? public static final 修饰的成员变量,有且仅能赋值一次。
    2. 作用:做系统的配置信息,做信息标志和分类
    3. 规范:名称全部大写,多个单词用下划线连接
    4. 常量会出现宏替换:所以常量名的地方在编译后都是变成真实的数据。
  3. 枚举
    1. 是什么? 是一种特殊类型。
      1.     

    1. 作用:也是做信息标志和分类。
      1. 可读性好,入参约束的更严格。代码更优雅
  1. 抽象类
    1. 是什么?abstract修饰的类
    2. 抽象方法?abstract修饰的,不能写方法体。
    3. 作用:
      1. 被子类继承。
      2. 如果父类知道子类一定要做这件事,但是每个子类做的不一样,父类可以声明抽象方法,交给子类重写来实现。这个类就是抽象类了。
    4. 抽象类的特点:
      1. 类有的成员(成员变量、方法、构造器)抽象类都具备
      2. 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
      3. 一个类继承了抽象类必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类。
      4. 不能用abstract修饰变量、代码块、构造器。
      5. 最重要的特征:得到了抽象方法,失去了创建对象的能力(有得有失)
    5. 模板方法设计模式
      1.     

  1. 接口
    1. 接口是什么?
      1.     

      1. 接口是规范:约束别人必须干什么事情。
  • 规范的基本特征是约束和公开。
  • 所以:接口中的抽象方法:默认会自动加上public abstract修饰,不写也有
  • 所以:接口中的常量。默认加上public static final修饰,写不写也有
    1. 接口的基本使用:
      1. 被类实现:实现接口的类称为实现类(子类)
  •     

      1. 注意:接口可以被类多实现
      2. 注意:一个类实现多个接口,必须重写完全部接口的全部抽象方法,否则这个类必须成为抽象类。
    1. 接口与接口的关系
      1. 小结
  • 类与类:单继承,一个类只能继承一个直接父类。
  • 类与接口:多实现,一个类可以实现多个接口
  • 接口与接口:多继承,一个接口可以继承多个接口。这样可以合并多个接口。
    1. 接口从JDK 8开始新增了3个方法。
      1. public interface SportMan {

            /**
               1、默认方法:其实就是实例方法。
                   -- 必须用default修饰,默认会自带public
                   -- 必须用接口的实现类的对象来调用
             */
            default void run(){
                go();
                System.out.println("==跑的贼溜==");
            }

            /**
              2、静态方法
                    -- 必须static修饰,默认会自带public
                    -- 必须用接口名自己调用
             */
            static void inAddr(){
                System.out.println("我们在黑马");
            }

            /**
              3、私有实例方法:
                   -- 必须用private修饰
                   -- 只能本接口中访问。
                   -- 一般给接口中其他的默认方法或者私有实例方法使用的
             */
            private void go(){
                System.out.println("开始跑~~");
            }
        }
      2. 新增三种方法给Java自己用的。为了方便项目维护。
      3. 我们只需要知道有这三种方法,并且明白特点会访问即可。
    2. 接口的注意事项:(了解)
      1. 1、接口不能创建对象
        2、一个类实现多个接口,多个接口的规范不能冲突
        2、一个类实现多个接口,多个接口中有同样的静态方法不冲突。
        3、一个类继承了父类,同时又实现了接口,父类中和接口中有同名方法,默认用父类的。
        4、一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可。
        5、一个接口继承多个接口,是没有问题的,如果多个接口中存在规范冲突则不能多继承。
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值