深究JAVA--内部类的秘密

来源:互联网 发布:模板支架计算软件 编辑:程序博客网 时间:2024/06/07 23:02

从事JAVA开发将近两年的时间了,很少用到内部类,以至于几乎忘光了老师曾经讲过的这一知识点,今天在博客里总结一下,希望以后可以用在实际的项目中。

问题一:什么时候用内部类。

答:如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能。真正的原因,java中的内部类和接口加在一起,可以很好的实现多继承的效果。

问题二:如果内部类和外部类的成员变量同名时,报错吗,怎么在内部类调用外部类的成员变量。

答:不报错,可以使用。在内部类中,Outclass.this.xxxx。


附代码块:

/** * @author 黄鑫 (Xin·Huang) * @date: 2015-4-2 下午09:37:24 * @desc: 1.<br /> *        2. */public interface InterfaceTest{public int Sum(int a,int b, int c);}


/** * @author 黄鑫 (Xin·Huang) * @date: 2015-4-2 下午08:57:46 * @desc: 1.<br /> *        2. */class Out{private int age = 26; public int Sum(int a, int b, int c){return 0;}class In implements InterfaceTest{private int age = 126;public void print(){// 如果内部类外部类成员变量同名System.out.println(Out.this.age);}@Overridepublic int Sum(int a, int b, int c){return 0;}}}public class Test9{public static void main(String[] args){Out out = new Out();      Out.In in = out.new In();      in.print();}}


0 0
原创粉丝点击