Java_内部类
来源:互联网 发布:spark sql python 编辑:程序博客网 时间:2024/05/18 16:54
本博文为子墨原创,转载请注明出处!
http://blog.csdn.net/zimo2013/article/details/8924845
1.内部类细节
一般内部类是被私有修饰的
局部类要使用静态成员,该局部类也必须是静态的
static和private用来修饰成员的,当在方法内定义类时,由于该类定义在局部,故不能被static和private修饰
匿名内部类必须继承一个类,或者实现一个接口
2.内部类代码实现
/*内部类Strawberry2013/5/14*/class Demo{public static void main(String[] args){//Out.In oi = new Out().new In();//如果In没有私有,则Out可以访问内部成员In//oi.show();如果内部类In没有被private修饰,则可以使用new Out().new In()创建Out out = new Out();out.show();}}class Out{private int x = 2;private class In{//private static int y = 3;静态修饰符,内部类必须为static的private int x =3; public void show(){int x = 6;System.out.println("x = "+ x);//x = 6,函数show内部xSystem.out.println("x = "+ this.x);//x = 3,本类In成员xSystem.out.println("x = "+ In.this.x);//x = 3,In类成员xSystem.out.println("x = "+ Out.this.x);//x = 2,Out类成员x//System.out.println("x = "+ Out.x);//如果外部类Out的成员x被static修饰,则可以直接使用Out.x访问}}public void method(){In in = new In();in.show();//访问In2的show方法//new In2().show();如果In2不是静态的,不能这样访问//可以将method()当做外部类的一个成员方法,In2也当做外部类的成员,//因为静态成员在类加载时,已经存在于内存中,如果In2不是静态的,则new In2()是找不到In2的类//静态方法要只能访问静态成员,故In2必须被static修饰,//由于show方法非静态,先应该new In2(),再调用show方法//new In2().show();}static class In2{void show(){//如果在主函数中调用该show方法时,由于内部类In2是静态的,Out.In2可以直接访问//由于show方法不是静态的,故必须new一个内部类,new Out.In2(),再调用show方法//new Out.In2().show();int x = 3;}}public void show()//如果show接收参数,也必须定义为final, final int x{final int y = 3;//方法区的内部类要访问方法局部变量,要被final修饰class In3//内部类不能被static和private修饰,{void show(){System.out.println("s");}}//new In3().show();}}
3.匿名内部类
/*匿名内部类必须继承一个类,或者实现一个接口*/class Demo1{public static void main(String[] args){Inter in = new Inter(){public void show(){System.out.println("haha");}};in.show();//或者new Inter(){public void show(){System.out.println("haha");}}.show();}}interface Inter{abstract public void show();}
- java_匿名内部类
- Java_内部类
- java_内部类
- Java_内部类
- java_匿名内部类
- java_内部类
- java_匿名内部类
- java_匿名内部类应用
- [java_基础]内部类和静态类
- java_内部类学习笔记(一)
- java_内部类学习笔记(二)
- JAVA_内部类和代码块
- Java_四种常规内部类详解
- Java_多态和内部类
- 菜鸟先飞之JAVA_内部类
- Java_使用内部类模拟闭包和回调
- java_类承继其他类的内部类例子
- java_强制类型转换、内部类、异常处理
- netty小入门
- NSFileHandle
- Android之ContentProvider
- Struts性能优化
- 彻底屏蔽优酷广告
- Java_内部类
- Java反射机制(取得类的全部的属性)
- 数据源未注册处理办法
- QUEUE C语言实现
- Struts 中如何实现查询结果分页显示
- ubuntu下perl模块的安装方法(包括windows)
- queue 的C语言实现
- indexOf(String.indexOf 方法)
- 有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。