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

鸿蒙app开发中 class类中的 访问修饰符和静态修饰符 等这些命名的含义 以及用法

在鸿蒙应用开发(基于 ArkTS/TypeScript)的class类中,访问修饰符和静态修饰符是控制类成员(属性、方法)行为的核心关键字,主要用于实现封装性、继承性和代码复用。以下是详细总结:

一、访问修饰符(控制成员的访问范围)

用于限制类的属性或方法在哪些场景下可被访问,确保代码封装性和安全性。

修饰符含义访问范围(可访问的位置)典型使用场景
public公共成员(默认修饰符,可省略)类内部、类外部、子类中均能访问暴露类的公开接口(如对外提供的方法、需要外部读取的属性)
private私有成员仅在当前类内部可访问,类外部和子类均无法直接访问隐藏类的内部实现细节(如内部状态变量、辅助方法),避免外部随意修改
protected受保护成员仅在当前类内部和其子类中可访问,类外部无法访问允许子类继承并复用父类的核心逻辑(如父类的基础配置、共享方法)
示例:访问修饰符的区别

typescript

class Parent {public publicProp: string = "public";    // 公共属性private privateProp: string = "private"; // 私有属性protected protectedProp: string = "protected"; // 受保护属性public publicMethod() {// 类内部可访问所有成员console.log(this.publicProp, this.privateProp, this.protectedProp);}private privateMethod() { /* 仅类内部可用 */ }protected protectedMethod() { /* 类内部和子类可用 */ }
}class Child extends Parent {useParentMembers() {console.log(this.publicProp);       // 允许(public)// console.log(this.privateProp);   // 报错(private:子类不可访问)console.log(this.protectedProp);    // 允许(protected)this.publicMethod();                // 允许// this.privateMethod();            // 报错this.protectedMethod();             // 允许}
}const parent = new Parent();
parent.publicProp;       // 允许(外部可访问public)
// parent.privateProp;   // 报错(外部不可访问private)
// parent.protectedProp; // 报错(外部不可访问protected)

二、静态修饰符(static

用于定义属于类本身的成员(而非类的实例),所有实例共享同一静态成员,无需创建实例即可调用。

修饰符含义特点与使用场景
static静态成员(属性或方法),属于类本身,不依赖实例1. 工具方法(如数据格式化、校验逻辑)2. 全局常量(如配置键名、API 地址)3. 共享状态(如计数器、全局开关)
示例:静态成员的使用

typescript

class ToolUtil {// 静态常量:全局共享的配置static readonly MAX_SIZE: number = 1024;// 静态方法:工具函数,无需实例即可调用static formatTime(time: number): string {return `Time: ${time}`;}
}// 直接通过类名调用,无需创建实例
console.log(ToolUtil.MAX_SIZE);         // 输出:1024
console.log(ToolUtil.formatTime(300));  // 输出:Time: 300

三、只读修饰符(readonly

用于定义初始化后不可修改的成员,确保数据安全性。

修饰符含义适用场景
readonly只读成员,初始化后不可修改(类似常量),可修饰实例属性或静态属性1. 固定配置(如版本号、常量参数)2. 避免实例属性被意外修改
示例:只读成员的使用

typescript

class Config {readonly version: string = "1.0.0"; // 实例只读属性static readonly APP_NAME: string = "MyApp"; // 静态只读属性
}const config = new Config();
// config.version = "2.0.0"; // 报错:只读属性不可修改
// Config.APP_NAME = "NewApp"; // 报错:静态只读属性不可修改

四、常见组合修饰符

修饰符可以组合使用,形成更精确的访问控制:

组合修饰符含义示例场景
private static私有静态成员:仅类内部可访问的静态工具或常量类内部使用的静态辅助方法、隐藏的全局配置
protected static受保护静态成员:类内部和子类可访问的静态成员父类定义的、允许子类复用的静态工具方法
public static公共静态成员:全局可通过类名访问的静态成员(最常用)工具类的公开方法(如StorageUtil.get())、全局常量
readonly static静态只读成员:全局共享且不可修改的常量应用级固定配置(如API_BASE_URL
示例:组合修饰符

typescript

class LogManager {// 私有静态常量:仅类内部使用的日志标签private static readonly LOG_TAG: string = "[AppLog]";// 公共静态方法:全局可调用的日志工具public static log(message: string) {console.log(`${this.LOG_TAG} ${message}`); // 内部可访问私有静态成员}
}LogManager.log("test"); // 输出:[AppLog] test
// console.log(LogManager.LOG_TAG); // 报错:私有静态成员不可外部访问

总结

这些修饰符的核心作用是规范类成员的访问权限和生命周期

  • 访问修饰符(public/private/protected)控制 “谁能访问”,实现封装和继承安全;
  • 静态修饰符(static)控制 “成员属于类还是实例”,实现共享逻辑和工具方法;
  • 只读修饰符(readonly)控制 “成员是否可修改”,保证数据稳定性。

在鸿蒙开发中,合理使用这些修饰符能使代码结构更清晰、逻辑更健壮,尤其在大型应用中可有效减少误操作和代码耦合。

http://www.dtcms.com/a/491463.html

相关文章:

  • 大模型-AIGC技术在文本生成与音频生成领域的应用
  • 国内产品网站1688利用腾讯云建设网站
  • 下载免费网站模板下载移动网站建设机构
  • 公司网站怎么建温泉网站建设
  • error: can‘t find Rust compiler
  • 关于力扣第 167 场双周赛的赛后总结 第三四题
  • 网站开发h5技术两学一做网站源码
  • SpringBoot-自动配置原理
  • AI应用开发001-Conda和Jupyter Lab介绍
  • 在 Android Shell 终端上直接运行 OPENPPP2 网关路由配置指南
  • debug - MDK - arm-none-eabi - 从MDK工程做一个makefile工程出来
  • 郑州外贸网站建设商家内网网站开发报价
  • xxl-job pg数据库适配
  • OSPF路由协议重点总结
  • QT6中QToolBox功能与应用
  • Linux 进程信号机制详解
  • 淘宝客做网站推广自定义页面wordpress
  • YOLO-V1 与 YOLO-V2
  • 中科大少年班记(2025年10月)
  • 微信公众号端网站开发小程序开发费用一览表fhq华网天下
  • 体育数据库:搭建体育应用的核心「数据引擎」
  • 【JETSON+FPGA+GMSL】多功能图像采集卡,以高集成、多通道方案应对工业视觉挑战
  • 做网站教学书微信公众号下载安装
  • 【从零开始构建性能测试体系-07】理解响应时间、吞吐量与并发:性能测试关键指标解读
  • C/C++字符串
  • 上网站乱码python网站开发效率
  • 告别“搬砖”:在AI的辅助下,前端如何触及业务与架构的深水区?
  • 大显存 AI 训练实战:PyTorch/TensorFlow 参数调试与多场景落地指南
  • 石狮新站seo电子商务网站建设与管理感想
  • Socket 抓包工具与实战,从抓取到定位(Socket 的命令、分析)