static

普通用法(本类里面写的main方法,可以之间调private)

image-20210717163902680

通过类来调用

image-20210717164332014

不能调用score

image-20210717164424194

因为score是非静态字段

image-20210717164517061

推荐使用类名访问字段(如果字段是静态的)


直接调用方法调不了

image-20210717164841097

必须new一个对象

image-20210717164957601

或者这样

image-20210717165043621

但如果是静态方法

image-20210717165143296

甚至可以这样(因为它在当前这个类里面)

image-20210717165204631

非静态方法可以直接访问静态方法

image-20210717165305929

而静态方法可以调静态方法,但不能直接调用普通方法

前面讲过,static跟类一块加载,可以直接调,对象的方法不存在没法调


注意:main方法是static方法

image-20210717165533139

静态代码块

image-20210717165955576

执行顺序

image-20210717170345769

再new一次

image-20210717170603254

image-20210717170617292

发现静态代码块没了

因为在类加载的时候永久执行一次


匿名代码块的作用:

image-20210717170750378

新特性

Math类中有一个方法叫random(),可以输出随机数

image-20210717171040000

如果不想写 Math. 怎么办呢

可以import导入Math类,甚至可以导入方法

image-20210717171200039

为了不报错,前面加上static

image-20210717171321985

还可以导入常数

image-20210717171412561

进入Math类,里面有个关键字叫final(常量修饰符)

通过final修饰的类不能被继承(没有子类)

image-20210717171509554

举例-->断子绝孙符

image-20210717171742598

抽象类

image-20210717175502011

我写了抽象类,其中的抽象方法我不想实现,我就可以只写一个方法名,方法体交给别人在子类中去实现

image-20210717180038038

image-20210717180139095

抽象类是一种约束,本质是类,需要去继承,逃脱不了extends,有局限性,单继承------>接口可以多继承

特点:

image-20210717180452355

image-20210717180607780

只能new他的子类对象


image-20210717181051756

image-20210717180817928

image-20210717181118641

一旦类里面存在了抽象方法,那这个类必须是抽象类

image-20210717180933874

image-20210717181136178

抽象类存在构造器吗?

存在,查看class文件发现

image-20210717194647248

抽象类存在的意义:提高开发效率

来源:b站狂神

posted on 2021-07-17 21:11  托马斯源  阅读(33)  评论(0编辑  收藏  举报