java中匿名内部类的使用

oscp备考,oscp系列——Djinn3靶场:ssti漏洞,pkexec提权 oscp备考,oscp系列——Djinn3靶场:ssti漏洞,pkexec提权难度简单偏上对于低权限shell获取涉及:ssti漏洞对于提权:pkexec提权。 阅读详情

之前总结内部类的使用时讲过匿名内部类的使用,但讲得不够详细,这次再总结一下,方便以后复习

一.匿名内部类的创建

new 父类构造器(参数列表)| 实现接口(){
	//匿名内部类的类体部分
}

当然,这里还可以创建一个父类的引用指向匿名内部类对象

父类名|接口名 引用变量 = new 父类构造器(参数列表)| 实现接口(){
	//匿名内部类的类体部分
}

但是一般没必要这么做,第一种会更加简洁

二.匿名内部类实例

下面看四个简单例子,通过这四个例子可以对匿名内部类的写法有个全面的认识

程序一:(该例没有使用匿名内部类)

abstract class Person{
	public abstract void eat(); //抽象方法默认为public
}
class Student extends Person{
	public void eat(){
		System.out.println("eat something");
	}
}
public class AnonymousInnerClassDemo01{
	public static void main(String[] args){
		Student std = new Student();
		std.eat();
	}
}

程序二:(通过第一种方式创建匿名内部类)

abstract class Person{
	public abstract void eat(); //抽象方法默认为public
}
public class AnonymousInnerClassDemo03{
	public void print(Person p){
		p.eat();
	}
	public static void main(String[] args){
		AnonymousInnerClassDemo03 aic = new AnonymousInnerClassDemo03();
		aic.print(new Person(){
			public void eat(){
				System.out.println("eat something");
			}
		});
		
	}
}

程序三:(第一种方式的另一种写法,这种写法会创建一个类,跟程序二原理一样)

abstract class Person{
	public abstract void eat(); //抽象方法默认为public
}
class Demo{
	public void print(Person p){
		p.eat();
	}	
}
public class AnonymousInnerClassDemo04{
	public static void main(String[] args){
		Demo d = new Demo();
		d.print(new Person(){
			public void eat(){
				System.out.println("eat something");
			}
		});
		
	}
}

程序四:(通过第二种方式创建匿名内部类)


abstract class Person{
	public abstract void eat(); //抽象方法默认为public
}
public class AnonymousInnerClassDemo02{
	public static void main(String[] args){
		Person p = new Person(){
			public void eat(){
				System.out.println("eat something");
			}
		};
		p.eat();
		
	}
}

其实,程序一就是另外几个程序的拆分形式

三.匿名内部类注意点

1.使用匿名内部类我们必须要继承一个父类或者实现一个接口,当然也仅能只继承一个父类或者实现一个接口

2.匿名内部类仅能被使用一次,创建匿名内部类时它会立即创建一个该类的实例,该类的定义会立即消失,所以匿名内部类不能重复使用

3.匿名内部类不能是抽象类,所以它必须要实现它的抽象父类或者接口里面所有的抽象方法

4.匿名内部类中不能定义构造函数,但可以用构造代码块初始化

5.匿名内部类不能存在任何的静态成员变量和方法,以前的博客中也说过

参考链接:

http://blog.youkuaiyun.com/chenssy/article/details/13170015#comments

http://www.cnblogs.com/nerxious/archive/2013/01/25/2876489.html


使用lighttpd和开发板进行交互 本文介绍了如何在嵌入式开发板上使用Lighttpd Web服务器实现硬件交互功能。主要内容包括:Lighttpd通过CGI程序间接控制硬件的基本原理;lighttpd.conf配置文件的详细解析;开发板文件目录结构设计;用C语言编写控制GPIO的CGI程序示例;网页调用CGI实现按钮触发控制的HTML代码;常见问题调试建议。最后通过效果图展示了网页按钮点击后成功控制LED灯的实际效果,验证了Lighttpd+CGI方案在嵌入式设备Web控制中的可行性。 阅读详情

相关推荐

超声信号处理——硬件电路中的混频应用

本文介绍了超声多普勒系统的信号处理原理。系统通过波形振荡器产生高频信号,经换能器转换为超声波发射,接收反射信号后与原始信号混频,利用三角函数的积化和差特性产生包含多普勒频移的低频差频信号和高频和频信号。通过低通滤波器滤除高频成分后,即可获得纯净的多普勒信号。这种处理方法将MHz级高频信号转换为可听低频信号,降低了系统复杂度与成本。数学推导表明,差频信号频率正好

fcxgfdjy的博客 1123

匿名内部类解说

匿名类是不能有名字的类,它们不能被引用,只能在创建时用New语句来声明它们。匿名类的声明是在编译时进行的,实例化在运行时进行,这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。 匿名类的目的是在某个地方需要特殊的实现,因此在该处编写其实现,并获取它的实例,调用它的方法。不要在匿名内部类编写其他的方法,是不可见的。 形式为:new <类或接口> <类的

Gzejia 586

电容式触摸抗干扰设计:工业环境下的实践方案

针对工业环境中电容式touch器件易受干扰的问题,分享实用的硬件布局与软件滤波方案,提升touch响应稳定性和可靠性。

weixin_35755562的博客 843

JAVA中内部类和匿名内部类的区别,分别在什么时候使用它们?

今天没事,抽出时间总结了一下很多开发人员都想弄明白的一些JAVA基础知识(内部类和匿名内部类)。 一、JAVA中内部类和匿名内部类的区别          内部类:内部类可以是static的或者非static的,static内部类只能包含静态方法和静态类变量,只能访问外部类的静态元素,内部类可以实例化,多次使用。         匿名内部类:它只能使用一次,不区分static和非static...

java践行之路的博客 927

B站李沐讲论文笔记AlexNet

B站李沐讲论文笔记AlexNet

夏知识不进脑子薇的博客 789

600份国家自然基金申报书--模板

600份国家自然基金申报书--模板

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 4186

Java 内部类,匿名内部类的使用方式和注意事项

&amp;quot;内部类&amp;quot;在java开发中的应用场景并不是很多,但面试中却或多或少的会涉及到,所以,今天小编就带大家来温习一下。 正文: “内部类&amp;quot;简单说就是在一个类的内部又定义了一个类,这个定义在已知类内部的类就称为&amp;quot;内部类”。由于是定义在一个已知类的内部,所以它既具备一个累的特征,又在很多方面的表现和普通类有不同。 下面,我打算从两个方面来讲解内部类的使用,并验证内部类的概念: 一、在普通类中定义的内部类(不

Java Punk 2334

【查找单入口空闲区域】-python实现-附ChatGPT解析

时间限制:1s 空间限制: 256MB 限定语言:不限题目描述:给定一个 m x n 的矩阵,由若干字符X’和 O构成,"X表示该处已被占据,O表示该处空闲,请找到最大的单入口空闲区域。空闲区域是由连通的O组成的区域,位于边界的O可以构成入口,单入口空闲区域即有且只有一个位于边界的o作为入口的由连通的O组成的区域如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。第一行输入为两个数字,第一个数字为行数m,第二个数字列数n,两个数字以空格分隔,1

sinat_29950703的博客 243

匿名内部类在Java中的使用场景与注意事项

匿名内部类是Java中一种简洁而强大的特性,通常用于简化代码,尤其是在需要创建一次性对象的时候。匿名内部类在Java编程中是一个非常有用的工具,特别是在需要简化代码的情况下。例如,在Android开发中,如果匿名内部类持有一个对Activity的引用,而这个Activity还没有被销毁,就可能导致内存泄漏。匿名内部类可以使代码更简洁,但也可能降低代码的可读性,因此在使用时需要权衡利弊。虽然匿名内部类可以简化代码,但它们也会降低代码的可读性,特别是当内部类体积较大时。在这个例子中,我们使用匿名内部类实现了。

技术研究中心 622

基于STM32L4XX、HAL库的AP6275S WIFI 模块驱动程序设计

支持802.11a/b/g/n/ac/ax (Wi-Fi 6)标准。// 这部分通常依赖于Broadcom提供的固件和驱动。// 这里需要添加Wi-Fi固件加载和初始化的代码。// 通常需要通过SDIO发送命令和接收响应。// 这里需要添加蓝牙HCI初始化代码。// 处理Wi-Fi和蓝牙数据。// 这里需要实现Wi-Fi连接逻辑。// 初始化SDIO和UART。// 确保蓝牙使能引脚已设置。// 关闭Wi-Fi和蓝牙。// 关闭Wi-Fi和蓝牙。// 打开Wi-Fi和蓝牙。// 初始化AP6275S。

zhusl6688的博客 277

展锐平台wifi连接性问题解决方案

对于断开连接的问题,需要从kernel log中确认下,是上 层主动发起的断开(会下发disconnect的命令),还是CP侧上报的断开事件。同学,别退出呀,我可是全网最牛逼的 WIFI/BT/GPS/NFC分析博主,我写了上百篇文章,请点击下面了解本专栏,进入本博主主页看看再走呗,一定不会让你后悔的,记得一定要去看主页置顶文章哦。1、出现wifi连接正常,但无法上网问题,首先确认其他手机是否可以正常上网,排除网络自身问题;3 路由器配置问题,出现过一个案例,恢复出场设置问题就解决了,具体根因。

手机-手表蓝牙开发工程师的博客 2022

匿名内部类

匿名内部类

weixin_69143897的博客 210

使用VNA(Vector Network Analyzer)对S参数进行去嵌(二)

无论是使用 EM 仿真工具创建的简化模型(如一段理想传输线)还是复杂模型用于测试夹具,现在都需要使用该 S 参数模型执行去嵌入过程。

小孟同学的博客 6108

java匿名内部类,什么是匿名内部类,如何定义匿名内部类,如何使用匿名内部类?

java匿名内部类什么是匿名内部类?匿名内部类的使用场景?匿名内部类如何创建?匿名内部类的实现和使用例1(实现接口)例2(继承类) 什么是匿名内部类? 匿名内部类,顾名思义,就是不知道这个类到底是什么名字,也就是不知道类名。 匿名内部类的使用场景? 匿名内部类适合创建那种只需要使用一次的类,也就是说创建一个匿名内部类,只需要用一次即可。 匿名内部类如何创建? new 类名(参数) | 实现接口...

y2227605053的博客 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【Java】匿名内部类的使用详解

匿名内部类是Java中的一种局部内部类,它没有显式的类名,通常用来实现接口或者继承一个类并重写其方法。匿名内部类是一个表达式,它创建了一个新的类的实例,并在声明时进行初始化。匿名内部类在Java中是一个强大的工具,它们允许开发者在不创建命名类的情况下实现接口或扩展类,简化了许多常见的编程任务。然而,随着Java 8及更高版本的引入,Lambda表达式和方法引用提供了更为简洁和现代的替代方案。匿名内部类用于实现接口或扩展类,适合用于一次性实现。

u013675821的博客 5286

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java中的匿名内部类使用方法详细讲解

匿名内部类是Java中一种强大而灵活的工具,特别适用于需要快速定义一次性类实例的场景,如事件处理、线程创建、集合排序和回调函数等。尽管Lambda表达式在某些情况下可以替代匿名内部类,但匿名内部类在复杂逻辑或多方法实现的场景中仍然不可或缺。匿名内部类是Java中的一种特殊类,它没有名称,通常用于创建一次性使用的类实例。内部类是定义在另一个类内部的类,可以访问外部类的成员。Java 8引入的Lambda表达式可以看作是匿名内部类的简洁替代,尤其是在函数式接口(只有一个抽象方法的接口)场景中。

cuijiying的博客 1503

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

JAVA匿名内部类使用

1.前言 匿名内部类在我们JAVA程序员的日常工作中经常要用到,但是很多时候也只是照本宣科地用,虽然也在用,但往往忽略了以下几点:为什么能这么用?匿名内部类的语法是怎样的?有哪些限制?因此,最近,我在完成了手头的开发任务后,查阅了一下JAVA官方文档,将匿名内部类的使用进行了一下总结,案例也摘自官方文档。感兴趣的可以查阅官方文档(https://docs.oracle.com/javase/tu...

u010280239的博客 363

Java 中匿名内部类的使用

【代码】Java 中匿名内部类的使用。

qq_52137265的博客 201

Java中匿名内部类的使用

1、匿名内部类的本质:     匿名内部类本质上是一个重写或实现了父类或接口的子类对象。  2、使用场景:     当类或接口类型作为参数传递时,可以直接使用匿名内部类方式创建对应的对象 3、匿名内部类嵌套使用 ① 需求:按main方法中给出的调用方式补全Class InnerClass中的代码,使得在控制台中能够输出HelloWorld。 //需求:按照要求,补齐代码 abst...

u013771764的博客 1万+

Java:如何使用匿名内部类

匿名内部类的定义、常用方法、构造器、传递参数、可视度及匿名内部类的缺陷。《Java 编程思想》

Rutile810的博客 970

Java中的匿名内部类及其使用技巧

前言在介绍匿名内部类之前,首先我们应该先来了解一下内部类及局部内部类: 内部类 内部类(inner class)是定义在另一个类中的类,内部类中的方法可以访问创建该内部类的类(我们称其为外围类 outer class)的域中所有数据(包括私有/private数据)。并且,内部类可以对同一个包中的其他类隐藏起来。 但是由于内部类是一种编译器现象,在虚拟机中只存在常规类文件,所以在编译过程中

tick_tock97的博客 2万+

java中为什么说匿名内部类只能使用一次

java中为什么说匿名内部类只能使用一次 首先了解一下类和对象(实例)的概念: 类:类是一个模板,是个抽象的概念,用来模拟一类事物,一旦定义了一个类,这个类就永远存在。在写代码的时候,我们都会写各种类,一般普通的类都会有类名,通过类名来创建实例。 对象:对象是类的一个实例,通常我们会通过new来创建一个类的实例,即对象。 为什么要先区分类和对象(实例)的概念? 因为这里所说的匿名内部类只能使用一次...

weixin_41844824的博客 4543

Java 快速理解匿名内部类,以及它的使用场景,注意事项

Java 快速理解匿名内部类 这篇文章主要讲解Java中匿名内部类的使用以及注意事项。匿名:没有名字的意思。内部类:写在其他类内部的类。匿名内部类的作用是简化代码。 原本我们需要创建子类或者实现类,去继承父类和实现接口,才能重写其中的方法。但是有时候我们这样做了,然而子类和实现类却只使用了一次(定义了一个对象)。这个时候我们就可以使用匿名内部类,不用去写子类和实现类,起到简化代码的作用。 匿...

执迷于技术和算法,让我们一起成长 2万+

Java匿名内部类和使用

一.匿名内部类 匿名内部类适合创建那种只需要一次使用的类,例如前面介绍命令模式时所需要的Command对象,匿名内部类的语法有点奇怪,创建匿名内部类时会立即创建一个该类的实例,这个类的定义立即消失,匿名内部类不能重复使用。 语法格式一般如下: //匿名类可以是实现接口 或则继承类 new 实现接口() | 父类构造器 (实参列表){   //匿名内部类的类体部分 } 从上面可以看出,匿名内部类必须继承一个父类,或者实现一个接口,但最多只能继承一个父类,或者实现一个接口。 关于匿名内部类还有如下两条规则

u013217730的博客 449

Java中匿名内部类的语法及使用

1.内部类: 什么是内部类? 在类的内部又定义了一个新的类,称为内部类。 内部类的分类: 静态内部类:类似于静态变量。 实例内部类:类似于实例变量。 局部内部类:类似于局部变量。 使用内部类编写的代码,可读性很差,能不用尽量不用。 测试代码 class A { //静态内部类 static class Inner1 { } //静态变量 static String country = "China"; //实例内部类 public class In

pipizhen_的博客 745

Java-匿名内部类的使用

匿名内部类的简单总结,欢迎批评指正!

m0_62558112的博客 466
上一篇: Java中instanceof关键字用法
下一篇: java中包装类及装箱拆箱
Jacky_Cmd
博客等级 码龄12年 84粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值