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

HoRain云--Rust 面向对象

🎬 HoRain 云小助手:个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

封装

实例

实例

继承


面向对象的编程语言通常实现了数据的封装与继承并能基于数据调用方法。

Rust 不是面向对象的编程语言,但这些功能都得以实现。

封装

封装就是对外显示的策略,在 Rust 中可以通过模块的机制来实现最外层的封装,并且每一个 Rust 文件都可以看作一个模块,模块内的元素可以通过 pub 关键字对外明示。这一点在"组织管理"章节详细叙述过。

"类"往往是面向对象的编程语言中常用到的概念。"类"封装的是数据,是对同一类数据实体以及其处理方法的抽象。在 Rust 中,我们可以使用结构体或枚举类来实现类的功能:

实例

pub struct ClassName {
pub field: Type,
}

pub impl ClassName {
fn some_method(&self) {
// 方法函数体
}
}

pub enum EnumName {
A,
B,
}

pub impl EnumName {
fn some_method(&self) {

}
}

下面建造一个完整的类:

实例

second.rs
pub struct ClassName {
field: i32,
}

impl ClassName {
pub fn new(value: i32) -> ClassName {
ClassName {
field: value
}
}

pub fn public_method(&self) {
println!("from public method");
self.private_method();
}

fn private_method(&self) {
println!("from private method");
}
}
main.rs
mod second;
use second::ClassName;

fn main() {
let object = ClassName::new(1024);
object.public_method();
}

输出结果:

from public method from private method

继承

几乎其他的面向对象的编程语言都可以实现"继承",并用"extend"词语来描述这个动作。

继承是多态(Polymorphism)思想的实现,多态指的是编程语言可以处理多种类型数据的代码。在 Rust 中,通过特性(trait)实现多态。有关特性的细节已在"特性"章节给出。但是特性无法实现属性的继承,只能实现类似于"接口"的功能,所以想继承一个类的方法最好在"子类"中定义"父类"的实例。

总结地说,Rust 没有提供跟继承有关的语法糖,也没有官方的继承手段(完全等同于 Java 中的类的继承),但灵活的语法依然可以实现相关的功能。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

http://www.rkmt.cn/news/1509702.html

相关文章:

  • Spring Cloud Gateway 的 SpEL 表达式注入漏洞(CVE-2022-22947)
  • 2026年安徽合肥理工学校寿春实验班怎么样?在哪报名?官网最新发布 - 小张zc
  • 拆解一个充电宝,聊聊DW01-A这颗‘电池保姆’芯片是如何工作的
  • 2026华东地区吨袋投料站厂家测评:五大头部厂商技术与应用解析 - 资讯快报
  • 国际中文教师考点与培训选择指南:北京言汉汉语考点业务真实性 - 资讯快报
  • 中山南区街道上门黄金回收足不出户轻松变现 - 专业黄金回收
  • 5分钟终极指南:用猫抓Cat-Catch轻松捕获任何网页视频资源
  • 咨询机构获客难?励拓GEO助力咨询行业玩转AI流量
  • 零基础云计算入门:用Cloudflare Pages 5分钟上线静态网站
  • 上海追加被执行人律师事务所推荐:三家律所实务能力评测与选型指南 - 品牌2026
  • 2026 沈阳黄金回收榜单|正规合规透明,高价靠谱专业回收机构盘点 - 奢侈品回收评测
  • GPT-4稀疏激活真相:万亿参数下的动态路由与专家调度
  • 上海重新执行律师事务所推荐:3家律所重新申请执行流程熟悉度评测 - 品牌2026
  • VS Code 新增 2 小时扩展自动更新延迟,应对软件供应链攻击
  • 2026 北京工商注册代办公司排名 正规靠谱口碑好的机构推荐 - 互联网科技品牌测评
  • VB.Net桌面程序实操:用OleDb连接Access数据库并完成增删改查全流程
  • tcc-g15:如何用开源方案彻底掌控Dell G15散热系统?
  • Android滑动布局终极指南:SwipeRevealLayout让你的应用交互更流畅
  • 2026年6月分体式电磁流量计主要品牌排行榜 - 液体流量液位品牌推荐
  • 永磁同步电机静止状态下用方波注入法估算转子初始位置的Simulink仿真模型
  • 梁溪 / 滨湖全覆盖!2026无锡持证黄金实体门店对比实测 - 奢侈品回收评测
  • 开箱即用的PyTorch YOLOv3目标检测工程:含预训练权重、14张测试图与摄像头/视频实时检测脚本
  • 2026济南黄金回收终极攻略!5家靠谱门店对比,老牌正规店闭眼冲 - 奢侈品回收评测
  • 深入汽车ECU“心脏”:图解UDS on CAN总线下的Flash刷写全过程(从预编程到后编程)
  • UVa 469 Wetlands of Florida
  • 5G NR/WiFi 6里那个不起眼的‘相位跟踪’信号PT-RS,到底是怎么帮你稳住网速的?
  • Java写的图形化文件加密解密小工具,支持AES/DES/3DES/Blowfish/RC4五种算法
  • 2026年呼和浩特口碑旅行社TOP1:服务与口碑并重,2万亩私家牧场,随心畅玩 - 资讯速览
  • N皇后遗传算法Python实战:从编码到100规模求解
  • 从公式到车锁:BLE RSSI动态测距在蓝牙钥匙中的工程实践