2020.7.29 final 静态类 修饰符

发布于 2020-07-29  87 次阅读


Table of Contents

  • 是随着类的加载而加载的,且只加载一次。
  • 存储于一块固定的内存区域(静态区),所以,可以直接被类名调用。
  • 它优先于对象存在,所以,可以被所有对象共享。

  • static 静态代码块

    • 静态代码块
      • 定义在类下(和类方法平级),使用static修饰的代码块{ }。
      • 位置:类中方法外。
      • 执行:随着类的加载而执行且执行一次,优先构造方法的执行。
  • static 静态导入

    • 静态导入就是java包的静态导入,
    • 使用import static 静态导入包 ,
    • 直接使用方法名去调用静态的方法。
  • 权限修饰符

    • 四大修饰符

      • public:公共的
      • protected:受保护的
      • default:默认的
      • private:私有的
    • 不同权限的访问能力

      • public 全部可以访问
      • protected 不同包中无关类无法访问
      • default 不同包,不同包中不能访问
      • private 只能同一个类中访问
      public protected default(空的) private
      同一类中
      同一包中(子类与无关类)
      不同包的子类
      不同包中的无关类
    • 建议使用权限:
      • 成员变量使用private ,隐藏细节。
      • 构造方法使用public ,方便创建对象。
      • 成员方法使用public ,方便调用方法。
  • 内部类

    • 内部类简介:
      • 在一个类中,定义一个类
    • 分类(成员内部类,匿名内部类)
      • 成员内部类 :定义在类中方法外的类。
        • 定义
          • 内部类可以直接访问外部类的成员,包括私有成员。
          • 外部类要访问内部类的成员,必须要建立内部类的对象。
        • 创建内部类对象格式:
          • 外部类名.内部类名 对象名 = new 外部类型().new 内部类型();
        • 小提示
          • 内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号
      • 匿名内部类 :是内部类的简化写法。
        • 定义:
          • 它的本质是一个带具体实现的 父类或者父接口的 匿名的 子类对象
        • 使用:
          • new 父类名或者接口名(){
                // 方法重写
                @Override
                public void method() {
                    // 执行语句
                }
            };

  • 引用类型的传递

    • 类名作为形参,作为返回值

      • 实际上都是传递对象的地址,
    • 抽象类作为形参和返回值

      • 实际上是对抽象类的实现类地址传递
    • 接口名作为形参和返回值

      • 实际上是对接口实现类的地址传递
  • 2.扩展延伸知识

    • private 修饰的final 是什么含义?
      • private 是只能当前类的内部使用
      • final是只能赋值一次
      • 只能在当前类中使用,不能被继承

    3.灵感代办

    • 描述final修饰的类的特点
    • 描述final修饰的方法的特点
    • 描述final修饰的变量的特点
    • 能够掌握static关键字修饰的变量调用方式
    • 能够掌握static关键字修饰的方法调用方式
    • 能够写出静态代码块的格式
    • 能够说出权限修饰符作用范围
    • 能够说出内部类概念
    • 能够理解匿名内部类的编写格式
    • 能够使用引用类型作为方法的参数并调用

    4.复习内容

    5.学习成果&问题