java中的几种内部类
Java中的几种内部类
内部类,听名字就可以知道是什么意思,就是类里面的类。有成员内部类,静态内部类,局部内部类和匿名内部类。
下面说一个每种内部类的的使用。
一. 成员内部类
这样设置就是看看成员内部类可以调用外部类哪些变量和方法,输出的结果为
可以总结出一下的三条
1 成员内部类可以等同于看作是成员变量
2 不能有静态声明
3 可以访问外部的所有数据
二. 静态内部类
看一下输出的结果
可以总结出
1 可以用访问控制权限的修饰符修饰。
2 内部可以声明静态变量和成员变量,静态方法和成员方法。
3 可以访问外部的静态变量和静态方法,不能访问成员变量和成员方法。
三. 局部内部类
输出的结果为
成员方法里面,不可以声明静态变量的,局部内部类属于成员变量里面的,可以知道也不可以的,总结如下
1 局部内部类可以访问外部类所有权限的变量和方法
2 局部内部类可以里面不可以用静态变量和静态方法
四. 匿名内部类
指在方法调用时,方法的效用需要传入某个类对应的对象实参,但是也可以直接new一个某个类型的一个对象,这个对象没有名字
如果反方定义形参,一般是个接口,那么调用的时候,要用其实现类传入,但是我可以不实现这个实现类,而是直接new这个接口的对象,也可以。相当于省下了书写实现类和实例化实现类对象的代码,也可以这么说,直接实例化了一个类,只不过这个类和接口名相同。
谢谢观看 阿童木与小丸子的博客http://www.cnblogs.com/atongmyuxiaowanzi/
java中的几种内部类的更多相关文章
- Java中的四种内部类
Java中有四种内部类: 成员内部类:定义在另一个类(外部类)的内部,而且与成员属性和方法平级,故称成员内部类.类比于外部类的非静态方法,如果用static修饰就变成了静态内部类 静态内部类:使用st ...
- java中的四种内部类使用(1)
内部类 (一) 概述 把类定义在另一个类的内部,该类就被称为内部类. 举例:把类Inner定义在类Outer中,类Inner就被称为内部类. class Outer { class Inner { } ...
- java中的几种单例模式
目前比较常见的有4种(DCL为懒汉模式的线程安全版本). 单例模式的实现一般需要满足以下条件: 1.构造方法私有化,实例属性私有化. 2.必须仅在类的内部完成实例的初始化过程. 3.提供公共静态方法, ...
- JAVA基础学习之throws和throw的区别、Java中的四种权限、多线程的使用等(2)
1.throws和throw的区别 throws使用在函数外,是编译时的异常,throw使用在函数内,是运行时的异常 使用方法 public int method(int[] arr) throws ...
- 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 ...
- JAVA中的四种引用以及ReferenceQueue和WeakHashMap的使用示例
简介: 本文主要介绍JAVA中的四种引用: StrongReference(强引用).SoftReferenc(软引用).WeakReferenc(弱引用).PhantomReference(虚引用) ...
- Java中的四种引用
引用定义 实际上,Java中存在四种引用,它们由强到弱依次是:强引用.软引用.弱引用.虚引用.下面我们简单介绍下这四种引用: 强引用(Strong Reference):通常我们通过new来创建一个新 ...
- java中的几种架构对象(PO,VO,DAO,BO,POJO)
java中的几种对象(PO,VO,DAO,BO,POJO) 一.PO :(persistant object ),持久对象 可以看成是与数据库中的表相映射的java对象.使用Hibernate来生 ...
- JAVA中的四种JSON解析方式详解
JAVA中的四种JSON解析方式详解 我们在日常开发中少不了和JSON数据打交道,那么我们来看看JAVA中常用的JSON解析方式. 1.JSON官方 脱离框架使用 2.GSON 3.FastJSON ...
随机推荐
- Android设置TextView行间距(非行高)
Android设置TextView行间距(非行高) Android系统中TextView默认显示中文时会比较紧凑,不是很美观. 为了让每行保持一定的行间距,可以设置属性android:lineSpac ...
- repeated-substring-pattern
https://leetcode.com/problems/repeated-substring-pattern/ 下面这个方法,开始我觉得挺好.可惜还是超时了.后来我就加了一个剪枝策略,只有长度能够 ...
- mt-datetime-picker type="date" 时间格式 bug
1.mint-ui 中 mt-datetime-picker 组件,存在日期格式 bug <!-- 日期选择器 --> <template> <div class=&qu ...
- Sales Team 仪表盘
实际设定值 仪表定义 <div class="oe_center" t-if="record.invoiced_ta ...
- Java中HashMap遍历的两种方法(转)
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...
- c# vitural
virtual关键字用于指定属性或方法在派生类中重写. 默认情况下,派生类类从其基类继承属性和方法,如果继承的属性或方法需要在派生类中有不同的行为,则可以重写它,即可以在派生类中定义该属性或方法的新实 ...
- 设置安卓开机动画、开机logo
我们要修改的是system>media文件夹下的bootanimation.zip(手机开机动画)这个文件 先来讲讲这个文件结构:该zip解压后得到两个文件, 第一个目录存放了开机时播放的图片( ...
- python訪问redis
python訪问redis 1 Linux上安装redis a) 下载 $ wget http://download.redis.io/releases/redis-3.0.5.tar.gz b) 编 ...
- python--多种程序分析(2)
1.文件操作有哪些模式?请简述各模式的作用 r模式只读 w模式只写 a模式只添加 r+可读可写 w+可写可读 a+可读可添加 rb 二进制只读 wb 二进制只写 ab 二进制添加 ...
- C#XML的序列化与反序列化
要序列化的对象的类: [Serializable]public class Person{private string name;public string Name{get{return name; ...