17 Rust的面向对象编程特性
面向对象编程(OOP)是一种模式话编程方式
17.1 面向对象语言的特征
Rust被很多不同的编程范式影响
对象包含数据和行为
其中一种面向对象便车被这样定义:面向对像的程序是由对象组成的。一个对象包含数据和操作这些数据的过程,这些过程通常被称为方法或者操作
封装隐藏了实现细节
封装思想通常和面向对象编程相关:对像的实现细节不能被使用对象的代码获取到,使用对象的代码只能通过对象提供的API。这样,改变和重构对象的内部时无需改变使用对象的代码
之前我们使用pub来决定项的公有性,默认情况下是私有的,但是结构体成员仍然是私有的,这非常重要,我们来定义一些方法来使得变量从列表中增加或者删除时,平均值随之而变
pub struct AveragedCollection {
list:Vec<i32>,
average: f64,
}
pub struct AveragedCollection {
list:Vec<i32>,
average: f64,
}
impl AveragedCollection {
pub fn add(&mut self,value:i32){
self.list.push(value);
self.update_average();
}
pub fn remove(&mut self)->Option<i32>{
let result =self.list.pop();