JavaSe基础(16)--内部类
来源:互联网 发布:淘宝客服工作室 编辑:程序博客网 时间:2024/04/27 23:35
内部类
概念 在类的内部定义一个新的类,这个新的类就称作内部类
当定义一个类 里面的功能主要 想为某一个类 所使用, 不想让其他的类访问到这个类的时候
内部类就是为 该内部类所在外部类服务的
格式
public class OutterClass {//外部类 public class InnerClass{ //内部类 是OutterClass的内部类 }}
- 内部类 编译后生成的 class文件 是 外部类名称$内部类名称.class
示例:
class Outer{ private static int num = 31; class Inner// 内部类。 { void show() { System.out.println("show run..."+num); } } public void method() { Inner in = new Inner(); in.show(); }}
内部类访问特点:
- 1 内部类可以直接访问外部类中的成员。
- 2 外部类要访问内部类,必须建立内部类的对象
内部类的分类
1、普通(成员)内部类
内部类调用外部类的方法 内----》外 外部类.this.外部类中的方法 OutterClass.this.get(); 外部类调用内部类中方法 外----》内 外部类.内部类 变量名称 = new 外部类构造器. new 内部类构造器 ; 变量名称.内部类中的方法; OutterClass.InnerClass oinner = new OutterClass().new InnerClass(); oinner.getInnerClass();
2、static内部类
//创建内部类对象 //外部类.内部类 变量名称 = new 外部类.内部类构造器; OuterTwo.InnerStatic oi = new OuterTwo.InnerStatic(); //使用静态内部类中的方法 oi.getInnerMethod(); //当内部类和内部类中的方法都是static修饰的时候 可以如下直接使用 //外部类.内部类.内部类static修饰方法 OuterTwo.InnerStatic.getInnerMethod();
3、匿名内部类
就是没有名字的内部类 前提: 这个内部类去继承或实现 外部抽象类或外部接口时候 可以对内部进行简写 变为 匿名内部类 写法: new 外部类或外部接口() { 重写抽象方法} new A(){ @Override public void getA() { } }; 注意:匿名内部类 其实相当于 要使用外部类或外部接口的 一个对象; 什么时候使用: 当该外部类 只调用一个次的时候。 好处: 减少了内部类在内存中的生命周期
内部类和普通类的区别
0 0
- JavaSe基础(16)--内部类
- JavaSE基础08内部类
- JavaSE基础学笔记-内部类
- JAVASE总结--内部类
- JavaSE 内部类
- JavaSE---内部类
- JavaSE学习--内部类
- 黑马程序员----【javaSE基础】代码练习--内部类
- 黑马程序员——javase基础--多态、内部类、异常
- JavaSE--05--内部类,匿名内部类
- JavaSE学习笔记--内部类
- javaSE-面向对象-内部类
- 黑马程序员--javase 内部类
- Java基础_内部类:静态内部类、成员内部类、局部内部类、匿名内部类 (转)
- Java基础_内部类、静态内部类、成员内部类、局部内部类、匿名内部类 (转)
- JavaSE 6.0 学习(内部类----java世界的多面手)
- 黑马程序员-JAVASE入门(接口,多态,内部类)
- 黑马程序员-JAVASE入门(接口、内部类、多态)
- 整理出来四旋翼飞行器的资料汇总
- HDU 5122 K.Bro Sorting(单调栈)
- mysql索引使用总结
- 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐
- 随机数产生转换-根据(1,5)随机数生成器,生成(1,7)之内的随机数
- JavaSe基础(16)--内部类
- 贝叶斯分类
- 边缘检测的输出
- Xamarin.iOS + MvvmCross - Notes about how to use Mvx TableViewSource
- 微信开发准备(三)——框架以及工具的基本使用
- ORACLE RAC 的启动和关闭顺序
- Eclipse常用快捷键
- OnClick与android:focusableInTouchMode="true"
- 持续集成的价值