美文网首页
死磕java-java内部类

死磕java-java内部类

作者: iamrenpeng | 来源:发表于2018-04-13 08:41 被阅读16次

定义:

定义在一个类内部的类,其中的方法可以访问外部类的域

使用原因:

1、内部类可以访问该类定义的所在作用域的数据,包括私有数据2、内部类可以对同一个包中的其他类隐藏3、当想要定义一个回调函数且不想写大量的代码时,使用匿名内部类比较便捷

分类:

成员内部类

定义:在外部类的内部,而且与成员方法和属性平级的类

  (1)成员内部类不能存在static关键字,即不能声明静态属性、静态方法、静态代码块

  (2)成员内部类的实例化 外部类.内部类 变量名=外部类的实例.new 内部类()

  (3)内部类使用外部类的方法和属性 外部类.this.方法/属性

  (4)外部类无法访问内部类的方法和属性,需要实例化一个内部类对象才能访问

(5)单独的class文件,外部类$内部类.class

静态内部类

定义:使用static修饰的内部类叫作静态内部类,在内部类不需要使用外部类的时候可以使用静态内部类

  (1)静态内部类可以定义静态成员(静态变量、静态方法)和实例成员

  (2)静态内部类只能访问外部类的静态成员 外部类.静态成员

  (3)外部类的作用域外使用内部类 外部类.内部类 变量名=new 外部类.内部类()

  (4) 单独的class文件,外部类$内部类.class

局部内部类

定义:在代码块、方法内、作用域(使用花括号“{}”括起来的一段代码)内的类叫局部内部类。

  (1)局部内部类只能在代码代码块、方法体内和作用域中使用(如创建对象和使用类对象等)

  (2)局部内部类访问作用域内的局部变量,该局部变量需要使用final修饰。

  (3)可以使用abstract修饰,声明为抽象类。

匿名内部类

定义:局部内部类升级,只创建一个局部内部类的实例,且不用命名就是匿名内部类

匿名内部类定义和实例化形式如下:

new 父类/接口构造方法(参数){

    //注:该方法名必须在父类/接口中已经存在

    修饰符 返回参数类型 方法名(参数列表){

          。。。

    }

}

注意这是一个实例

(1)单独的class文件,使用类$数字.class

具体代码参见内部类

https://github.com/iamrenpeng/advancedjava

相关文章

  • 死磕java-java内部类

    定义: 定义在一个类内部的类,其中的方法可以访问外部类的域 使用原因: 1、内部类可以访问该类定义的所在作用域的数...

  • 内部类

    成员内部类 局部内部类(定义在方法内和定义在作用域内的类) 匿名内部类

  • “死磕”与学习

    也说“死磕” 死磕到底,死磕精神,死磕侠。互联网的发达,孕育了越来越多的网络词汇,“死磕”现在出现的频率颇高。 那...

  • 这些“死磕成本”的店,却因高体验卖出了惊人销量

    有些店死磕服务,有些死磕产品,还有些死磕成本。可有些品牌除了这些,还死磕别的... 无论何时,店铺的人工成本、租金...

  • 死磕与磕死

    前天晚上,打开百度网盘,准备听梁冬的节目睡睡平安,突然发现所有的音频转哪转哪,就是不出声音。到底哪里出了毛病?听听...

  • Java 内部类

    内部类包括成员内部类、方法内部类、*静态内部类、匿名内部类*。 内部类的作用 由于内部类的实现和外部类没有关系,内...

  • 磕,死磕

    疫情期间,你做的最多的是什么? 我啊~大概是反省吧,自省。 我发现反省是扇隐秘的门,一旦打开,就像探险一样,不停的...

  • 死磕别人,不如死磕自己

    【死磕别人,不如死磕自己。】有朋友是干销售的,任凭那股子死磕别人的毅力,一切都是那么不可控,最后只剩毅力。与其死磕...

  • Java学习——内部类

    内部类 一,成员内部类(包括静态内部类和非静态内部类) 非静态内部类可以直接访问外部类的成员,反之则不行 非静态内...

  • Java 内部类、静态内部类、方法内部类(未完待续)

    内部类 什么是内部类?内部类其实就是在一个类中创建的类。内部类有四种: 成员内部类 静态内部类 局部内部类 匿名内...

网友评论

      本文标题:死磕java-java内部类

      本文链接:https://www.haomeiwen.com/subject/byiqkftx.html