Java中的几种内部类

内部类,听名字就可以知道是什么意思,就是类里面的类。有成员内部类,静态内部类,局部内部类和匿名内部类。

下面说一个每种内部类的的使用。

一.  成员内部类

这样设置就是看看成员内部类可以调用外部类哪些变量和方法,输出的结果为

可以总结出一下的三条
       1  成员内部类可以等同于看作是成员变量
       2  不能有静态声明
       3  可以访问外部的所有数据

二. 静态内部类

看一下输出的结果

可以总结出

1  可以用访问控制权限的修饰符修饰。
    2   内部可以声明静态变量和成员变量,静态方法和成员方法。
    3  可以访问外部的静态变量和静态方法,不能访问成员变量和成员方法。

 三. 局部内部类

输出的结果为

成员方法里面,不可以声明静态变量的,局部内部类属于成员变量里面的,可以知道也不可以的,总结如下

1     局部内部类可以访问外部类所有权限的变量和方法

2     局部内部类可以里面不可以用静态变量和静态方法

四. 匿名内部类

指在方法调用时,方法的效用需要传入某个类对应的对象实参,但是也可以直接new一个某个类型的一个对象,这个对象没有名字

如果反方定义形参,一般是个接口,那么调用的时候,要用其实现类传入,但是我可以不实现这个实现类,而是直接new这个接口的对象,也可以。相当于省下了书写实现类和实例化实现类对象的代码,也可以这么说,直接实例化了一个类,只不过这个类和接口名相同。

谢谢观看 阿童木与小丸子的博客http://www.cnblogs.com/atongmyuxiaowanzi/

java中的几种内部类的更多相关文章

  1. Java中的四种内部类

    Java中有四种内部类: 成员内部类:定义在另一个类(外部类)的内部,而且与成员属性和方法平级,故称成员内部类.类比于外部类的非静态方法,如果用static修饰就变成了静态内部类 静态内部类:使用st ...

  2. java中的四种内部类使用(1)

    内部类 (一) 概述 把类定义在另一个类的内部,该类就被称为内部类. 举例:把类Inner定义在类Outer中,类Inner就被称为内部类. class Outer { class Inner { } ...

  3. java中的几种单例模式

    目前比较常见的有4种(DCL为懒汉模式的线程安全版本). 单例模式的实现一般需要满足以下条件: 1.构造方法私有化,实例属性私有化. 2.必须仅在类的内部完成实例的初始化过程. 3.提供公共静态方法, ...

  4. JAVA基础学习之throws和throw的区别、Java中的四种权限、多线程的使用等(2)

    1.throws和throw的区别 throws使用在函数外,是编译时的异常,throw使用在函数内,是运行时的异常 使用方法 public int method(int[] arr) throws ...

  5. Java中的五种单例模式实现方法

    [代码] Java中的五种单例模式实现方法   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 ...

  6. JAVA中的四种引用以及ReferenceQueue和WeakHashMap的使用示例

    简介: 本文主要介绍JAVA中的四种引用: StrongReference(强引用).SoftReferenc(软引用).WeakReferenc(弱引用).PhantomReference(虚引用) ...

  7. Java中的四种引用

    引用定义 实际上,Java中存在四种引用,它们由强到弱依次是:强引用.软引用.弱引用.虚引用.下面我们简单介绍下这四种引用: 强引用(Strong Reference):通常我们通过new来创建一个新 ...

  8. java中的几种架构对象(PO,VO,DAO,BO,POJO)

    java中的几种对象(PO,VO,DAO,BO,POJO)   一.PO :(persistant object ),持久对象 可以看成是与数据库中的表相映射的java对象.使用Hibernate来生 ...

  9. JAVA中的四种JSON解析方式详解

    JAVA中的四种JSON解析方式详解 我们在日常开发中少不了和JSON数据打交道,那么我们来看看JAVA中常用的JSON解析方式. 1.JSON官方 脱离框架使用 2.GSON 3.FastJSON ...

随机推荐

  1. Android设置TextView行间距(非行高)

    Android设置TextView行间距(非行高) Android系统中TextView默认显示中文时会比较紧凑,不是很美观. 为了让每行保持一定的行间距,可以设置属性android:lineSpac ...

  2. repeated-substring-pattern

    https://leetcode.com/problems/repeated-substring-pattern/ 下面这个方法,开始我觉得挺好.可惜还是超时了.后来我就加了一个剪枝策略,只有长度能够 ...

  3. mt-datetime-picker type="date" 时间格式 bug

    1.mint-ui 中 mt-datetime-picker 组件,存在日期格式 bug <!-- 日期选择器 --> <template> <div class=&qu ...

  4. Sales Team 仪表盘

                实际设定值         仪表定义     <div class="oe_center" t-if="record.invoiced_ta ...

  5. Java中HashMap遍历的两种方法(转)

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  6. c# vitural

    virtual关键字用于指定属性或方法在派生类中重写. 默认情况下,派生类类从其基类继承属性和方法,如果继承的属性或方法需要在派生类中有不同的行为,则可以重写它,即可以在派生类中定义该属性或方法的新实 ...

  7. 设置安卓开机动画、开机logo

    我们要修改的是system>media文件夹下的bootanimation.zip(手机开机动画)这个文件 先来讲讲这个文件结构:该zip解压后得到两个文件, 第一个目录存放了开机时播放的图片( ...

  8. python訪问redis

    python訪问redis 1 Linux上安装redis a) 下载 $ wget http://download.redis.io/releases/redis-3.0.5.tar.gz b) 编 ...

  9. python--多种程序分析(2)

    1.文件操作有哪些模式?请简述各模式的作用 r模式只读  w模式只写 a模式只添加   r+可读可写  w+可写可读  a+可读可添加   rb  二进制只读  wb 二进制只写   ab 二进制添加 ...

  10. C#XML的序列化与反序列化

    要序列化的对象的类: [Serializable]public class Person{private string name;public string Name{get{return name; ...