package com.neibulei;
/**
- 局部内部类
- 1.定义在外部类的方法中 作用范围仅限于当前方法
- 2.特征与普通外部类基本相似
- 3.定义在外部类方法中,作用范围和创建对象范围仅限于当前方法。
- 4.局部内部类访问外部类当前方法中的局部变量时,变量必须修饰为final。
- 5.限制类的使用范围。
- @author WHD
*/
public class Test3 {
public static void main(String[] args) {
//创建Outer对象
Outer2 outer = new Outer2();
System.out.println(outer.a);
outer.m1();
//调用Outer2里的静态方法
//类名.静态方法名
Outer2.m2();
}
}
//同一个包里不能有两个相同的类名
class Outer2{
int a = 20;
public void m1() {
System.out.println("外部类的普通方法m1");
final int num = 100;
//定义方法里的内部类
class Inner{
private int b = 22;
//内部类方法
public void innerM1() {
// num++; 不能对外部类中普通方法局部变量值做改变
System.out.println(num);
System.out.println(“局部内部类的m1”);
}
// 不能定义静态方法
// public static void m2() {
// System.out.println(“局部内部类的m2”);
// }
}
//(内部类外and方法内部)创建内部类对象
//成员内部类生效范围和创建对象区域都在方法内,
//方法外不能创建对象和访问成员内部类
//内部类名 对象名=new 内部类名()
Inner inner = new Inner();
//输出内部类里的属性b
System.out.println("局部内部类中的属性b" + inner.b);
inner.innerM1();
}
public static void m2() {
System.out.println("外部类的静态方法m2");
}
}