day13


面向对象查漏补缺

1. static修饰符

static可以修饰:

  1. 普通方法
  2. 成员变量(字段) 被修饰的成员变量属于类
  3. 内部类

不可以修饰:

  1. 外部类
  2. 局部变量
  3. 构造方法

1.2 static的作用

  1. 避免对象被多次创建
  2. 需要几个对象有共享的数据
  3. 一般情况下,修饰成员变量的时候是配合 public staic final 一起修饰,被修饰的叫全局常量采用全大写加下划线的命名方式MAX_VALUE
  4. 修饰方法,只是为了方便调用,类名.方法名Arrays中全部都是工具方法static 修饰,Arrays.toString(...)

2. 内部类

定义在一个类中的类,被称为内部类

内部类可以看做和字段,方法一样是外部类的成员,而成员可以有static修饰

  • 静态内部类,使用static修饰的内部类,那么访问内部类直接使用外部类名来访问
  • 示例内部类,没有使用static修饰的内部类,访问内部类使用外部类的对象来访问
  • 局部内部类,定义在方法总的内部类,一般不用
  • 匿名内部类, 特殊的局部内部类,适合于仅使用一次的类
  • 对于每个内部类来说,Java编译器会生成独立class文件
  • 静态和实例内部类 外部类名$内部类名
  • 局部内部类,外部类名$数字内部类名称
  • 匿名内部类,外部类名$数字

2.1 匿名内部类

匿名内部类:new 父类名(){};

接口匿名内部类:new 接口名(){};

3. final修饰符

关键字,修饰符,表示最终的,一旦修饰一个成员,这个成员不能再被修改

final的作用:

可以修饰:

  • 外部类(不能被继承)
  • 实例变量,必须在声明的时候赋值或者在构造方法中赋值
  • 类变量,必须在声明时赋值
  • 实例方法,不能被子类重写
  • 类方法,不能被子类重写
  • 内部类
  • 局部变量

不能修饰:

  • 构造方法

4. 代码块

简单认为就是一堆{}

看到{}时应想到作用域的问题

代码块分类:

静态代码块:

  1. 直接声明在类中,前面有static修饰

static{}

  1. 在类加载时执行,和创建对象没有关系,且只会执行一次
  2. 优先于主方法的执行,静态代码块加载完成后再执行主方法
  3. 可以在类加载的时候做一些初始化的操作,例如JDBC的驱动加载

局部代码块(普通代码块)

基本没有配合if或循环使用

构造代码块

直接声明在类中,没有static修饰

{}

该代码块中的代码会声称在构造方法内部,super()的下面,其他代码的上面

5. 掌握继承关系的类中各个成员,包括类变量的执行顺序

有继承关系的执行流程:

从最高父类的静态代码块开始加载,直到加载到当前类的静态代码块结束

再从最高父类的构造代码开始执行,然后是构造方法,然后逐级向下执行,直到执行到当前类的构造代码块,构造方法结束

6. 枚举

什么时枚举?

枚举是jdk1.5引入的一种和类非常类似的新结构

枚举的作用:

枚举类解决了一些取值比较固定的场景,简化了类中的常量字段

使代码变得美观

语法:

public enum 枚举类名{
        字段
        实例变量
        示例方法
        类方法
        构造方法//枚举中的构造方法默认用private修饰,不能用public,protected修饰
            //构造方法的作用:只能在当前枚举类中使用,就是给当前枚举类对象初始化实例变量的.
}

文章作者:
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 !
 上一篇
Java语法,注释,变量,关键字 Java语法,注释,变量,关键字
1. Java基本语法1.1 Java注释注释帮助开发人员理解代码含义,提高代码的可读性. 1.1.1 单行注释//注释内容 1.1.2 多行注释/*注释内容*/ 1.1.3 文档注释/**注释内容*/ 1.2 分隔符 分号; 语句的分割,
2020-10-25
下一篇 
day12 day12
面向对象多态1.接口接口是多个抽象方法的集合.仅仅定义功能,本身不实现功能.实现功能的过程交给类完成 接口中的方法是抽象方法,并不能实现功能.体现了规范和实现分离的思想. public interface 接口名{ 抽象方法();
2020-10-25
  目录