static 静态修饰符 可以修饰 类的成员 成员变量 成员方法
特点: 被static修饰的成员属于类
不单属于某个对象 被所有对象所共享
static修饰成员的访问
类名.成员变量;
类名.方法名(实际参数);
static注意事项
static修饰的内容随着类的加载而加载 优先于对象出现
静态之呢个直接访问静态 不能使用this/super
局部代码块
定义方法中的代码块 用来限制变量的作用域范围
成员代码块(构造代码块)
定义在类中方法外 创建对象时就会执行 创建一次执行一次
优先于构造方法执行
静态代码块
定义在类中方法外 被static修饰
类加载时就会执行 类加载一次 静态代码块只执行一次
什么时候类会加载
1.创建对象时
2.创建子类对象时
3.访问静态成员变量
4.访问静态成员方法
静态代码块>成员代码块>构造方法<br />静态代码块什么时候执行?(类的初始化时机)<br /> 1.访问类的静态成员<br /> 2.创建类的对象<br /> 3.访问子类的静态成员<br /> 4.创建子类的对象<br />静态常量<br /> public static final修饰<br /> public保证可以在任意包下使用<br /> static 可以类名直接调用<br /> final 防止别人修改<br /> 常量命名规则 所有字母都大写 多个单词用_连接
在同一个类中 四种权限都可以访问
public 公共权限修饰符 可以修饰类 成员方法 成员变量 任何包下都可以访问
默认 包权限 可以修饰类 成员变量 成员方法 当前包下可以访问
protected 受保护的 可以修饰 内部类 成员变量 成员方法 当前包下可以访问
private 私有的 可以修饰 内部类 成员变量 成员方法 只能本类访问
abstract抽象的 可以修饰类 成员方法
final 最终修饰符 可以修饰类 方法 变量(成员变量和局部变量)
static静态修饰符 可以修饰 内部类 成员变量 成员方法
final和abstract能不能一起使用?
final和abstract都可以修饰类和方法
final修饰类 不能被继承 abstract修饰方法 要求子类必须重写 冲突
static和abstract能不能一起使用?
static和abstract都可以修饰方法和内部类
如果static和abstract一起修饰一个方法 那么类名可以直接调用一个抽象方法 没意义 不可以
如果修饰内部类 是可以的
static和final可以一起使用吗?
可以
private和abstract能不能一起使用?
都可以修饰方法和内部类
修饰方法时不可以,因为private修饰的子类看不到 不能重写
修饰内部类 可以
内部类
成员内部类
定义在类中成员位置的内部类
局部内部类
定义在方法内的类
匿名内部类
属于局部内部类的一种
作用:创建一个子类对象的快捷方式
格式
new 父类/接口(){
重写方法
};
1.定义了一个类的子类
2.定义了这个子类的同时 也创建了对象
