第二十二条:优先考虑静态成员类

本文深入探讨了Java中的嵌套类概念,包括静态成员类、非静态成员类、匿名类和局部类的区别与应用。重点阐述了如何合理使用嵌套类以提高代码的模块性和复用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

嵌套类是指被定义在另一个类的内部的类。

嵌套类存在的目的应该只是为了它的外围类提供服务。如果嵌套类将来有可能会用于其他的某个环境,它就应该是顶层类。

嵌套类有四种:静态成员类,非静态成员类,匿名类,局部类。除了第一种,其他三种称为内部类。

静态成员类是最简单的一种嵌套类。最好把它看做是普通的类,只是碰巧被声明在另一个类的内部而已。

从语法上来讲,静态成员类和非静态成员类之间唯一的区别是,静态成员类的声明中包含修饰符static。但是静态成员类和非静态成员类之间有

很大不同。非静态成员类的实例方法内部,可以调用外围类实例(宿主)的方法,或者利用修饰过的this构造获得外围类实例(宿主)的引用。

静态成员类的实例可以独立于它的外围类的实例之外独立存在。

非静态成员类的实例不能独立于它的外围类的实例(宿主)独立存在。

当非静态成员类的实例被创建的时候,它和外围实例之间的关联关系也随之被建立起来,而且这种关联关系以后不能被修改。通常情况下,

当在外围类的某个实例方法的内部调用非静态成员类的构造器时,这种关联关系被自动建立起来。

如果声明成员类不需要访问外围实例,就始终要把static修饰符放在它的声明中。

 

匿名类不同于Java语言中的其他任何语法单元。匿名内部类没有名字,它不是外围类的一个成员,它并不与其他的成员一起被声明,而是在

使用的同时被声明和实例化。匿名类可以出现在代码中任何允许存在表达式的地方。匿名类的适用性受到诸多的限制。除了在它们被声明的时候

之外,是无法将它们实例化的。你无法声明一个匿名类来实现多个接口,或者继承一个类。匿名类的客户端无法调用这个匿名类中的任何方法。

由于匿名类出现在表达式中,它们,它们必须保持简短-----大约10行或者更少些------否则会影响程序的可读性。

匿名类的一种常用用法是动态的创建 函数对象。

匿名类的另一种常见用法是创建 过程对象。

转载于:https://www.cnblogs.com/wangliyue/p/4468962.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值