【JAVA学习】匿名内部类只能使用一次,由匿名内部类实例的对象可以使用多次

Java内部类中的匿名内部类简介及与匿名对象的区别 匿名内部类(没有类名) 一、因为在创建匿名内部类的时候,会立即创建它的实例,可知匿名内部类不能是抽象类,所以其必须继承一个抽象类或者实现一个接口。 二、匿名内部类没有类名,因此没有构造方法。 三、匿名内部类访问的外部类成员变量或成员方法必须用static修饰; 四、匿名内部类不能定义任何静态成员、方法。 五、内部类可以访问外部类私有变量和方法。 当匿名内部类和外部类有同名变量(方法)时,默认访问的... 阅读详情

匿名内部类只能使用一次,由匿名内部类实例的对象可以使用多次

如理解有误,欢迎指出!

基本定义

一个A类的内部又嵌套了另一个B类,此时A称为外部类,B称为内部类;匿名类一般定义于外部类的方法中,并且没有类名;
此处引用B站韩顺平老师的课件截图

IA tiger = new IA() {
@Override
public void cry() {
System.out.println("老虎叫唤...");
}
};

原因

jdk在创建匿名内部类后马上实例对象,在计算机底层会分配一个类名,如AAA@1(AAA为外部类名)的类名,但是仅仅是个临时类名,无法使用new AAA@1()实例一个对象,底层创建AAA@1类,再返回一个对象,紧接着这个类马上就没了。
类在定义的时候一般是没有分配存储空间的,仅仅将类所定义的数据结构保存下来,可以将类理解为一种数据类型,就当我们定义一个int类型,在数据库中是不会占用空间的,除非赋值,而内部类也一样,声明(实例化)一个对象,这个对象会占用空间,因此声明后的对象(这里是tiger)可以通过对象名反复调用,而这个匿名类,因为没有名称,又不占用系统空间,仅仅是一个临时的结构,所以只能使用一次。

/*

我们看底层 会分配 类名 xxx

class xxx implements IA {
@Override
public void cry() {
System.out.println("老虎叫唤...");
}
}
*/

具体代码实现有时间补充。。。

高精地图构建:Lidar SLAM与视觉SLAM对比 高精地图构建:Lidar SLAM与视觉SLAM对比​ ,人工智能,计算机视觉,大模型,AI,本文围绕高精地图构建,对比 Lidar SLAM 与视觉 SLAM。Lidar SLAM 通过激光获取点云数据,精度高、环境适应性强但成本高、数据量大;视觉 SLAM 利用图像,成本低、信息丰富却受光照影响大、深度获取难。还解析了 SLAM、点云等关键概念,介绍了两者融合趋势、应用案例、技术挑战及未来方向,也给出常见问题解答,为相关领域应用与学习提供参考。 阅读详情

相关推荐

通达信源码-金牛暴起

趋势1:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1) AND SJTJ,DOTLINE,COLORGRAY;谷:=(((DD-LLV(DD,21))/(HHV(DD,21)-LLV(DD,21)))*(4))*(25);{0,25指高度};

qq_57222058的博客 3515

Java 匿名内部类

文章目录匿名内部类(最重要)匿名内部类的注意事项类作为成员变量的类型接口作为成员变量的类型接口作为方法的参数和返回值 匿名内部类(最重要) 如果接口的实现类(或者是父类的子类)只需要使用唯一的一次,那么这种情况下就可以省略掉该类的定义,而改为使用匿名内部类 匿名内部类的定义格式: 接口名称 对象名 = new 接口名称 { //覆盖重写所有抽象方法 }; 匿名内部类的注意事项 对格式new 接口名称(){...}进行解析: 1、new代表创建对象的动作 2、接口名称就是匿名内部类需要实现那个

m0_51045721的博客 203

基于Playwright的雪球网股票情绪数据自动化采集实战

网络爬虫是自动化获取互联网公开数据的关键技术,其核心原理在于模拟浏览器行为或直接发送HTTP请求以解析网页内容。在金融科技与量化分析领域,实时、稳定的数据源具有极高的技术价值,能够为市场情绪分析、因子挖掘提供基础。面对采用动态加载、复杂反爬机制的现代单页应用,传统的请求库与Selenium方案在稳定性与隐蔽性上面临挑战。本文聚焦于利用Playwright这一现代浏览器自动化工具,通过模拟真实用户交互、监听网络请求,构建一个能够稳定采集雪球社区实时讨论热度的解决方案。该方案不仅解决了动态内容渲染问题,还通过请

weixin_42529328的博客 585

关于JAVA中匿名内部类的使用

匿名内部类:没有名字的类。 1.匿名内部类只能使用一次,它通常用来简化代码编写。 2.匿名内部类不能重复使用。 3.从定义看,匿名内部类必须继承一个父类,或实现一个接口,但最多只能继承一个父类,或实现一个接口。 4.匿名内部类不等定义构造器,因为匿名内部类没有类名,所以无法定义构造器,但匿名内部类可以定义实例初始化块。 Eg: interface Product

maozhennba3的博客 549

【深度学习】通俗易懂讲解循环神经网络LSTM

目录 1、循环神经网络(Recurrent Neural Networks) 2、长依赖存在的问题 3、LSTM 网络 4、LSTMs的核心思想 5、一步一步理解LSTM 6、LSTM的变种 7、总结 1、循环神经网络(Recurrent Neural Networks) 人对一个问题的思考不会完全从头开始。比如你在阅读本片文章的时,你会根据之前理解过的信息来理解下面看到的文字。...

Nieson2012的专栏 2728

跨域问题 - 其他 method 都没有跨域问题,只有delete有跨域的问题

跨域的配置等一切正常,GETPOSTPUTOPTIONS都可以正常访问, 唯独有一个DELETE有跨域的问题, 经过排查发现这个DELETE请求有body, 经过一系列排查, 发现头部有一个不太正常的值是为了避免浏览器的影响, 直接在 postman 中新建一个请求, 竟然也有跨域的问题, 后来把的值改成了请求就可以正常调用了.

galoiszhou的博客 527

面向对象 上(四)

java面向对象

m0_45283400的博客 548

基于NXP BFU730F的宽带WiFi LNA设计:从原理到实测的完整指南

低噪声放大器(LNA)是无线通信接收链路中的关键器件,其性能直接决定了系统的接收灵敏度。LNA的核心原理是在放大微弱信号的同时,尽可能降低自身引入的噪声,并保持良好的线性度以应对强干扰。在宽带应用场景下,如覆盖2.4GHz至5.9GHz的现代WiFi系统,设计需在宽带匹配、噪声优化和增益平坦度之间取得精妙平衡。本文以NXP的BFU730F SiGe:C HBT晶体管为核心,深入解析一种采用电阻反馈和LC匹配网络的经典宽带LNA架构。该设计通过优化反馈网络,在宽达3.5GHz的频带内实现了优异的噪声系数(低至

weixin_33587161的博客 326

Java中的匿名类和匿名对象

匿名解释 匿名就是没有名字的对象,在创建对象时,只通过new的动作在堆内存开辟空间,却没有把堆内存空间的地址值赋值给栈内存的某个变量用以存储 匿名类/对象其实就是类/对象,对象具有的功能匿名类/对象都具有,只不过有名字的类/对象可以重复使用,匿名类/对象只能用一次罢了。 匿名类/对象特点 1、由于我们没有记录堆内存对象的地址值,所以只能用一次,再次使用就找不到了 2、匿名对象的好处就是使用完毕就是垃圾,可以在垃圾回收器空闲时回收,节省内存空间 代码演示 public cla..

m0_58052874的博客 2074

ultralytics.data.utils——utils.py子模块代码详读

ultralytics.data.utils——utils.py子模块代码详读

Together_CZ的博客 1720

【笔记篇】Davinci Configurator EcuM模块

autosar ecum模块简介

weixin_47571898的博客 1268

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

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

weixin_41844824的博客 4543

2、TrustZone(内含链接)——长期学习内容

ARM系列学习路径整理,希望对大家有用。

HoneyIC的博客 232

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

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

y2227605053的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java基础之匿名内部类,匿名内部类是什么?为什么要用匿名内部类,匿名内部类详解。

Java基础之匿名内部类,匿名内部类是什么?为什么要用匿名内部类,匿名内部类详解。 什么是匿名内部类? 顾名思义 匿名 就是没有名字,一个没有名字的内部类,称为匿名内部类。 下面先看一个例子,比如说你想和你的女朋友去看春节档的《唐人街探案三》 这个时候我们要先定义一个接口,去看唐探3的接口 public interface MyInterface { // 看电影的抽象方法 void watchFilm(); } OK!现在我们有了一个接口,接口里面有一个看电影的抽象方法。而现在你要去看电

weixin_46066689的博客 3879

android 蓝牙通讯demo

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

Java匿名内部类只可使用一次的理解

匿名内部类只能使用一次,就不能在使用。 为了验证“只能使用一次的实际含义,首先在程序中实例化了两个对象。并且在相应的类中加入了实现接口的匿名内部类: package com.Anonymouse; public class AnonymousInnerClass { public static void main(String[] args) { Outer04 outer04 = new Outer04(); outer04.method(); O

qq_18995321的博客 1334

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java匿名内部类及匿名对象

如果接口的实现类(或者是父类的子类)只需要使用唯一的一次, 那么这种情况下就可以省略掉该类的定义,而改为使用【匿名内部类】。(匿名内部类就是不用在新的文件中写它的实现接口类而已) 匿名内部类的定义格式: 接口名称 对象名 = new 接口名称() { // 覆盖重写所有抽象方法(要实现完该接口所有抽象方法) }; (这里;要加上,两个接口名称是一样的) interface A{ public void noname(); } public class Test { public stat

Alla 1282

Java中匿名对象和匿名内部类总结

一、匿名对象 匿名对象是指在创建对象时,只有创建对象的语句,却没有把对象地址赋值给某个变量,如:对于已存在的Student类: 创建一个普通对象 Student st=new Student(); 项目

qq_43788522的博客 1339

Java关于多次实例化对象,static修饰的静态变量的变化

今天恰巧学习到静态变量与静态方法相关的知识,然后却因为这个代码陷入了沉思 public class Post { private String title; private String content; public static int count = 0; public Post(){ count++; } } 每个Post实例都独立的拥有title和content属性,此时修改这两个字段的值 对其他Post实例不会有影响

叫我霍小弟的博客 3156

java 匿名内部类如何引用外部类实例对象

Java匿名内部类如何引用外部类实例对象 在Java编程中,匿名内部类是一种没有名称的内部类,它通常用于实现事件监听器或回调接口。然而,在使用匿名内部类时,我们经常需要引用外部类的实例对象。本文将通过一个实际问题来探讨如何在Java匿名内部类中引用外部类的实例对象,并提供相应的示例代码。 问题背景 假设我们有一个Perso...

weixin_41380889的博客 248

Java(匿名内部类)

如果接口的实现类(或者是父类的子类)只需要使用唯一的一次, 那么这种情况下就可以省略掉该类的定义,而改为使用【匿名内部类】。 匿名内部类的定义格式: 接口名称 对象名 = new 接口名称() { // 覆盖重写所有抽象方法 }; 对格式“new 接口名称() {...}”进行解析: 1. new代表创建对象的动作 2. 接口名称就是匿名内部类需要实现哪个接口 3. {...}这才是...

Valentino112358的博客 2006

Java学习-匿名内部类

/* 如果接口的实现类(或者是父类的子类)只需要使用唯一的一次, 那么这种情况下就可以省略掉该类的定义,而改为使用【匿名内部类】。 匿名内部类的定义格式: 接口名称 对象名 = new 接口名称() { // 覆盖重写所有抽象方法 }; 对格式“new 接口名称() {…}”进行解析: new代表创建对象的动作 接口名称就是匿名内部类需要实现哪个接口 {…}这才是匿名内部类的内容 另外还要注意...

qq_44813352的博客 306

java的匿名内部类-使用new对象后接大括号{}

【代码】java使用new对象后接大括号{}

luyao3038的博客 1361

Java学习笔记——匿名内部类

在学习Java匿名内部类过程中的笔记

weixin_44456914的博客 1922

Java基础(匿名内部类的注意事项)

对格式"new" 接口名称() { …}进行解析; 1.new代表创建对象的动作 2.接口名称就是匿名内部类需要实现哪个接口 3.{ … } 这才是匿名内部类的内容 另外还要注意几点问题 1.匿名内部类,在创建对象的时候,只能使用唯一一次。 如果希望多次创建对象,而且类的内容一样的话,就必须使用单独定义的实现类。 2.匿名对象,在【调用方法】的时候,只能调用唯一一次。 如果希望同一个对象,调用多次...

Money_bagZ的博客 863

java try catch finally try finally只能出现一次 catch 可以出现多次

结论: ①try finally只能出现一次 ②catch可以出现多次,也可以省略 举例:finally出现多次,编译失败 package huafeng2019.github.io808; public class Main { public static void main(String[] args) { try { System.out.println(“A”); }finally { System.out.println("B"); }finally { System.out.printl

talenthua的博客 895
上一篇: 【JAVA学习】之abstract和static为什么不能一起使用
下一篇: 【JAVA学习】之枚举
是个鸡蛋
博客等级 码龄7年 6粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值