java内部类及常见异常问题
内部类
内部类算是java写类的高阶玩法,目前占时不需要掌握,看见能知道就足够。
成员内部类
在类中再定义一个类
//外部类
public class Outer {
public void out(){
System.out.println("这是外部类方法");
}
//成员内部类
public class Inner{
public void in(){
System.out.println("这是内部类方法");
}
}
}
访问内部类,需要外部类来进行实例化
public class test {
public static void main(String[] args) {
//外部类实例化
Outer oo = new Outer();
//内部类实例化
//通过实例化的外部类来实例化内部类
Outer.Inner ii = oo.new Inner();
oo.out();
ii.in();
}
}
同时,内部类本身可以获得外部类的私有属性和方法
静态内部类
由static关键字所修饰的内部类
//外部类
public class Outer {
public void out(){
System.out.println("这是外部类方法");
}
//静态内部类
public static class Inner{
public void in(){
System.out.println("这是静态内部类方法");
}
}
}
由于static是在外部类加载时一同加载的,所以若用静态内部类访问外部类的非静态属性和方法或报错,因为静态类部类加载时外部类的非静态属性和方法还未加载。
局部内部类
写在外部类方法中的类
package oop.Demo12;
//外部类
public class Outer {
public void method