5.JAVA进阶-面向对象-枚举、匿名内部类

本文介绍了接口的概念、多态的应用、静态变量和方法的作用,以及final关键字的修饰范围。此外,还涵盖了内部类(成员内部类、静态内部类和匿名内部类)、代码块(构造和静态)和枚举的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、回顾

  • 接口(interface):
    • 什么是接口:接口是一种保存抽象方法的集合
    • 作用:规范方法声明,解耦(将方法的声明和实现分离)
    • 声明:方法再接口里
    • 实现:方法里面
    • 接口可以多继承
  • 特殊接口:
    • 函数式接口(接口中有且仅有一个抽象方法但是方法签名和Object)中方法签名一致的除外
    • @Functionalnterface
  • 多态:对象的向上转型
    • 父类类名 变量名 = new 子类的构造方法()
  • 发生多态后的细节
    • 父类会屏蔽子类的特有成员
    • 子类重写方法后,父类调用的是重写后的方法
  • 作用:
    • 创建抽象对象,和接口的对象
    • 提高方法通用性将参数设计为父类类型;
  • 面向对象的三大特征:封装 继承 多态
  • 面向对象的四大特征:封装 继承 多态 抽象

二、Static的用法

  • static :静态的,只要是用static修饰的都是放在静态区
  • static:修饰的成员变量,称为类变量
  • 没有static修饰的是实际变量
  • 实例变量和类变量的区别
    • 存放的位置不同,类变量是放在静态区的而且只和字节码对象有关,实例变量放在堆里面,只和对象有关
    • 方法进入内存的时间点不同,类变量是类加载(编译)就在静态区域中
    • 时间变了:调用构造方法之后才会存在内存中
  • 作用
    • 类变量是做全局对象(所有对象共享),实际变量是每个对象特有
  • 使用方式不同:
    • 类变量:类名.类变量
    • 实际变量:对象名.实例变量
  • 快速接收的快捷键:
    • ctrl + alt +v
  • static修饰的方法就是类方法
  • 没有static修饰的方法就是实例方法

三、final(最终的)

  • 修饰的范围:
    • 1.修饰类final class {} A类是没有子类(不能被继承的)
    • 修饰变量 Fanal int num = 10; num就是一个常量,不能被修改的变量,其实就是一个常量
    • 常量:只能赋值一次不能重复赋值
    • 为了提高标识性,常量·的秉承全部使用大写
    • 常量访问修饰符都是public
    • 为了节约内存,使用static来进行修饰:static修饰的特点是只会创建一次变量,创建的变量存在与静态区
  • 成员常量的声明方式:public static final 变量 = 值
  • 局部常量的声明方式:public final void m(){}不能被重写

四、内部类

    • 概念:将一个类声明在另一个类的内部,那么这个内部的类就叫做内部类
    • 作用:将一个类的适用范围缩小,仅供所在类使用
    • 注:静态内部类和类变量级别一致
class 类名 {
    class 类名{
        
    }
}
  • 成员内部类(不常用)
public static demo{
    int a 实际变量
    class a{
        //成员内部类
    }
}
  • 静态内部类
public class Demo{
    static class B{
        
    }
}
  • 内部类的分类
    • 1.成员内部类,和成员变量的级别一样
    • 2.静态内部和变垃圾别一直
    • 3.局部内部类
    • 4.局部内部类只能访问外部的常量
  • 匿名内部类
    • 设计一个类在另一个类的内部,没有指定类名(没有名字的内部类)匿名内部类属于局部内部类
    • 作用:在创建抽象类和接口对象的时候,减少设计中间子类的过程,
    • 使用场景对象只是用一次的情况

五、代码块:{ }

  • { } Java中{}就是代码块
  • 构造代码块
public class Demo{
    {
        构造代码块,每次调用构造方法之前要执行的代码
        功能和方法类似
    }
}
  • 静态代码块
static{
    只会执行一次
    一般用于今安在其他的类,链接数据的时候用来获取驱动
}
  • 局代码块:一般与if while swich 语句连用
  • 构造方法的执行顺序:静态代码块,构造代码块

六、枚举(enum)

  • 概念:一种类似类的新结构(jdk5.0后的新特性)
  • 作用:用来优化一个类的固定的情况,用来简化代码
  • 所有的枚举继承的是enum抽象类
  • enum继承的是Object类
  • 注:不能写出继承Enum抽象类
  • 构造方法:只能写Private
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值