成员内部类:
注意:内用外,随意访问,外用内,必须调用内部类对象
内部类调用方式: 成员内部类 定义变量 = new 外部类() . new 成员内部类()
nb2 j = new nbl().new nb2();
当外部类属性与内部类属性有同命名时:先执行内部类属性
内部类不能定义静态成员,但是可以定义静态常量 static fianl
静态内部类:(级别和外部类相同)
注意:不需要在创建外部类对象,可以直接new静态内部类
静态内部类调用:静态内部类 定义变量 = new 静态内部类()
nb2 j = new nb2();
如何调用外部类属性:
如果外部类有静态变量 或静态常量(静态内部类可以直接调用)
如果没有则需要在静态内部类new一个外部类对象,来进行调用
局部内部类(只能使用在外部类的方法里面)
注意:局部内部类不能加如何访问修饰符,
局部内部类使用局部变量时 需要使用fianl修饰局部变量
public class nbl {
private static String i="努力加油";
void m(){
fianl String i="努力加油"; // 1.8版本后自动添加fianl
class nb3{
public void m1(){
System.out.println("我是局部内部类");
System.out.println(nbl.this.i);
System.out.println(i);
}
}
nb3 j1 = new nb3();
j1.m1();
}
-------调用-------
我是局部内部类
努力加油
努力加油
匿名内部类
没有类名的局部类部类(一切特征和局部类部类相同)
USB jUsb = new USB() {
@Override
public void m() {
System.out.println("运行成功!!!加油!");
}
};
jUsb.m();