一、包
二、权限修饰符
三、final
四、常量
五、枚举
六、抽象类
1.什么是包
包:分门别类管理不同类,类似于文件夹。(命名通常采用 package+公司域名倒写+技术名称)。e.g. package.com.itheima.javabean
public class student{
}
一般放在第一行,Idea会自动帮忙创建。
2.导包
相同类下的包可以直接访问,不同包下的类需要导包import.包名.类名。
一个类中需要不同的类,两个类的名称是一样的,默认只能导入一个类,另外一个要带包名访问。
1.什么是权限修饰符
用来控制一个成员能够被访问的范围的
可以修饰成员变量、方法、构造器、内部类,不同权限修饰符修饰的成员能被访问的范围将收到限制。
2.分类和具体的作用范围
四种范围从大到小:public>protected>缺省(不写)>private
类本部:同一个类
本包:同一个包中其他类
子类:不同包下的子类
外部包:不同包下的无关类
成员变量一般私有,方法一般公开
1.作用
final为最终的意思,用来修饰方法、变量、类
修饰方法:表示该方法是最终方法,不能被重写
修饰变量:仅能被赋值一次
Q:变量分为几种?
局部变量
成员变量:静态成员变量/实例成员变量 静态成员变量可以在初始化的时候和静态代码块中赋值/final基本不会用来修饰实例成员变量
修饰基本类型,数据值不能改变
修饰引用数据类型,地址值不能改变,地址内容可以改变
修饰类:最终类,不能被继承 String类不能被继承,产生子类
1.常量的概述和基本作用
常量
public static final修饰的成员变量,必须有初始化值,值不能被改变。可以用做系统配置信息。
命名规范:英文单词全部大写,多个英文用下划线连接起来
执行原理
编译阶段会宏替换,把常量全部替换为字面值,使用常量的程序执行性能和字面量一致
2.常量做信息标志和分类
1.枚举的概述
枚举:java的一种特殊类型
作用:做信息的标志和分类
格式:修饰符+enum+枚举名称{
枚举类实例名称
}
enum Season{
SPRING SUMMER AUTUMN WINTER
}(构造器事私有的,多例模式)
javac编译
Javap反编译
2.枚举的使用场景(超级玛丽案例)
入参约束严谨
1.抽象类方法概述
修饰符 abstract class 类名{ }
抽象类中定义的子类必须完成功能的基本要求
修饰符 abstract 返回值类型 方法名称(形参列表);
没有方法体,只有方法签名,必须用abstract修饰
一个类如果继承了抽象类,就必须继承全部抽象方法,否则这个抽象类也被定义为抽象类
2.抽象类案例
加油站根据不同折扣加油的案例
3.抽象类的特征、注意事项
Q:抽象类和final什么关系?
互斥关系 abstract是专门抽象出来用来继承重写的 final是绝育
4.抽象类的应用知识:模板方法模式
模板方法定义确定功能的抽象方法
不能确定功能的抽象方法定义成抽象方法交给具体的子类去实现
1.接口概述、特点
接口就是体现规范的,用抽象方法定义的一组行为规范,更加彻底的抽象。
类比USB插头。
格式
关键字interface来定义
public interface 接口名{
//常量
//抽象方法
}
JDK8之前只能是抽象方法和常量
接口不能实例化
public修饰,目的是公开化 常量public static final可以不写,接口会默认加上/抽象方法 public /abstract可以省略/抽象类里的缺省不同于此处的省略
2.接口的基本使用:被实现
接口是用来被实现的,实现接口的类被称为实现类,实现类可以被理解成为子类
修饰符 class 实现类 implements 接口1 接口2 接口3 。。。{ }
接口可以被类单实现,也可以被类多实现(干爹可以有多个儿子)
一个类实现接口,必须实现全部接口的全部抽象方法,否则这个类需要定义为抽象类
3.接口与接口的关系:多继承
类和类的关系:单继承
类和接口的关系:多实现
接口和接口的关系:多继承,一个接口可以同时继承多个接口
接口多继承的作用:规范合并,整合多个接口为一个接口,便于子类实现
若两个接口规范冲突,不能同时继承
4.JDK8开始接口新增方法
允许接口中直接定义带有方法体的方法
第一种 默认方法
类似之前写的普通实例方法,必须用default修饰
默认会public修饰,需要用接口实现类的对象调用。接口类不能创建对象,只能过继给实现类,由实现类对象调用。
public default void run{
}
第二种 静态方法
默认会用public修饰,必须用static修饰
注意:接口的静态方法必须用本身的接口名来调用
第三种 私有方法
私有的实例方法,必须用private修饰,JDK1.9才可以调用
只能在本类中被其他默认方法或私有方法访问
5.使用接口的注意事项
继承父类,又同时实现接口方法,父类和接口有同名方法,默认调用父类的
一个类实现多个接口,多个接口中存在同名的默认方法,不冲突,这个类重写方法即可