java 内部类的作用 推荐一、 定义 放在一个类的内部的类我们就叫内部类。 二、 作用 1.内部类可以很好的实现隐藏 一般的非内部类,是不允许有 private 与 protected 权限的,但内部类可以 2.内部类拥有外围类的所有元素的访问权限 3.可是实现多重继承 4.可以避免修改接口而实现同一个类中两种同名方法的调用。 三、 例子 1.实现隐藏 平时我们对类的访问权限,都是通过类前面的访问修饰符来限制的,一般的非内部类,是不允许有 private 与 protected 权限的,但内部类可以,所以我们能通过内部类来隐藏我们的信息。可以看下面的例子 接口 package insidecategory; public interface Incrementable { void increment(); } 具体类 package insidecategory; public class Example { private class InsideClass implements InterfaceTest { public void test() { System.out.println("这是一个测试"); } } public InterfaceTest getIn() { return new InsideClass(); } } 上面加粗的部分是内部类,访问修饰符是private 客户端程序 package insidecategory; public class TestExample { public static void main(String args[]) { Example a=new Example(); InterfaceTest a1=a.getIn(); a1.test(); } } 加粗的那部分就是客户端调用的代码,从这段代码里面我只知道Example 的 getIn()方法能返回一个InterfaceTest 实例但我并不知道这个实例是这么实现的。而且由于 InsideClass 是private 的,所以我们如果不看代码的话根本看不到这个具体类的名字,所以说它可以很好的实现隐藏。 2.可以无条件地访问外围类的所有元素 package insidecategory; public class TagBean { private String name="liutao"; private class InTest { public InTest() { System.out.println(name); } } public void test() { new InTest(); } public static void main(String args[]) { TagBean bb=new TagBean(); bb.test(); } } 看上面加粗部分,name 这个变量是在TagBean 里面定义的私有变量。这个变量在内部类中可以无条件地访问 System.out.println(name); 3.可以实现多重继承 个特点非常重要,个人认为它是内部类存在的最大理由之一。正是由于他的存在使得 Java 的继承机制更加完善。大家都知道 Java 只能继承一个类,它的...