文章配图:private 的作用

页面预览

前言

在面向对象编程中,封装通过 private 关键字隐藏内部实现细节,只暴露必要的公共接口。在「猫猫大作战」的 GameEngine 中,棋盘 board、猫咪集合 cats、得分 score 等敏感数据全部设为 private

本文以 GameEngine 的封装设计为锚点,讲解 private 的作用。

提示:本系列不讲 ArkTS 基础语法与环境搭建,假设你已跟完第 1–118 篇。本篇是阶段四第 119 篇。

一、私有成员设计

1.1 私有字段

export class GameEngine {
  private board: (Cat | null)[][] = [];   // 棋盘数据 — 对外只读
  private cats: Map<string, Cat> = new Map(); // 猫咪集合
  private score: number = 0;              // 分数
  private catCounter: number = 0;         // ID 计数器
  // ...
}

1.2 只读访问

// 通过公共 getter 只读暴露
getScore(): number { return this.score; }
getAllCats(): Cat[] { return Array.from(this.cats.values()); }
getCatCount(): number { return this.cats.size; }

二、总结

private 封装保护内部数据不被外部直接修改,通过 getter 提供只读访问。

核心要点

  • private 成员禁止外部直接访问
  • 通过公共 getter 暴露必要数据
  • 外部只能调用引擎的公共方法,不能直接操作内部状态

本篇是引擎基础篇最后一篇,下一篇预告:第 120 篇将深入 Math.random 概率生成——加权随机算法。

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐