四大内部类
来源:互联网 发布:java图片上传跨域请求 编辑:程序博客网 时间:2024/06/07 02:41
1.实例内部类
public class ShiliTest {private int a = 10;/**实例内部类 * 1)位置:类的内部,方法外部 * 2)修饰:没有static,允许私有化 * 3)对象:依托于外部类对象(先有外部类对象) * 4)访问:允许访问外部类所有成员 * */class inner {private int a = 20;public void show(){System.out.println(a);System.out.println(ShiliTest.this.a);}}/** * 因为main方法是一个静态方法,而内部类不是静态内部类,所以需要依托外部类对象 * 构建、访问 * @param args */public static void main(String[] args) {ShiliTest s = new ShiliTest();inner ss = s.new inner();ss.show();}}
2.静态内部类
public class StaticTest{private int a = 10;/**静态内部类 * 位置:类的内部,方法外部 * 修饰:有static修饰,允许私有化 * 对象:不依赖于外部类对象(相当于是一个外部类) * 访问:只允许访问外部类静态成员 * */static class inner{private int a = 20;public void show(){System.out.println(a);}}public static void main(String[] args) {inner s = new inner();s.show();}}
3.局部内部类
public class JubuTest {private int a = 10;public void f(){final int b = 30;/**局部内部类 * 位置:方法的内部 * 修饰:不能使用static,只能default修饰 * 访问:允许访问外部类所有成员,但只能访问方法内部使用final修饰的变量 * */class inner{private int a = 20;public void show(){System.out.println(a);System.out.println(b);System.out.println(JubuTest.this.a);}}inner s = new inner();s.show();}public static void main(String[] args) {JubuTest s = new JubuTest();s.f();}}
4.匿名内部类
class InnerA{public void show(){}}abstract class InnerB{int a = 10; public abstract void show();}interface InnerC{void show();}public class NimingTest01 {public static void main(String[] args) {InnerA a = new InnerA();/** * 匿名内部类一般用于构建抽象类对象实例,或者接口对象实例时,不用写类名, * 但是其他对象和方法也不能调用匿名内部类内的方法和成员,适合一次性使用 */InnerB b = new InnerB() {public void show() {System.out.println("B");System.out.println(super.a);}};InnerC c = new InnerC() {public void show() {System.out.println("C");}};a.show();b.show();c.show();}}
前些日子学的怕忘了,做下笔记
0 0
- 四大内部类
- 四大内部类
- 四大 Java 内部类总结
- 四大内部类简单小结
- 面向对象-四大内部类
- java内部类的四大作用
- Java里面的四大内部类
- Java基础之四大内部类(结合代码理解)
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 传球游戏_vijos1485
- 构造方法中super()的作用
- Codeforces 689C Mike and Chocolate Thieves (二分)
- Qt学习笔记——QTableWidget使用问题
- 异常处理基础(C#参考)
- 四大内部类
- leetcode——Isomorphic Strings
- 领域建模有很多种方法,对于同样的问题域使用不同的建模手段得到的模型可能也不尽相同。于是我经常听到这样一个问题:怎么才能保证建模的正确性?
- 用NSJSONSerialization解析NSURLSession中的json数据
- 我的linux命令笔记
- 网络状态监测
- 解决js中onkeydown事件键盘控制div移动鼠标卡顿
- nyoj 276 比较字母大小
- 速度追踪--VelocityTracker