构造代码块:给对象初始化,构造对象的时候执行,先于构造函数执行。
静态代码块:给类初始化,在类加载的时候执行,只执行一次,优先于主函数。
内部类:
1.外部类要访问内部类,必须建立内部类对象
2.内部类可以用用private等修饰。
3.内部类访问外部类成员:外部类.this.成员
4.非静态内部类不能定义静态成员
5.内部类定义在局部时候,不可以被成员修饰符修饰
6.匿名内部类必须继承自外部类或者接口。因为要创建子类对象,可以用父类或者接口创建。
new 父类(){子类内容} AWT里常见
异常:
1. 子类在覆盖父类方法的时候,如果父类方法抛出异常,
那么子类方法只能抛出父类的异常或者该异常的子类,或者不抛
2. 如果父类抛出多个异常,子类在覆盖该方法时,只能抛出父类异常的子集
3. 如果父类或接口没有抛出异常,那么子类在覆盖该方法的时候,也不可以抛出异常
最典型的例子就是多线程里,覆盖run()方法的时候,如果有异常只能 try{} catch{},
而不能抛出异常
静态代码块:给类初始化,在类加载的时候执行,只执行一次,优先于主函数。
内部类:
1.外部类要访问内部类,必须建立内部类对象
2.内部类可以用用private等修饰。
3.内部类访问外部类成员:外部类.this.成员
4.非静态内部类不能定义静态成员
5.内部类定义在局部时候,不可以被成员修饰符修饰
6.匿名内部类必须继承自外部类或者接口。因为要创建子类对象,可以用父类或者接口创建。
new 父类(){子类内容} AWT里常见
异常:
1. 子类在覆盖父类方法的时候,如果父类方法抛出异常,
那么子类方法只能抛出父类的异常或者该异常的子类,或者不抛
2. 如果父类抛出多个异常,子类在覆盖该方法时,只能抛出父类异常的子集
3. 如果父类或接口没有抛出异常,那么子类在覆盖该方法的时候,也不可以抛出异常
最典型的例子就是多线程里,覆盖run()方法的时候,如果有异常只能 try{} catch{},
而不能抛出异常