栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

内部类(Java)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

内部类(Java)

内部类 内部类的分类

1.成员内部类

2.静态内部类

3.局部内部类

4.匿名内部类

什么是内部类 概念:

在一个类的内部再定义一个完整的类

  class Body{
      class Head{
          
      }
  }//head属于body的一部分
特点:

​ 1.编译之后内部类可生成独立的字节码文件

​ 2.内部类可以直接访问外部类的私有成员,不破外外部类的封装性

​ 3.可为外部类提供必要的内部功能组件(body和head)

成员内部类

在类的内部定义,与实例变量、实例方法同级别的类

(与类中的变量,方法是一个级别的,也可以添加,define,protected,private,public这些修饰符,不过只能有一个public修饰的内部类)

作为外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象(先创建外部类对象,然后创建内部类对象)

 

 

外部类类名.内部类类名 内部类对象名 = 外部类对象名.new 内部类类名();

简单创建对象的方法:

  
  Outer11.Inner1 c = new Outer11().new Inner1();

外部类类名.内部类类名 内部类对象 = new 外部类类名().new 内部类类名();

注意:

1.当内部类和外部类有重名的属性的时候,会优先访问内部类属性

在这种情况下想调用外部类的属性,需要在调用的外部类的属性前加上 外部类类名.this.前缀

  System.out.println(Outer.this.name);

2.成员内部类,不能定义静态成员

可以包含静态常量

静态内部类

不依赖外部类对象,可直接创建或通过类名访问,可声明静态成员(相当于一个外部类)

作用:给外部类提供一些功能

 

 

局部内部类

和局部变量一样,定义在方法中,作用范围是外部类的方法,和局部变量是一个级别的

 

 

如果想调用局部内部类中的方法show2,需要在方法中创建对象,然后调用外部类的show方法

 

访问局部变量,这个变量必须是常量fianl 在JDK1.7以前,在JDK1.8以后自动添加了fianl

局部内部类中也不能使用静态变量,但是可以使用静态常量

匿名内部类

没有类名的局部内部类(一切特征和局部内部类相同)

必须继承一个父类或者一个接口

局部内部类只使用一次,就不再使用了,所以为了简化局部内部类的写法,有了匿名内部类

这里是局部内部类的使用方法

 

这里是匿名内部类的使用方法

 

定义类,实现类,创建对象的语法合并,只能创建一个该类的对象

匿名内部类是有名字的,只不过是JDK自动生成的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/720011.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号