什么是内部类?

在一个类中定义另一个类,这样定义的类称为内部类。包含内部类的类称为内部类的外部类。

如果想要通过一个类来使用另一个类,可以定义为内部类。

内部类的外部类的成员变量在内部类仍然有效,内部类中的方法可以调用外部类的方法。不论静态还是非静态的,内部类都可以直接调用外部类中的属性。

内部类的类体中不可以声明类变量和类方法。

内部类可以由外部类使用外部类中在函数中创建内部类的对象完成。

如果内部类的权限是非私有的,非静态的,就可以在其外部其他程序中被访问到,通过创建外部类对象访问内部类

如果内部类是静态的,非私有的,静态成员可以直接类名调用,非静态成员通过创建外部类对象使用。

class Outer{
int a=5;
static int b=6;
void show() {
System.out.println("hello world");
}
class Inner{
void use() {
System.out.println(a);//
System.out.println(b);//
show();//hello world }
}
void create() {
new Inner().use();
} } public class Demo { public static void main(String[] args) {
new Outer().create();
Outer.Inner oi=new Outer().new Inner();
oi.use(); } }

内部类的字节码不一样,编程外部类$内部类名

将内部类定义在局部位置上。可以访问外部类的所有成员,如果内部类是静态的,那么声明周期与普通的 static 没有区别。

匿名类

匿名类:就是没有名称的类,其名称由Java 编译器给出,匿名类就是利用父类的构造函数和自身类体构成的一个类。

父类是子类集成或者要实现的外部类或者接口。

匿名类可以继承父类的方法,也可以重写父类的方法。

匿名类可以访问外部类的成员变量和方法

匿名类由于是一个 new 的结果,所以其实可以赋值给一个父类的对象。分为俩类:成员匿名与局部匿名类

最新文章

  1. 有border和没有border是两回事
  2. python调用外部子进程,通过管道实现异步标准输入和输出的交互
  3. 【BZOJ-1131】Sta 树形DP
  4. Android Hybrid开发
  5. Android网络访问库 - Retrofit学习(1)基础
  6. Windows下使用Git和GitHub.com
  7. window--窗口
  8. iOS案例:读取指定目录下的文件列表
  9. FCKEditor文件上传提示信息的汉化
  10. jQuery练习一好友列表变色
  11. PAT-乙级-1004. 成绩排名 (20)
  12. jQuery 源码分析3: jQuery.fn/ jQuery.prototype
  13. Linux 的基本操作(系统用户及用户组的管理)
  14. 雷林鹏分享:使用 CSS 显示 XML
  15. java中一对多 关联建表
  16. 用TableView写带特效的cell
  17. RabbitMQ部署
  18. Spring 通知
  19. SQL SERVER2014的安装
  20. 关于电脑宽带显示连接 qq可以登录 但是无法上网的问题

热门文章

  1. scanf 与fgets
  2. Oracle命令行导入dmp文件
  3. import,export深入理解
  4. win10 系统到期的解决方案
  5. Tomcat8.5安装与配置的坑
  6. CF594D REQ [离线+树状数组,欧拉函数]
  7. vsftp配置遇到的一些问题
  8. c# 使用T4模板生成实体类(sqlserver)
  9. plsql导出查询结果,导出csv文件。但是类似身份证等超出15位的数据后三位显示问题,和科学计数法的格式问题
  10. 安装Docker到Ubuntu(APT)