当前位置: 首页 > 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.jsqmd.com/news/997934/

相关文章:

  • 2026年安徽合肥理工学校寿春实验班怎么样?在哪报名?官网最新发布 - 小张zc
  • 2026华东地区吨袋投料站厂家测评:五大头部厂商技术与应用解析 - 资讯快报
  • 拆解一个充电宝,聊聊DW01-A这颗‘电池保姆’芯片是如何工作的
  • Spring Cloud Gateway 的 SpEL 表达式注入漏洞(CVE-2022-22947)
  • 对“麦克斯韦方程组与世毫九IGP/SRC理论关系论断”的深入研究报告(世毫九实验室原创研究)
  • 别再怕牛顿法发散!手把手教你用Python实现带下山因子的稳定求解(附完整代码)
  • 国际中文教师考点与培训选择指南:北京言汉汉语考点业务真实性 - 资讯快报
  • 2026证件照换底色保姆级教程:这4款免费软件最好用(附详细步骤) - 办公小帮手
  • 中山南区街道上门黄金回收足不出户轻松变现 - 专业黄金回收
  • 2026仇恨言论检测实战:分层过滤+多模态归因识别架构
  • 终极指南:用XUnity.AutoTranslator让任何Unity游戏瞬间变中文版
  • 电话号码精准定位终极方案:如何在3分钟内实现手机号码地理位置查询?
  • 2026柳州黄金回收防骗实体店资质核验指南 - 润富黄金回收
  • 5分钟终极指南:用猫抓Cat-Catch轻松捕获任何网页视频资源
  • LTspice仿真实测:用ADA4522和LT1001搭建绝对值电路,输入电压范围怎么选才不‘翻车’?
  • 别再只盯着MySQL了!手把手教你用KingbaseES的WAL日志排查一次数据异常恢复
  • 咨询机构获客难?励拓GEO助力咨询行业玩转AI流量
  • 2026塑机行业杂志平台推荐哪些:江外江《塑胶工业》与塑胶工业APP的渠道参考 - 华旭传媒
  • 零基础云计算入门:用Cloudflare Pages 5分钟上线静态网站
  • 上海追加被执行人律师事务所推荐:三家律所实务能力评测与选型指南 - 品牌2026
  • 从手动剪辑到智能流水线:Python自动化剪映实战指南
  • GPT-4稀疏激活真相:万亿参数下的动态路由与专家调度
  • 2026 沈阳黄金回收榜单|正规合规透明,高价靠谱专业回收机构盘点 - 奢侈品回收评测
  • 上海重新执行律师事务所推荐:3家律所重新申请执行流程熟悉度评测 - 品牌2026
  • 2026年30瓶起婚礼定制情感刚需深度测评:如何为企业年会匹配最佳方案? - 资讯速览
  • STM32通用数码管+按键驱动包:TM1628/TM1640双芯兼容,纯GPIO模拟SPI
  • STM32F103用DMA+PWM驱动WS2812B实现三色呼吸灯与RGB自由调光
  • AI预测世界杯第1场—2026世界杯A组焦点战:韩国 vs 捷克——亚洲烈马迎战波西米亚回归
  • 2026连锁开店怎么选收银系统?连锁收银系统主流品牌对比! - 老林说收银
  • HPM6750串口DMA实战:手把手教你配置UART收发,告别CPU轮询