`

Java 入门 七 (Java 内部类)

    博客分类:
  • Java
 
阅读更多

 

Java 入门 七 (Java 内部类)

 

说实在话 实际开发中用到内部类的 很少很少几乎就没 就算用到也是用来 匿名内部类 其他 的几乎真心用不到。

 

可以了解下,用来的时候在来看也来得及。很简单的东西。

 

 

注意!~ 内部类相同于 外部类的一个属性 和 外部类的其他属性 是同级的 只不过访问的方式不同 (内部类私有的方法肯定也能被外部类访问)

内部类可以访问外部类的任意变量和方法。

静态方法里面 只能访问 静态变量和静态方法 局部变量


成员内部类


里面只能定义非静态的变量和方法(非静态的 也就是不带关键字static 的变量)

有外部类的引用 外部类名.this 引用


静态内部类


里面定义 静态的变量和方法 非静态的变量和方法

只能访问外部类静态的变量和方法

没有外部类的引用


匿名内部类


经常用来 作为某个类的唯一子类或者 某个接口的唯一实现类(如果要继承的父类 只有有参的构建函数 那么就必须要用super关键字 调用它有参数的构建函数 要不报错)


局部内部类

在外部类方法体中定义的类叫局部内部类,局部内部类能只用 默认修饰符和 final修饰符修饰 abstract修饰符,访问方法的局部变量时,方法的局部变量带final 才能被访问。

 

 

 

内部类总结:


1.首先,把内部类作为外部类的一个特殊的成员来看待,因此它有类成员的访问权限:private ,protected,默认(default),public

它有类成员的修饰符: static,final,abstract

2.非静态内部类nested inner class,内部类隐含有一个外部类的指针this,因此,它可以访问外部类的一切资源(当然包括private)

外部类访问内部类的成员,先要取得内部类的对象,并且取决于内部类成员的封装等级。

非静态内部类不能包含任何static成员.

3.静态内部类:static inner class,不再包含外部类的this指针,并且在外部类装载时初始化.静态内部类能包含static或非static成员.

静态内部类只能访问外部类static成员.

外部类访问静态内部类的成员,循一般类法规。对于static成员,用类名.成员即可访问,对于非static成员,只能用对象.成员进行访问

4.对于方法中的内部类或块中内部类只能访问块中或方法中的final变量。

类成员有两种static , non-static,同样内部类也有这两种

non-static 内部类的实例,必须在外部类的方法中创建或通过外部类的实例来创建(OuterClassInstanceName.new innerClassName(ConstructorParameter)),并且可直接访问外部类的信息,

外部类对象可通过OuterClassName.this来引用

static 内部类的实例, 直接创建即可,没有对外部类实例的引用。

内部类不管static还是non-static都有对外部类的引用

non-static 内部类不允许有static成员

方法中的内部类只允许访问方法中的final局部变量和方法的final参数列表,外部类中的方法和变量也

可以被访问。方法中的内部类不能在方法以外访问.

匿名内部类如果作为接口的实现类,必须实现指定接口的方法. 匿名内部类如果继承某类,参数必须按父类的构造函数的参数传递。

 

 

 

 

 

 

分享到:
评论

相关推荐

    Java入门1·2·3:一个老鸟的Java学习心得.rar 超清

    《Java入门1·2·3:一个老鸟的Java学习心得》是一本与众不同的Java入门好书。作者以独特的视角,向Java初学者讲述了如何才能真正理解和掌握Java语言。《Java入门1·2·3:一个老鸟的Java学习心得》充分考虑了初学Java...

    Java编程入门文档教程合集

    【】Java入门深入理解嵌套类和内部类【】Java和JSP编程的六个常见问题【】JAVA基础知识【】Java编程语言.(第三版)【】Java设计模式-图解-附代码【】第1章【】编程必备Eclipse快捷键资源截图: 资源太大,传百度...

    Java入门1·2·3——一个老鸟的Java学习心得 高清pdf

    本书是一本与众不同的Java入门好书。作者以独特的视角,向Java初学者讲述了如何才能真正理解和掌握Java语言。本书充分考虑了初学Java语言的种种困难,讲解时细致入微,抽丝剥茧,层层推进,并采用对比、比喻和类比的...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...

    经典Java入门教程超清晰PDF

    经典Java入门教程超清晰PDF。包含:Java语言基础,编程环境的搭建,数据和运算符等基本的语法规则,再讲到数组,字符串,类;最后讲解了一些高级的编程技术:对象,包,继承,接口,内部内,线程等。绝对经典的入门级...

    java 入门ppt

    java 入门 ppt 1.java概述 2.java语言基础 3.面向对象的核心特征 4.接口、内部类和包 .... 13 综合应用设计

    java入门手机专卖店项目

    java入门手机专卖店项目,简单的添加修改删除数组数据

    《Java从入门到精通》

    java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中...

    java 编程入门思考

    7.6.9 为什么要用内部类:控制框架 7.7 构建器和多形性 7.7.1 构建器的调用顺序 7.7.2 继承和finalize() 7.7.3 构建器内部的多形性方法的行为 7.8 通过继承进行设计 7.8.1 纯继承与扩展 7.8.2 下溯造型与运行期类型...

    JAVA软件工程师_Java入门视频教程

    课程目标 1、精通JavaEE平台开发的JAVA软件工程师,能够胜任各种行业的企业级软件开发工作; 2、具备一年以上软件开发经验; 3、熟悉java软件开发流程;...[第80节] 1.9.3 内部类串讲 [第81节] 1.10.1职场写作力

    JAVA基础入门教程

    z 类的继承(抽象类、接口、包、内部类)、数组、字符串 z Java异常处理机制 z Java基本类库介绍 z Java多线程编程 z Java I/O 流(character Stream, byte Stream, serialization) z Java Collections Framework z ...

    java培训ppt及资料(入门级别)

    java入门级别的培训资料,适合初学者学习。内部包括ppt、实例代码等。

    java入门绝佳教材-长沙颖悟内部培训资料

    java入门绝佳教材-长沙颖悟内部培训资料 更多资源尽在 www 点 csyingwu 点 com

    完整版 Java初级教程 Java语言程序设计 第7章 Java中的常用类(共14页).ppt

    完整版 Java初级教程 Java语言程序设计 第6章 内部类和异常类(共22页).ppt 完整版 Java初级教程 Java语言程序设计 第7章 Java中的常用类(共14页).ppt 完整版 Java初级教程 Java语言程序设计 第8章 集合框架(共...

    java教程-每日一课,27天java从入门到进阶

    27天实现java从入门到进阶 第一天:语言环境 第二天:常量变量 第三天:流程控制 第四、五天:方法与数组 第六天:类 第七天:对象的出生 第八天:类与类继承 第九天:具体到抽象的升华 第10天:权限内部类包 第11天...

    Java初学者入门教学

    7.6.9 为什么要用内部类:控制框架 7.7 构建器和多形性 7.7.1 构建器的调用顺序 7.7.2 继承和finalize() 7.7.3 构建器内部的多形性方法的行为 7.8 通过继承进行设计 7.8.1 纯继承与扩展 7.8.2 下溯造型与运行期类型...

    java 入门基础教程笔记

    java 入门 基础 pdf格式 高清 新东方内部培训资料

    Java入门基础学习资料day11

    此java基础课程,适合0基础小白,课程一共11天...day11【final、权限、内部类、引用类型】 此课程全部课程资料获取: JavaEE基础学习资料地址汇总:https://blog.csdn.net/weixin_46271129/article/details/133979063

Global site tag (gtag.js) - Google Analytics