static
普通用法(本类里面写的main方法,可以之间调private)
通过类来调用
不能调用score
因为score是非静态字段
推荐使用类名访问字段(如果字段是静态的)
直接调用方法调不了
必须new一个对象
或者这样
但如果是静态方法
甚至可以这样(因为它在当前这个类里面)
非静态方法可以直接访问静态方法
而静态方法可以调静态方法,但不能直接调用普通方法
前面讲过,static跟类一块加载,可以直接调,对象的方法不存在没法调
注意:main方法是static方法
静态代码块
执行顺序
再new一次
发现静态代码块没了
因为在类加载的时候永久执行一次
匿名代码块的作用:
新特性
Math类中有一个方法叫random(),可以输出随机数
如果不想写 Math. 怎么办呢
可以import导入Math类,甚至可以导入方法
为了不报错,前面加上static
还可以导入常数
进入Math类,里面有个关键字叫final(常量修饰符)
通过final修饰的类不能被继承(没有子类)
举例-->断子绝孙符
抽象类
我写了抽象类,其中的抽象方法我不想实现,我就可以只写一个方法名,方法体交给别人在子类中去实现
抽象类是一种约束,本质是类,需要去继承,逃脱不了extends,有局限性,单继承------>接口可以多继承
特点:
只能new他的子类对象
一旦类里面存在了抽象方法,那这个类必须是抽象类
抽象类存在构造器吗?
存在,查看class文件发现
抽象类存在的意义:提高开发效率
来源:b站狂神