课时128:方法中定义内部类
摘要:
1. 方法中定义内部类
2. 版本不同参数访问的区别
01.方法中定义内部类
1.1内部类的定义
内部类可以在任意的结构中进行定义,这就包括了:类中、方法中、代码块中,但是从实际的开发来讲,在方法中定义内部类的形式较多。
1.2范例:观察在方法中定义的内部类
Class outer { private String msg = " www .mldn .cn” ; public void fun(long time) { class Inner { // 内部类 public void print () { System.out.println(Outer.this.msg) ; System.out.println(time) ; } } new Inner() . print() ; // 方法中直接实例化内部类对象 } } public class JavaDemo { public static void main(string args [] ) { new outer().fun(2390239023L) ; } }
02.版本不同参数访问的区别
2.1 Inner内部类的定义
此时在 Fun () 方法内部提供有 Inner 内部类的定义,并且可以发现内部类可以直接访问外部类中的私有属性,也可以直接访问方法中的参数。
但是对于方法中的参数直接访问,是从 JDK 1.8 开始支持的,而在 JDK 1.8 之前,如果方法中定义的内部类要想访问方法中的参数则参数前必须追加 Final。
2.2范例:在 JDK 1.8 以前的程序结构
Class Outer { private String msg = "www.mldn.cn" ; public void fun(final long time) { final String info = "我很好”; class Inner { // 内部类 public void print () { System.out.println(Outer.this.msg) ; System.out.println(time) ; System.out.println(info) ; } } new Inner().print() ; //方法中直接实例化内部类对象 } }
2.3总结
之所以取消这样的限制,主要是为了其扩展的函数式编程准备的功能。