这个类不能有子类
这个方法不能被子类覆盖重写
一次赋值,终生不变
必须手动赋值
public | protected | (default) | private | |
---|---|---|---|---|
同一个类(我自己) | √ | √ | √ | √ |
同一个包(邻居) | √ | √ | √ | × |
不同包子类(我儿子) | √ | √ | × | × |
不同包非子类(陌生人) | √ | × | × | × |
外部类:public、(default)
成员内部类:public、protected、(default)、private
局部内部类:什么都不能写
修饰符 class 外部类名称 {
修饰符 class 内部类名称 {
...
}
...
}
注意:内用外随意访问,外用内,需要内部类对象。
直接方式:公式:
外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();
在内部类访问外部类的同名变量
外部类.this.变量名
修饰符 class 外部类名称 {
修饰符 返回值类型 外部类方法名(参数列表) {
class 局部内部类名称 {
...
}
}
}
局部内部类如果希望访问所在方法的局部变量,那么这个局部变量必须是final的
接口名称 对象名 = new 接口名称() {
//重写所有抽象方法
};
原文:https://www.cnblogs.com/zzllll/p/12905722.html