类的权限修饰符
public > protected > (default) > private
定义一个类的时候,权限修饰符的规则:
1.外部类:public / (default)
2.成员内部类:public / protected / (default) / private
3.局部内部类:什么都不写,注意什么都不写不是default
/*
局部内部类,如果希望访问所在方法的局部变量,那么这个局部变量必须是【有效final的】
原因:
1.new出来的对象在堆内存中
2.局部变量跟着方法走的,在栈内存中
3.方法运行结束后,立刻出栈,局部变量就会立刻消失,
4.但是new出来的对象会在堆中持续存在,直到垃圾回收消失
*/
public class MyOuter{
public void methodOuter(){
final int num = 10; //所在方法的局部变量
class MyInner{
public void methodInner(){
System.out.println(num);//10
}
}
}
}