static
概念
静态修饰符
可以修饰类的成员 被static修饰的成员 属于类 而不单属于某个对象
被所有对象所共享
静态的访问
对象名.属性名; 不推荐
对象名.方法名(实际参数); 不推荐
类名.属性名;
类名.方法名(实际参数);
静态内容优先于对象存在
当类加载时 静态方法就已经加载了
静态的a就已经有值了 所以可以访问
但是 name和age还没有进入到堆内存中
还没值 不能使用已存在的内容访问还未出现的内容
静态不能直接访问非静态
静态可以直接访问静态
如果想访问name和age属性 先创建对象
注意事项
静态内容随着类的加载而加载 优先于对象出现
所以静态只能直接访问静态 不能直接访问非静态
静态中不能使用this/super
代码块
局部代码块
限制变量的作用域范围
成员代码块
定义在类中方法外的代码块
创建对象时执行 也称为构造代码块
静态代码块
类加载时执行 类只加载一次 静态代码块只执行一次
1.创建对象
2.创建子类对象
3.访问静态成员
4.访问子类静态成员
静态代码块> 构造代码块>构造方法
类的加载:
加载
连接
初始化
静态代码块执行
修饰符
public
公共权限 可以修饰 类 方法 成员变量 任意地方都可以访问 一个文件中只能有一个public修饰的类
public修饰的类 类名必须与文件名相同
private
私有权限 可以修饰 内部类 方法 成员变量 当前类可以访问
private和abstract能不能一起使用?
如果修饰内部类 可以一起使用
如果修饰方法 不能一起使用 private修饰的方法 子类看不到 而abstract要求子类重写 冲突.
final
最终修饰符 可以修饰 类 方法 成员变量 局部变量
final修饰类不能继承 修饰的方法不能被重写 修饰的变量是常量
final和abstract能不能一起使用?
final和abstract修饰类 不能一起使用 final修饰的类不能继承 而abstract修饰的类 要求必须继承
final和abstract修饰符方法 也不能一起使用 final修饰不能重写 而abstract修饰的方法 要求子类必须重写
protected
受包含的权限 可以修饰 内部类 方法 成员变量 当前包与其他包的子类可以访问
默认 包权限 可以修饰类 方法 成员变量 当前包下可以访问
void(默认)
static
静态修饰符 可以修饰 内部类 方法 成员变量
final和static能不能一起使用?
可以
abstract
抽象修饰符 可以修饰 类 方法
static和abstract能不能一起使用?
如果修饰内部类 可以一起使用
但是如果修饰方法 不能一起使用 假设可以的话 就会出现类名直接运行一个抽象方法 调用抽象方法没有意义
native 本地修饰符 可以修饰方法 如果被native修饰的方法 说明这个方法不是用java语言编写
用c语言编译 这个方法 与操作系统进行交互 我们看不到源码.
匿名内部类
属于局部内部类一种
1.定义了一个类的子类
2.创建了这个子类的对象
作用:临时创建一个类子类对象的快捷方式
格式
new 父类/接口(){
重写方法
};
调用方法
当引用类型是方法的形式参数时 如何调用方法
当引用类型是方法的返回值类型时 如果返回数据
2.欠缺待加强
内部类需重点再看看.
3.心情
充实,收获满满.
练习题不看老师答案,有点费解,明天再练一遍
4.明日安排
再把今天的公司发工资,调薪资给练习一遍.
复习今日内容