Java 中的 匿名类
什么是内部类?
在一个类中定义另一个类,这样定义的类称为内部类。包含内部类的类称为内部类的外部类。
如果想要通过一个类来使用另一个类,可以定义为内部类。
内部类的外部类的成员变量在内部类仍然有效,内部类中的方法可以调用外部类的方法。不论静态还是非静态的,内部类都可以直接调用外部类中的属性。

内部类的类体中不可以声明类变量和类方法。

内部类可以由外部类使用外部类中在函数中创建内部类的对象完成。

如果内部类的权限是非私有的,非静态的,就可以在其外部其他程序中被访问到,通过创建外部类对象访问内部类

如果内部类是静态的,非私有的,静态成员可以直接类名调用,非静态成员通过创建外部类对象使用。

class Outer{
int a=5;
static int b=6;
void show() {
System.out.println("hello world");
}
class Inner{
void use() {
System.out.println(a);//
System.out.println(b);//
show();//hello world
}
}
void create() {
new Inner().use();
}
}
public class Demo {
public static void main(String[] args) {
new Outer().create();
Outer.Inner oi=new Outer().new Inner();
oi.use();
}
}
内部类的字节码不一样,编程外部类$内部类名


将内部类定义在局部位置上。可以访问外部类的所有成员,如果内部类是静态的,那么声明周期与普通的 static 没有区别。
匿名类
匿名类:就是没有名称的类,其名称由Java 编译器给出,匿名类就是利用父类的构造函数和自身类体构成的一个类。

父类是子类集成或者要实现的外部类或者接口。
匿名类可以继承父类的方法,也可以重写父类的方法。
匿名类可以访问外部类的成员变量和方法
匿名类由于是一个 new 的结果,所以其实可以赋值给一个父类的对象。分为俩类:成员匿名与局部匿名类

Java 中的 匿名类的更多相关文章
- Java中的匿名类
我们知道接口一般用于定义一种规范或操作协议,然后子类实现接口的所有功能.如下面的简单代码: 定义IMessage接口 package org.lyk.entities; public interfac ...
- java内部类以及匿名类
内部类 一个类内部定义的类称为内部类. 内部类允许把逻辑相关的类组织在一起,并控制内部代码的可视性. 内部类与外部类的结构层次如下. 顶层类:最外层的类 外部类:内部类所在的类 内部类:类内部定义的类 ...
- Java中的Unsafe类111
1.Unsafe类介绍 Unsafe类是在sun.misc包下,不属于Java标准.但是很多Java的基础类库,包括一些被广泛使用的高性能开发库都是基于Unsafe类开发的,比如Netty.Hadoo ...
- 2019.12.12 Java的多线程&匿名类
Java基础(深入了解概念为主) 匿名类 定义 Java匿名类很像局部或内联系,只是没有明细.我们可以利用匿名类,同时定义并实例化一个类.只有局部类仅被使用一次时才应该这么做. 匿名类不能有显式定义的 ...
- 带有静态方法的类(java中的math类)
带有静态方法的类通常(虽然不一定是这样)不打算被初始化. 可以用私有构造函数来限制非抽象类被初始化. 例如,java中的math类.它让构造函数标记为私有,所以你无法创建Math的实例.但Math类却 ...
- java中的File类
File类 java中的File类其实和文件并没有多大关系,它更像一个对文件路径描述的类.它即可以代表某个路径下的特定文件,也可以用来表示该路径的下的所有文件,所以我们不要被它的表象所迷惑.对文件的真 ...
- Java基础(43):Java中的Object类与其方法(转)
Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. O ...
- java中基于TaskEngine类封装实现定时任务
主要包括如下几个类: 文章标题:java中基于TaskEngine类封装实现定时任务 文章地址: http://blog.csdn.net/5iasp/article/details/10950529 ...
- Java中遍历实体类(处理MongoDB)
在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中:因此,对于遍历实体类能够与数据库中的一行数据对应起来. 我是使用的环境是Spring boot,访问的数据库时MongoDB 实体类遍历 ...
随机推荐
- sql查询 ——排序
-- 排序 -- order by 排序 默认为升序 -- asc 升序 -- desc 降序 -- 查询身高 分别用升序和降序 select *from student order by high ...
- 关于Synchronized研伸扩展
代码1 synchronized方法 synchronized void method(){ .......... } 代码2 synchronized代码块 synchronized (obj){ ...
- P1028 数的计算( 记忆剪枝 )
题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数 n ): 先输入一个自然数 n(n≤1000),然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自然数,但该自然数 ...
- vue 学习3
在 2.5.0 及以上版本中,如果你使用了单文件组件 $children,$slots,$attrs .... $attrs 可以透传props 注意.模板标签上有:属性="a", ...
- CF468A | 24 Game 找规律+打表
(翻译版本来自 Luogu by lonelysir ) 题目描述 小X一直很喜欢一个纸牌游戏:"24点",但最近他发现这个游戏太简单了,所以他发明了一个新游戏. 你有一个整数序列 ...
- 深入浅出Mybatis系列二-配置简介(mybatis源码篇)
注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(一)---Mybatis入门>, ...
- JavaScript-事件类型
DOM3事件类型: 1.UI事件:当用户与页面上的元素交互时触发 a.DOMActivate:元素已经被用户操作激活. b.load:(1)页面完全加载:window触发. (2)所有框架加载完毕:框 ...
- linux - 服务器性能评估
影响Linux服务器性能的因素 cpu 内存 磁盘IO 网络IO 系统性能评估标准 影响性能因素 好 坏 糟糕 CPU user% + sys%< 70% user% + sys%= 85% u ...
- 曼孚科技:AI领域3种典型的深度学习算法
深度学习(Deep Learning)是机器学习(Machine Learning)领域中一个新的研究方向,引领了第三次人工智能的浪潮. 本文整理了深度学习领域3种典型的算法,希望可以帮助大家更好地 ...
- Laravel中使用QRcode自制二维码
一.配置 1.在项目根目录输入命令 composer require simplesoftwareio/simple-qrcode 1.3.* 2.在config/app.php 的 provider ...