在方法中定义内部类
理论上内部类可以定义在类中的任意位置上,这就包括了:类、方法、代码块中。
不过如果从实用角度上讲在方法中定义内部类的形式是最多的。
范例:在方法中定义内部类
class Outer{//定义一个外部类
private static String msg="hello world!";
public void fun(int num) {
class Inner{
public void print() {
System.out.println("msg = "+msg);
System.out.println("num = "+num);
}
}
new Inner().print(); //产生内部类对象并调用方法
}
}
public class TestDemo {
public static void main(String args[]) {
new Outer().fun(100);// 产生外部类对象并调用方法
}
}
此时的代码块在JDK1.8是正常的,但是在1.8之前一定是错误的。(现在使用最多的是1.7)
在jdk1.7及以前,
如果一个内部类定义在了方法之中,那么该内部类要想访问方法中的参数
那么这个参数前必须使用final定义。而1.8之后为了推广它的函数式编程,所以将一局限取消了
内部类的使用暂时不作为现阶段设计的首选。
但是至少应该知道,内部类具备的特点
|-破坏了程序的结构
|-方便的进行私有属性的访问;
以后如果发现类名称上出现了“.”应该立刻想到是内部类的概念