Java 内部类
基础概念:将一个类的定义放在另一个类的定义内部
1.一般内部类
// 1、一般内部类 // 闭包: 自给自足,提高变量生命周期 class Outer { int i = 20; private void outerPrint() { // 可以通过内部类的对象调用内部类中的私有方法的 // new Inner().print(); System.out.println("外部类的方法"); } public class Inner { int i = 100; public Inner() { System.out.println("内部类实例化"); } void print() { // 调用外部类的私有方法 outerPrint(); System.out.println("内部类的变量 i:"+Inner.this.i); System.out.println("外部类的变量 i:"+Outer.this.i); System.out.println(i); } } }
如何创建内部类 以及使用内部类的方法: 使用.new InnerClass();
// 创建外部类对象 Outer outer = new Outer(); // 通过外部类创建内部类对象 Outer.Inner inner1 = outer.new Inner(); // 直接创建 Outer.Inner inner2 = new Outer().new Inner(); // 调用内部类中的方法 inner2.print();
内部类可以调用外部类的属性
2.静态内部类 又称嵌套内部类 ☆☆☆☆
// 2、嵌套内部类 -> 静态内部类 class Outer1 { static int i; static class Inner { public Inner() { System.out.println("-----------------"); } static int i = 10; void print() { System.out.println("静态内部类中的方法"+i); } } static class Inner1 { int i = 10; void print() { System.out.println("静态内部类中的方法"+i); } } } // 静态内部类才能被外部类继承 class Child extends Outer1.Inner { }
使用方法:
Outer1.Inner inner3 = new Outer1.Inner();
3.匿名内部类
4.局部内部类 (在一个类的方法里面定义类)
能做什么
解决的问题:
1.静态内部类 继承,这样就可以只继承类的一部分功能;
2.内部类可以定义多个,最多65535
内部类和外部类都可以继承一个类 这样就解决了多继承的一种方案;
参考目录:https://www.cnblogs.com/chenssy/p/3388487.html
顶
收藏
关注
评论
作者:王思明
出处:http://www.cnblogs.com/maanshancss/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。所有源码遵循Apache协议,使用必须添加 from maanshancss
出处:http://www.cnblogs.com/maanshancss/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。所有源码遵循Apache协议,使用必须添加 from maanshancss