类的设计和对家的使用
类的设计和对象的使用
士主受内容 类的设计 类的抽象 n类的封装 成员函数的实现 对象的定义 类成员的访问
主要内容 ◼ 类的设计 ◼ 类的抽象 ◼ 类的封装 ◼ 成员函数的实现 ◼ 对象的定义 ◼ 类成员的访问
士从问题中剥离出“类” ■传统程序设计思想: 从具体问题中剥离出功能 例:取款问题的实现程序可分解为以下 功能模块: 密码验证、余额查询、取款、打印凭条
从问题中剥离出“类” ◼ 传统程序设计思想: 从具体问题中剥离出功能 ◼ 例:取款问题的实现程序可分解为以下 功能模块: 密码验证、余额查询、取款、打印凭条
■面向对象程序设计思想: 从具体问题中剥离出各种数据(即“类”) 例:在取款问题中,可以发现对象: 帐户 属性:帐号、密码、余额、最小余额 行为:存款、取款、余额査询 ■将发现的对象抽象为类
◼ 面向对象程序设计思想: 从具体问题中剥离出各种数据(即“类”) ◼ 例:在取款问题中,可以发现对象: 帐户 属性:帐号、密码、余额、最小余额 行为:存款、取款、余额查询 ◼ 将发现的对象抽象为类
士类的设计 ■类的设计有两个基本任务,即完成类的抽象和 封装 抽象: 将对象的属性抽象为变量,称为类的数据 成员;将对象的行为抽象为函数,称为类的成 员函数;成员函数和数据成员统称为类成员 封装: 通过设置接口,暴露需要外部知道的信息、, 隐藏外界不需要知道的信息
◼ 类的设计有两个基本任务,即完成类的抽象和 封装 ◼ 抽象: 将对象的属性抽象为变量,称为类的数据 成员;将对象的行为抽象为函数,称为类的成 员函数;成员函数和数据成员统称为类成员。 ◼ 封装: 通过设置接口,暴露需要外部知道的信息, 隐藏外界不需要知道的信息。 类的设计
士抽隶性的卖现 ■例:抽象出帐户类 Account 数据成员: char*jd;∥定义帐号 char*pWd;/)定义密码 double balance;∥/定义余额 成员函数: void deposit(double amount) void withdraw(double amount; void display o
◼ 例:抽象出帐户类Account 数据成员: char* id; //定义帐号 char* pwd;//定义密码 double balance;//定义余额 成员函数: void deposit(double amount); void withdraw(double amount); void display(); 抽象性的实现
士封装性的卖现 类的封装主要通过限制外界对类的数据成员和成员 变量的访问权限来实现。 C++中类的访问权限控制有3种: public、 private、 protected 被声明为 publicl的类成员即为类的公有成员(接口), 可以被外界访问 被声明为 private的类成员是类的私有成员,只能被 本类其他成员访问 被声明为 protected的类成员是保护成员,只能被 本类和本类的派生类访问
◼ 类的封装主要通过限制外界对类的数据成员和成员 变量的访问权限来实现。 ◼ C++中类的访问权限控制有3种:public、private、 protected ◼ 被声明为public的类成员即为类的公有成员(接口), 可以被外界访问 ◼ 被声明为private的类成员是类的私有成员,只能被 本类其他成员访问 ◼ 被声明为protected的类成员是保护成员,只能被 本类和本类的派生类访问 封装性的实现
类定义的格式 class 类名> 类成员 类的 接口 p ublIc ; private ; 说明部分 protected ; ; 实现部分
类定义的格式 class { public: protected: }; ; private: ; ; ; 说 明 部 分 实 现 部 分 类的 接口 类成员
例:封装帐户类 Account class account ublic void deposit(double amount void withdraw(double amount) void display private char id char* pwd double balance double min balance
◼ 例:封装帐户类Account class Account { }; void deposit(double amount); void withdraw(double amount); void display(); char* id; char* pwd; double balance; public: private: double min_balance;
public vs. private n数据成员和成员函数都可以被声明为 public或 private; ■被声明为 public的类成员可以被程序中的任何地方访问; 变量可以被访问; 函数可以被调用; 在类的定义中,一般情况下,将数据成员定义为私有 成员,而成员函数定义为公有成员; ■被声明为 private的类成员只能被同一类中的方法调用; 不能说“在同一对象里
public vs. private ▪数据成员和成员函数都可以被声明为public或private; ▪被声明为public的类成员可以被程序中的任何地方访问; ▪被声明为private的类成员只能被同一类中的方法调用; --变量可以被访问; --函数可以被调用; 不能说“在同一对象里” ; ▪在类的定义中,一般情况下,将数据成员定义为私有 成员,而成员函数定义为公有成员;