news 2026/7/10 10:02:01

《Effective Java》第24条:静态成员类优于非静态成员类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《Effective Java》第24条:静态成员类优于非静态成员类

说明:

关于本博客使用的书籍,源代码Gitee仓库 和 其他的相关问题,请查看本专栏置顶文章:《Effective Java》第0条:写在前面,用一年时间来深度解读《Effective Java》这本书

正文:

学习本条之前,首先来了解一下嵌套类

原文P88:嵌套类:是指定义在另一个类的内部的类。嵌套类存在的目的应该只是为它的外围类提供服务。如果嵌套类将来可能会用于其他的某个环境中,它就应该是顶层类。嵌套类有四种:静态成员类(static member class)、非静态成员类(nonstatic member class)、匿名类(anonymous class)和局部类(local class)。除了第一种之外,其他三种都称为内部类(inner class)。本条目将告诉你什么时候应该使用哪种嵌套类,以及这样做的原因。

静态成员类(也叫静态内部类)是最简单的一种嵌套类,它声明在一个类的内部,可以访问外围类的所有成员,包括私有成员。

静态成员类 和 静态成员变量一样,也遵守可访问规则,如果被声明为私有的,则只能在它的外围类中访问。

静态成员类应该作为外部类的公有辅助类,与外部类一起使用才有意义。例如下例中 Calculator类 的公有静态成员类 Operation

// Calculator 类 demo1包 public class Calculator { // 公有静态成员枚举类:表示计算器支持的操作 public enum Operation { PLUS("+") { @Override public double apply(double x, double y) { return x + y; } }, MINUS("-") { @Override public double apply(double x, double y) { return x - y; } }, MULTIPLY("*") { @Override public double apply(double x, double y) { return x * y; } }, DIVIDE("/") { @Override public double apply(double x, double y) { if (y == 0) { throw new ArithmeticException("除数不能为0"); } return x / y; } }; private final String symbol; // 枚举构造方法 Operation(String symbol) { this.symbol = symbol; } // 抽象方法:定义操作的计算逻辑 public abstract double apply(double x, double y); } // 计算器计算方法:接收操作类型和两个数值 public double calculate(double x, double y, Operation operation) { return operation.apply(x, y); } } // Main类 Calculator calculator = new Calculator(); // 使用静态成员枚举类引用操作 double addResult = calculator.calculate(10, 5, Calculator.Operation.PLUS); S
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 14:47:37

《游戏指标生态与自驱决策体系搭建攻略》

搭建游戏数据分析的关键指标体系,首要任务是摒弃“通用指标模板”的拿来主义,转向“贴合游戏品类特性的指标生态”构建。所谓指标生态,是指各项指标并非孤立存在,而是形成“行为溯源-价值转化-体验反馈-策略优化”的动态联动闭环,每个指标都承载着“解读玩家真实意图、定位…

作者头像 李华
网站建设 2026/7/10 12:31:20

B样条曲线根据曲率极值进行分段速度规划的方法介绍

在 B 样条曲线轨迹上,已经找到曲率极值点并划分了段落,也做了 S 型速度规划,但极值点附近和段内仍出现规划速度超过曲率允许值的情况。如何调整?核心思路: “极值点速度合规”只是必要条件,不是充分条件&am…

作者头像 李华
网站建设 2026/7/10 3:51:42

免安装自带网卡驱动:驱动总裁,一键修复驱动问题,绿色单文件便携版

驱动总裁是一款专业的驱动管理工具,免安装单文件直接运行,自带网卡驱动无需联网,智能识别硬件并匹配最佳驱动。适用于新装系统、更换硬件、驱动异常等场景,一键解决鼠标卡顿、没有声音、无法联网等驱动问题。 软件下载 驱动工具软件 适用平台…

作者头像 李华
网站建设 2026/7/10 5:36:18

两相液体冷却如何解决热管理危机

数据中心正面临着日益严重的散热危机,因为AI工作负载产生的热量水平已经超出了传统空气冷却系统的处理能力。机架密度现在已超过70千瓦——这在几年前是难以想象的——这一日益严峻的挑战推动了热管理策略的根本性转变。两相液体冷却曾经仅限于专门的高性能计算环境…

作者头像 李华