Java的四种内部类

Java内部类中的局部内部类(方法内部类) Java内部类定义在局部位置上,可以分为: 局部内部类(有类名) 局部内部类是指在一个方法中定义的内部类。适合那种只需要使用一次的类。比如:键盘监听操作等等。这种内部类是局部的,实际上和局部变量有点类似,是定义在方法中的,不过在实际开发中,对于局部内部类的使用是很少的。~ 代码如下: public class Demo { public void Hello() { class Inner {... 阅读详情

一.常规内部类:常规内部类没有用static修饰且定义在在外部类类体中。

1.常规内部类中的方法可以直接使用外部类的实例变量和实例方法。 2.在常规内部类中可以直接用内部类创建对象

public static void main(String[] args) {

MyOuter mo = new MyOuter();// 使用外部类构造方法创建mo对象

MyOuter.MyInner inner = mo.new MyInner();//常规内部类需要通过外部类的实例才能创建对象,与实例变量需要通过对象来访问相似

// 创建inner对象

inner.innerMethod();

二.静态内部类:与类的其他成员相似,可以用static修饰内部类,这样的类称为静态内部类。静态内部类与静态内部方法相似,只能访问外部类的static成员,不能直接访问外部类的实例变量,与实例方法,只有通过对象引用才能访问。

3.由于static内部类不具有任何对外部类实例的引用,因此static内部类中不能使用this关键字来访问外部类中的实例成员,但是可以访问外部类中的static成员。这与一般类的static方法想通

三.局部内部类:在方法体或语句块(包括方法、构造方法、局部块或静态初始化块)内部定义的类成为局部内部类。

局部内部类不能加任何访问修饰符,因为它只对局部块有效。

1.局部内部类只在方法体中有效,就想定义的局部变量一样,在定义的方法体外不能创建局部内部类的对象

2.在方法内部定义类时,应注意以下问题: 1.方法定义局部内部类同方法定义局部变量一样,不能使用private、protected、public等访问修饰说明符修饰,也不能使用static修饰,但可以使用final和 abstract修饰

2.方法中的内部类可以访问外部类成员。对于方法的参数和局部变量,必须有final修饰才可以访问。

3.static方法中定义的内部类可以访问外部类定义的static成员

public class Jubu {

private int size=5,y=7;

public Object makeInner(int localVar){

final int finalLocalVar=localVar; //创建内部类,该类只在makeInner()方法有效,就像局部变量一样。在方法体外部不能创建MyInner类的对象

class MyInner{ int y=4;

四.匿名内部类:定义类的最终目的是创建一个类的实例,但是如果某个类的实例只是用一次,则可以将类的定义与类的创建,放到与一起完成,或者说在定义类的同时就创建一个类

以这种方法定义的没有名字的类成为匿名内部类。 声明和构造匿名内部类的一般格式如下:

new ClassOrInterfaceName(){ /类体/ }

1.匿名内部类可以继承一个类或实现一个接口,这里的ClassOrInterfaceName是匿名内部类所继承的类名或实现的接口名。但匿名内部类不能同时实现一个接口和继承一个类,也不能实现多个接口。如果实现了一个接口,该类是Object类的直接子类,匿名类继承一个类或实现一个接口,不需要extends和implements关键字。

2.由于匿名内部类没有名称,所以类体中不能定义构造方法,由于不知道类名也不能使用关键字来创建该类的实例。实际上匿名内部类的定义、构造、和第一次使用都发生在同样一个地方。此外,上式是一个表达式,返回的是一个对象的引用,所以可以直接使用或将其复制给一个对象变量。例:

TypeName obj=new Name(){ /此处为类体/ } 同样,也可以将构造的对象作为调用的参数。

例:

someMethod(new Name(){ /此处为类体/ });

ADXL355 STM32 HAL 库 SPI 驱动实战:从零构建高精度加速度数据采集系统 本文详细介绍了如何使用STM32 HAL库通过SPI接口驱动ADXL355高精度加速度计,构建稳定可靠的数据采集系统。从硬件连接到寄存器配置,再到数据采集与处理,提供了完整的实战代码和优化技巧,特别适合工业级振动监测等应用场景。 阅读详情

相关推荐

STM32使用 jansson 处理 Json格式字符

STM32 Json 字符的创建和解析1、Json简介2、jansson库的下载安装和报错解决2.1、下载安装2.2、STM32工程文件中导入jansson库2.3、报错解决2.4、修改堆栈空间3、Json 字符的创建4、Json 字符的解析4.1 纯键值对4.2、键的值是一个对象4.3、键的值是一个数组   STM32处理json字符串一般不常见,大部分都是不需要处理的数据,但是在一些通信中需要处理上传或者下传的数据,就别比如在物联网中,有一部分数据就是以json格式传输的,那么就需要对数据经行解析。我简

青烨慕容 7424

java四种内部类详解

一般来说,有4中内部类:常规内部类、静态内部类、局部内部类、匿名内部类。  一.常规内部类:常规内部类没有用static修饰且定义在在外部类类体中。   1.常规内部类中的方法可以直接使用外部类的实例变量和实例方法。   2.在常规内部类中可以直接用内部类创建对象   3.代码如下:  public class MyOuter {  private int x = 100;  //

maguanghui_2012的专栏 778

LM Studio中文版零基础入门:从安装到模型下载的保姆级教程(附国内镜像源配置)

本文提供LM Studio中文版的零基础入门教程,涵盖从软件安装、中文界面切换到国内镜像源配置的全流程。特别针对模型下载速度慢的问题,详细介绍了如何通过修改配置文件使用国内镜像站,并推荐适合新手的入门模型及硬件配置建议,帮助用户快速上手本地大模型运行。

pz890123456的博客 2607

java内部类(一)

内部类 类的五大组成:属性,方法,构造器,代码块,内部类 内部类一般没有构造方法 内部类的分类: 定义在外部类局部位置上(比如方法内): 1)局部内部类(有类的名字) 2)匿名内部类(没有名字,重点) 定义在外部类成员(属性或者方法)的位置上的: 1)成员内部类(没有用static修饰) 2)静态内部类(使用static修饰) 局部内部类 例: class outer { private int x = 10; public void fun1() { //局部内部类通常定义在方法中 cl

lxw665的博客 187

Ollama最新快速上手指南:从安装到精通本地AI模型部署

想让Ollama跑你的"私房模型"?三种主流格式全支持,总有一款适合你!GGUF格式(推荐新手首选)创建Modelfile文件:执行创建命令:运行你的专属模型:PyTorch/Safetensors格式(适合进阶玩家)先用库测试模型能否正常加载确保模型结构完整后再导入Ollama官方文档有详细转换指南专业小贴士GGUF格式最轻量,PyTorch最灵活,Safetensors最安全遇到问题?试试用llama.cpp进行格式转换7B参数模型推荐使用q4_0量化级别想让AI用马里奥。

全世界的博客 2312

WIFI 相关的频偏调试以及天线调试记录

WIFI RF 相关的频偏调试以及天线调试 1,频率误差(Frequency Error) 频率误差(Frequency Error):表征射频信号偏离该信号所处信道中心频率的大小,单位PPM。频偏误差要求范围如下表。 频偏越小越好。PPM的计算公式如下: 问题: 我们ESP8089认证测试的时候频偏测试超了。需要修改哪些呢。 测试频率点在2.411865385GHz 宣称点:2.412GHz 频率偏移计算:{(2.412GHz-2.411865385GHz)÷2...

armkits的博客 1万+

Java——内部类

成员内部类是定义在一个外部类的成员位置的的类,没有 static 修饰。class MemberInnerClass { // 成员内部类静态内部类是定义在一个外部类的成员位置的的类,有 static 修饰。static class StaticNestedClass { // 静态内部类它的地位就相当于外部类的一个静态成员。局部内部类定义在方法、构造器或代码块内部,类似于方法的局部变量。它的作用域仅限于定义它的块中。class LocalInnerClassA { // 在构造器中定义局部内部类。

Stewie Lee的博客 1万+

Rk3568 百兆以太网RMII模式DTS配置详解

本文详细解析了RK3568芯片在百兆以太网RMII模式下的DTS配置方法,包括时钟树配置、PHY接口模式定义及实际工程中的进阶设置。通过实战案例和调试技巧,帮助开发者快速解决RMII模式下的常见问题,提升工业控制设备的网络稳定性。

weixin_29189377的博客 422

【Java|基础篇】内部类

内部类就是在一个类中再定义一个类,内部类也是封装的体现.它可以被声明为public、protected、private 或默认访问控制符。内部类可以访问外部类的所有成员变量和方法,包括私有成员。内部类可以用来实现一些特殊的功能,比如实现回调函数、事件处理等。常见的内部类包括实例内部类(成员内部类)、静态内部类、本地内部类、匿名内部类等。内部类在Java中的一个重要特性,要重点掌握实例内部类,静态内部类和匿名内部类.希望这篇文章能帮到你!专栏:《从零开始的Java学习之旅》在不断更新中,欢迎订阅!

云泽野の编程日记 1万+

Python数据可视化 Pyecharts 制作 Map 地图

大家好,我是Mr数据杨。想象一下,作为一名军师,如诸葛亮或郭嘉,'Map’就如同那战争的沙盘,兵马行动的轨迹,都需要准确的地图作为基础。‘基本设置’,就如同摆设这张战争沙盘,规定棋子的起始位置。‘数据配置选项’和’地图数据项’,就好比是军师们手中的情报,了解各路诸侯的兵力、粮草、地形等重要信息,以便于他们更好地布局。‘Demo’则代表着练兵之地,军师们可以在此基于已有数据,试验各种战术。

Mr数据杨 4万+

Ubuntu Rtx3090 Cuda11.7 安装 pytorch3d

pytorch ubuntu pytorch3d 安装

G果的博客 2274

java四种内部类

java四种内部类 成员内部类 静态内部类 局部内部类、 匿名内部类。 1.成员内部类 定义在一个类(外部类)的内部,而且与成员方法、属性平级的类叫成员内部类,…相当于外部类的非静态方法,如果被static修饰,就变成静态内部类了。 public class Person { private int age; private String name; public void run() { System.out.println("run......."); } class User{

罗罗的1024 869

Android 11多窗口+分屏+APP窗口嵌套TaskView实现原理一

然而随着版本的迭代升级,google对分屏的定制差异化也越来越大,Androd 11的分屏用的是split-screen-primary和split-screen-secondary的方式,在systemui中去实现的,其定制化的灵活度不是很高,很多业务都是放到sustemui或者fw去实现,但是随着版本的升高,后面出现了TaskView来替代了老版本的分屏方式,但是Task的核心原理其实和之前的方式是一样的,TaskView来实现分屏。

qq_18420641的博客 2616

Java 之四种内部类详解

内部类是 Java 中一种强大的机制,它可以帮助我们编写更简洁、更易于维护的代码。选择哪种内部类取决于具体的场景需求。

weixin_64178283的博客 1449

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java四种内部类的区别

内部类 内部类:在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括四种:成员内部类、静态内部类、匿名内部类、局部内部类。 (1)成员内部类 **定义:**成员内部类是最普通的内部类,它的定义为位于一个类的内部。 **权限:**成员内部类可以无条件访问外部类的所有成员属性和成员方法。 同名变量与方法:要注意的是,当成员内部类拥有和外部类同名的成员变量或者方法时,会发生隐藏现象,即默认情况下访问的是成员内部类的成员,如果要访问外部类的同名成员,ch需

bianbianshaonian的博客 1401

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java-四种内部类

成员内部类是定义在其他类的内部,并且与外部类的实例关联的类。成员内部类可以访问外部类的所有成员,包括私有成员。局部内部类是定义在方法或作用域内的类。它们只能在定义它们的方法或作用域内被访问,对外部类的其他部分是不可见的。匿名内部类是没有显式定义类的名称的内部类。通常用于创建一个实现某接口或继承某类的对象。静态内部类是定义在其他类内部的类,并使用static修饰符。与其他内部类不同,静态内部类不与外部类的实例相关联。

__猫玖__的博客 1092

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JAVA中的四种内部类

例如,在一个方法中,根据不同的参数值创建不同的匿名内部类对象来实现不同的功能,而这些对象都可以通过相同的接口或父类类型进行统一处理,进一步体现了多态的优势。比如,当一个类的内部有多个相互关联的静态类,且这些静态类需要有一定的封装性和独立性时,就可以使用静态内部类。匿名内部类是Java中一种特殊的内部类,它没有显式的类名,并且通常是在需要使用某个类的实例的地方直接定义并创建。- 外部类可以通过静态内部类的类名直接访问静态内部类的静态成员,也可以通过创建静态内部类的对象来访问其非静态成员。

2402_86100191的博客 522

Java中的四种内部类

四种内部类 在Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的 内部类一般来说包括这四种:静态内部类、匿名内部类、成员内部类和局部内部类,下面我们一一介绍。一. 成员内部类 成员内部类,顾名思义,是作为对象的一个成员来定义的类。 下面给出代码例子: public class Test2 { public int a = 0; public double b = 0.0; //成员内部类 class T1{

qq_49044908的博客 2478

java-四种内部类

内部类举例 java-四种内部类简介

m0_59605707的博客 86

java的四种内部类详解

类型静态成员访问外部类非静态成员实例化方式应用场景静态内部类✔️❌外部类名.静态内部类名独立关联外部类的工具类成员内部类❌(final除外)✔️外部类实例.new 成员内部类()需频繁访问外部类实例的场景局部内部类❌✔️(final或有效final方法内直接实例化仅在方法内使用的辅助类匿名内部类❌❌(需通过继承/实现间接访问)new 父类/接口(){...}一次性实现接口或继承类。

qq_45870087的博客 552

Java四种内部类

1、基本用法 1.实现多继承。 2.可以将一定类组织在一起同时对外界隐藏。 2、成员内部类 1.成员内部类依附于外部类存在,创建成员内部类,必须先创建一个外部类对象。 2.成员内部类可以定义变量,不允许定义常量和静态属性 3.成员内部类可以访问外部类所有成员和方法。 3、静态内部类 1.静态内部类不需要依附于外部类,不能使用外部类非静态属性和方法,只可以访问静态属性。 4、局部内...

qq_27243963的博客 335

java四种内部类区别_3.6 Java内部类四种类型

在Java中,内部类有四种不同的类型。这篇文章用四个简单的例子来阐明它们。1.静态嵌套类class Outer {static class Inner {void go() {System.out.println("Inner class reference is: " + this);}}}public class Test {public static void main(String[] a...

weixin_26872803的博客 317

JAVA四种内部类理解

在java中,将一个类定义在另一个类里面或者方法里,我们称之为内部类。 内部类可以拥有private访问权限、protected访问权限、public访问权限及包访问权限。如果成员内部类Inner用private修饰,则只能在外部类的内部访问,如果用public修饰,则任何地方都能访问;如果用protected修饰,则只能在同一个包下或者继承外部类的情况下访问;如果是默认访问权限,则只能在同一个...

lyly4413的博客 324

Java 中四种内部类

【代码】Java 中四种内部类。

m0_57836225的博客 279

Java的四种内部类各有其用,别再记错了

Java 内部类分为四种类型:成员内部类、局部内部类、匿名内部类和静态内部类。每种类型都有其特定的用途和优缺点,选择合适的类型可以提高代码的灵活性和可维护性。

QiuMing 737

Java四种内部类的总结

在Java语言中,可以把一个类定义到另外一个类的内部,在类里面的这个类就叫做内部类,外面的类称为外部类。在这种情况下,这个内部类可以被看成外部类的一个成员(与类的属性和方法类似)。还有一种类被称为顶层(top-level)类,指的是类定义代码不嵌套在其他类定义中的类。 内部类可以分为很多种,主要有以下四种:静态内部类(static inner class)、成员内部类(member innerclass)、局部内部类(local inner class)和匿名内部类(anonymous inner clas

david2000999的博客 158
上一篇: Java集合之Map
下一篇: Java虚拟机内存
Coder_py
博客等级 码龄10年 106粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值