第三、四周学习笔记:
第二章 类和对象的特性
2.1.1 什么是面向对象程序设计
1、对象 客观世界中任何一个事物都可以看成一个对象。任何一个对象都应该具有属性(attribute)和行为(behavior)。对象应能根据外界给的消息进行相应的操作。
2、封装与信息隐蔽 把对象的内部实现与外界行为分隔开。
3、抽象 其作用是表示同一类事物的本质。类是对象的抽象,而对象是类的具体表现。
4、继承与重用 在原有类的基础上添加一些属性和行为,建立一个新类。
5、多态性 多态性是指由继承而产生的相关的不同的类,其对象对同一消息会做出不同的响应。多态性是面向对象程序设计的一个重要特征,能增加程序的灵活性。
2.1.2 面向对象程序设计的特点 面向的是一个个对象,程序设计者的任务包括两个方面:一是设计所需的各种类和对象,即决定把哪些数据和操作封装在一起;二是考虑怎样向有关对象发送消息,以完成所需的任务。
2.1.3 类和对象的作用 类是所有面向对象的语言的共同特征。程序中的一组数据和一组操作是相对应的,人们把相应的数据和操作放在一起,形成一个整体,与外界相分割。这就是面向对象程序设计中的对象。
在面向过程的结构化程序设计中 程序=算法+数据结构;面向对象程序设计中:对象=算法+数据结构 程序=对象s+消息
2.1.4 面向对象的软件开发
1.面向对象分析(object oriented analysis,OOA)
2.面向对象设计(object oriented design,OOD)
3.面向对象编程(object oriented programing,OOP)
4.面向对象测试(object oriented test,OOT)
5.面向对象维护(object oriented soft maintenance,OOSM)
2.2类的声明和对象的定义
1、声明类的类型
class 类名
{ private:
私有的数据和成员函数;
public:
公有的数据和成员函数;
};//还有一种protected受保护的成员,不能被类外访问,但可以被其派生类的成员函数访问。
注意:如果在类的定义中没有指定是private还是public,系统默认为private。
2、定义对象的方法
a、先声明类类型,然后在定义对象。
class 类名 对象名;或者类名 对象名;
b、在声明类的同时定义对象。
c、不出现类名,直接定义对象。
3、类和结构体类型的异同
可以将class声明的类类型改成struct,但是如果对其成员不做private和public声明,用struct声明的类系统默认为public,而class声明的类其成员为private。
2.3 类的成员函数
将需要被外界调用的成员函数指定为public,它们是类的对外接口。
既可以在类里面定义成员函数,也可以在类体中只对成员函数做声明,在类外定义。
class Student
{public:
void display();//声明
private:
int num;
}
void Student::display()
{cout<<“num:”<<num<<endl;
}
Student stud1;
**注意:如果在作用域运算符“::”**的前面没有类名,或者函数名前面既无类名又没有作用域运算符,则表示该display函数是全局函数,即一般函数,不是成员函数。
**a