final修饰的类是太监类,不能被继承
final修饰的方法不能被子类重写,可以被调用
final不管修饰基本类型变量还是引用类型变量,一次赋值终身不变
final修饰的成员变量的赋值特点
只有两种赋值特点:1直接赋值 2借助构造函数赋值,不能用Set函数赋值
static关键字:抽取出5个对象的共享数据,不用每次都创建浪费内存
静态变量多了一种类名的调用方式
静态变量随着类的加载而存在,优先于对象
static调用注意事项:就是因为内存加载的先后顺序
什么时候使用static:只要是没有使用到非静态成员就定义为静态方法
补全多态:静态编译看左边,运行看左边
定义静态常量:public static final String ,为的是一个改都跟着改
匿名对象:为的是借助new Person()只使用一次对象
内部类
借助外部类调用内部类中方法的格式
内部类中同名成员变量的调用问题Outer.this.i
局部内部类:内部类定义在了外部类的方法中,只能借助外部类的方法调用
匿名内部类:前提必须有继承或者实现接口
下面右边是左边的简写格式,省点代码
匿名内部类种有多个方法时,可以借助Animal这个父类声明变量a(向上转型),来实现猫和狗的多方法调用
导入包一定要导入到类属于的最底层的文件
访问修饰符
构造代码块和静态代码块
执行顺序:静态代码块》构造代码块》构造函数
静态代码块随着类的加载只执行一次,后两者随着new的次数加载
文档注释
借助开发工具生成javadoc用户说明书jar.exe把多个class文件生成一个jar包
借助开发工具导入jar包
抽象类作为方法的参数,这样可以把子类猫和狗作为实参调用函数
抽象类作为方法的返回值 Animal a=new Cat(),这种方式根本不需要知道子类是谁了
接口作为方法的参数,调用方法时必须传递接口的实现类作为实参
接口中常量调用直接用接口名。常量名就可以,Smoking.A
接口作为方法的返回值,是借助多态返回接口的实现类对象
编程案列:酒店系统服务,向上抽取共性形成员工类抽象类,厨师和服务员可以提供VIP服务,形成VIP接口