一、回顾
-
- 什么是接口:接口是一种保存抽象方法的集合
- 作用:规范方法声明,解耦(将方法的声明和实现分离)
- 声明:方法再接口里
- 实现:方法里面
- 接口可以多继承
-
- 函数式接口(接口中有且仅有一个抽象方法但是方法签名和Object)中方法签名一致的除外
@Functionalnterface
-
- 父类会屏蔽子类的特有成员
- 子类重写方法后,父类调用的是重写后的方法
-
- 创建抽象对象,和接口的对象
- 提高方法通用性将参数设计为父类类型;
- 面向对象的三大特征:封装 继承 多态
- 面向对象的四大特征:封装 继承 多态 抽象
二、Static的用法
- static :静态的,只要是用static修饰的都是放在静态区
- static:修饰的成员变量,称为类变量
- 没有static修饰的是实际变量
- 实例变量和类变量的区别
-
- 存放的位置不同,类变量是放在静态区的而且只和字节码对象有关,实例变量放在堆里面,只和对象有关
- 方法进入内存的时间点不同,类变量是类加载(编译)就在静态区域中
- 时间变了:调用构造方法之后才会存在内存中
-
- 类变量是做全局对象(所有对象共享),实际变量是每个对象特有
- 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.局部内部类只能访问外部的常量
-
- 设计一个类在另一个类的内部,没有指定类名(没有名字的内部类)匿名内部类属于局部内部类
- 作用:在创建抽象类和接口对象的时候,减少设计中间子类的过程,
- 使用场景对象只是用一次的情况
五、代码块:{ }
public class Demo{
{
构造代码块,每次调用构造方法之前要执行的代码
功能和方法类似
}
}
static{
只会执行一次
一般用于今安在其他的类,链接数据的时候用来获取驱动
}
- 局代码块:一般与if while swich 语句连用
- 构造方法的执行顺序:静态代码块,构造代码块
六、枚举(enum)
- 概念:一种类似类的新结构(jdk5.0后的新特性)
- 作用:用来优化一个类的固定的情况,用来简化代码
- 所有的枚举继承的是enum抽象类
- enum继承的是Object类
- 注:不能写出继承Enum抽象类
- 构造方法:只能写Private