Java局部内部类原理与用法实例分析
本文实例讲述了Java局部内部类原理与用法。分享给大家供大家参考,具体如下:
一 点睛
如果把一个内部类放在方法中定义,那么这个内部类就是一个局部内部类,局部内部类仅在方法里有效。
由于局部内部类不能在外部类的方法以外的地方使用,因此局部内部类也不能使用控制符合static修饰符修饰。
如果需要用局部内部类定义变量、创建实例或派生子类,那么都只能在局部内部类所在的方法中进行。
二 代码
public class LocalInnerClass
{
public static void main(String[] args)
{
// 定义局部内部类
class InnerBase
{
int a;
}
// 定义局部内部类的子类
class InnerSub extends InnerBase
{
int b;
}
// 创建局部内部类的对象
InnerSub is = new InnerSub();
is.a = 5;
is.b = 8;
System.out.println("InnerSub对象的a和b实例变量是:"
+ is.a + "," + is.b);
}
}
三 运行
InnerSub对象的a和b实例变量是:5,8
四 说明
编译完成后,会生成LocalInnerClass.class、LocalInnerClass$1InnerBase.class和LocalInnerClass$1InnerSub.class三个文件,之所以局部内部类有数字是因为同一个类里可能有两个以上的同名的局部内部内(处于不同的方法中)。
局部内部内作用域太小,不利于多次复用,因此在开发中很少使用局部内部类。
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
相关文章
AQS(AbstractQueuedSynchronizer)抽象队列同步器及工作原理解析
AQS是用来构建锁或者其他同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的FIFO对列来完成资源获取线程的排队工作,并通过一个int类型变量表示持有锁的状态,本文给大家详细介绍下AQS抽象队列同步器的相关知识,感兴趣的朋友一起看看吧2022-03-03
Spring Boot 核心模块详解(12 个模块详解及作用说明)
和 Spring 框架一样,Spring Boot 框架也是由许多核心模块组成的,每个模块负责不同的功能点,本文讲着重于介绍 Spring Boot 相关的 12 个模块的作用和功能,感兴趣的朋友一起看看吧2025-04-04
SpringBoot+Redission实现排行榜功能的示例代码
这篇文章主要介绍了基于SpringBoot+Redission实现排行榜功能,实现一个排行榜,要求按照分数和达成这个分数的时间排序,即相同分数下,时间早的在上面,文中通过代码示例介绍的非常详细,需要的朋友可以参考下2024-05-05
Java concurrency线程池之线程池原理(三)_动力节点Java学院整理
这篇文章主要为大家详细介绍了Java concurrency线程池之线程池原理第三篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-06-06


最新评论