内部类的概念:定义在其他类里面的类叫做内部类,包含内部类的类叫做外部类;

内部类的作用:内部类主要是用来描述一个事物存在于另一个事物里面,依赖于外部事物存在的;

内部类的格式:

内部类的分类:

成员内部类

非静态成员内部类:

1、非静态成员内部类必须依赖于外部类的对象使用,所以:

A、非静态内部类中不能定义静态成员,除非是常量变量;

B、在外部类的非静态函数中可以直接创建内部类的对象;

C、在外部类的静态函数中和外部类以外的类中都不能直接创建内部类对象,需要先创建外部类对象,然后通过外部类对象创建内部类对象;

2、在内部类中,可以直接使用外部类的所有成员;

3、如果内部类中定义了和外部类中一样的成员,优先使用内部类中的;要使用外部类中的成员,可使用 外部类类名.this.成员  的方式;

静态成员内部类:

1、静态内部类和外部类的对象无关,仅仅表示内部类和外部类的位置关系是嵌套关系,所以又被称为嵌套类;

2、静态成员内部类中可以书写所有成员;

3、外部类使用静态内部类,访问静态成员可以通过类名直接访问,访问非静态成员需要通过内部类对象访问;

4、静态内部类可以直接使用外部类的静态成员;非静态成员,需要通过外部类对象使用;

5、外部类以外的类要使用静态内部类的成员,和使用一般类一样,只是需要在类名前面加上外部类类名,表示内部类是外部类的成员;

私有成员内部类:

成员内部类作为外部类的成员,也可以使用访问权限修饰符修饰,如果使用private修饰,成员内部类就成为私有成员内部类,只能在外部类里面使用,不能在外部类以外的类中使用;

局部内部类

1、定义在函数里面的类叫做局部内部类;

2、在局部内部类中不能定义静态成员,除非是常量变量;

3、局部内部类只能在定义它的函数中使用,随着定义它的函数的执行而执行;

4、在非静态函数中的局部内部类,可以直接使用外部类的静态和非静态成员;

5、在静态函数中的局部内部类,就只能直接使用外部类的静态成员;要使用非静态成员,需要创建外部类的对象;

6、在局部内部类中要使用定义它的函数中的变量,需要将这个变量声明为final的;

匿名内部类:

当要使用一个类的子类(或接口的实现类)时,如果这个子类(或者实现类)只会使用一次,就没必要专门定义一个类出来,可以使用匿名内部类的方式调用;

匿名内部类的格式:

new 类名(){}:表示创建这个类的一个子类的对象;

new 接口名(){}:表示创建这个接口的一个实现类的对象;

JAVA内部类小结的更多相关文章

  1. Java内部类的使用小结

    转载:http://android.blog.51cto.com/268543/384844/ Java内部类的使用小结 内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同. *内部类可 ...

  2. (转载)Java内部类的使用小结

    原文摘自:http://android.blog.51cto.com/268543/384844/   内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同. *内部类可以是静态stati ...

  3. java 内部类 *** 最爱那水货

    注: 转载于http://blog.csdn.net/jiangxinyu/article/details/8177326 Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类.内部类又 ...

  4. Java内部类final语义实现

    本文描述在java内部类中,经常会引用外部类的变量信息.但是这些变量信息是如何传递给内部类的,在表面上并没有相应的线索.本文从字节码层描述在内部类中是如何实现这些语义的. 本地临时变量 基本类型 fi ...

  5. Java内部类详解

    Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...

  6. 黑马----JAVA内部类

    黑马程序员:Java培训.Android培训.iOS培训..Net培训 黑马程序员--JAVA内部类 一.内部类分为显式内部类和匿名内部类. 二.显式内部类 1.即显式声明的内部类,它有类名. 2.显 ...

  7. Java中文编码小结

    Java中文编码小结 1. 只有 字符到字节 或者 字节到字符 的转换才存在编码转码; 2. Java String 采用 UTF-16 编码方式存储所有字符.unicode体系采用唯一的码点表示唯一 ...

  8. java内部类和匿名内部类

    内部类即是包含在类里面的又一个类. java内部类分为: 成员内部类.静态嵌套类.方法内部类.匿名内部类 . 内部类的共性 (1).内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.clas ...

  9. Java内部类小程序(成员内部类,静态内部类,匿名内部类)

    /** * 测试java内部类(成员内部类,静态内部类,匿名内部类) * 局部内部类不常用,就不写了. * @package :java05 * @author shaobn * @Describe ...

随机推荐

  1. JavaScript设计模式 - 状态模式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 你想要的Python面试都在这里了【315+道题】

    写在前面 近日恰逢学生临近毕业,课程后期大家"期待+苦逼"的时刻莫过于每天早上内容回顾和面试题问答部分[临近毕业每天课前用40-60分钟对之前内容回顾.提问和补充,专挑班里不爱说话 ...

  3. Rabbitmq-direct演示

    在上一节中我们创建了一个日志系统.实现将日志消息广播给所有的cusumer. 在这片教程中,我们将为日志系统添加一个功能:仅仅订阅一部分消息.比如:我们可以直接将关键的错误类型日志消息保存到日志文件中 ...

  4. [Spark][Python]DataFrame select 操作例子

    [Spark][Python]DataFrame中取出有限个记录的例子 的 继续 In [4]: peopleDF.select("age")Out[4]: DataFrame[a ...

  5. 12.4 开课三个月(phpcms安装)

    cms的样式有很多种,我们学习的是phpcms,这些cms都是大同小异,学会了一种就可以使用其它的cms. PHPCMS是一款网站管理软件.该软件采用模块化开发,支持多种分类方式,使用它可方便实现个性 ...

  6. Nancy异步用法

    个人笔记,记录Nancy异步用法 基类,所有请求都将首先执行该类,并执行Before事件 namespace CxyAdvert.Base { public class BaseNancyModel ...

  7. Centos7.3下安装Jumpserver 1.0.0(支持windows组件)

    Jumpserver最新版本支持windows组件,废话不多介绍了,下面直接介绍下部署过程: 0)系统环境 CentOS 7.3 IP: 192.168.10.210 [root@jumpserver ...

  8. B树、B-树、B+树、B*树相关

    B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right): 2.所有结点存储一个关键字: 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树: 如: B ...

  9. Linux内核第三节 20135332武西垚

    总结部分: Linux内核源代码: Arch 支持不同cpu的源代码:主要关注x86 Init   内核启动的相关代码:主要关注main.c,整个Linux内核启动代码start_kernel函数 K ...

  10. springboot整合fastJson遇到重定向问题

    通过网上教程使用springboot整合fastJson后遇到页面重定向问题(使用的springboot版本是2.0.2.RELEASE ,其他的版本可能不会出现以下问题),如下图: 我的项目结构如下 ...