java--内部类的总结
2015-07-09 14:10
567 查看
定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。 思路:看到内部类首先想到了内部类的访问规则:1.内部类可以直接访问外部类中的成员包括私有。2.外部类要访问内部类必须建立内部类的对象3.内部类有其他修饰符修饰时,可以看做成带修饰符的函数,其处理方式一样。 分析:内部类分为:普通内部类、静态内部类、私有内部类、匿名内部类。以下对这四中方法都分别做了示例。 * */ interface fu { void shownm(); } class Outer//外部类 { private int x = 3; static int y =6; class Inter1//内部类 { int x = 4; public void showpublic()//普通内部类函数 { int x =5; System.out.println("显示局部变量中x值:"); System.out.println(x); System.out.println("显示内部类中x值:"); System.out.println(this.x); System.out.println("显示外部类中x值:"); System.out.println(Outer.this.x); } } static class Inter2//静态内部类 { public void showstatic()//静态内部类公有函数 { SOP(y); } public static void showstatic2()//静态内部类的静态函数 { SOP(y); } } private class Inter3//私有内部类 { public void showprivate() { showgy();//内部类访问外部类函数 } } static fu shownm1() { return new fu() { public void shownm() { System.out.println("匿名内部类调用的方法:"); showjt(); } }; } public void showsy()//外部类调用私有内部类 { System.out.println("外部类访问私有内部类的方法获取到的x值:"); Inter3 i = new Inter3(); i.showprivate(); } public void showgy()//外部类调用公有内部类 { Inter1 i = new Inter1(); i.showpublic(); } public static void showjt()//外部类调用内部类的非静态方法 { SOP("外部类访问静态内部类的非静态方法获取到的y值:"); new Outer.Inter2().showstatic(); } public static void showjt2()//外部类调用内部类的静态方法 { SOP("外部类访问静态内部类的静态方法获取到的y值:"); Outer.Inter2.showstatic2(); } private static void SOP(Object obj)//偷懒用的--打印函数 { System.out.println(obj); } } public class Test8 { public static void main(String[] args) { Outer o = new Outer(); o.showgy(); Outer.Inter1 i = new Outer().new Inter1(); i.showpublic(); Outer.showjt(); Outer.showjt2(); o.showsy(); Outer.shownm1().shownm(); } } |
相关文章推荐
- java--异常及异常的处理机制
- JAVA--IO流(三)
- JAVA--IO流(二)
- java--线程的生命周期
- Java--继承、方法重载、方法覆盖总结
- java--JDK1.5新特性
- java--IO流
- java--用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?
- Eclipse设置、调优、使用
- java--面向对象
- jdk安装错误error could not open jvm.cfg
- java--选择排序
- eclipse Kepler 安装 SVN Plugin + Groovy Plugin
- java--冒泡排序
- java中volatile关键字的含义
- 黑马程序员——java基础---JDK1.5新特性
- java--多态_接口
- 深入Java关键字null
- java--基础
- 搭建struts2框架