当前位置: 首页 > article >正文

Java高效编程(16):在公共类中使用访问器方法,而不是公共字段

概述

在软件设计中,封装是面向对象编程的基本原则之一。为了确保灵活性和安全性,公共类应通过访问器方法(getter)和修改器方法(setter)来访问字段,而不是直接暴露公共字段。这有助于后续的维护和修改。

退化类的示例

有时候,您可能会倾向于编写退化的类,这些类的唯一作用就是将实例字段分组:

// 这样的退化类不应该是公共的!
class 坐标点 {
   
    public double x;
    public double y;
}

由于此类的字段可以直接访问,这样的类不提供封装的好处(参见第15条)。直接暴露字段意味着:

  • 无法在不更改API的情况下更改类的内部表示。
  • 无法强制实施不变量。
  • 无法在字段被访问或修改时执行任何操作。

这些问题可能导致数据不一致或难以维护。因此,严格的面向对象程序员认为此类设计应当避免,应该始终使用私有字段并提供公共的访问器方法(getter)和修改器方法(setter):

封装的实现

// 通过访问器方法和修改器方法封装数据
class 坐标点 {
   
    private double x;
    private double y;

    // 构造函数,用于初始化坐标点对象
    public 坐标点(double x, double y) {
   
        this.x = x;
        this.y = y;
    

http://www.kler.cn/news/332863.html

相关文章:

  • C++入门基础知识99——【关于C++ 成员运算符】
  • [C/C++开发]链接动态库在不同操作系统上的行为
  • 数据结构--二叉树的顺序实现(堆实现)
  • 移动技术开发:音乐播放器
  • 代码随想录 99. 岛屿数量
  • Studying-多线程学习Part2 - 互斥量死锁、lock_guard 与 unique_lock、call_once与其使用场景
  • Git介绍--github/gitee/gitlab使用
  • VMware tools菜单为灰色无法安装
  • 【MySQL 08】复合查询
  • 51单片机——矩阵键盘
  • 整理Maven坐标,Spring Boot集成工具依赖版本差异问题
  • JAVA基础语法 Day11
  • Pikachu-RCE-exec“ping“
  • 简单易懂的springboot整合Camunda 7工作流入门教程
  • 数据看板如何提升决策效率?
  • 订阅ROS2中相机的相关话题并保存RGB、深度和点云图
  • 【网络】web1.0 2.0 3.0各自出现背景/技术原理/演化发展过程,以及Web 3.0 对传统互联网的影响
  • 通信工程学习:什么是ICMP因特网控制报文协议
  • 一块1T硬盘怎么有sdb1和sdb2
  • 在线css像素Px到百分比(%)换算器