访问对象中成员的3种方法:
1.通过对象名和成员运算符(.)访问对象中的成员
2. 通过指向对象的指针访问对象中的成员
例如:
Time t1,*p;
p=&t1;
t1.set_time();
(*p).show_time();
p->show_time();
3. 通过对象的引用变量访问对象中的成员
引用变量共占同一段存储单元,实际上它们是同一个对象,只是用不同的名字表示而已。
例如:
Time t1;
Time &t2=t2;//t1和t2指向的是同一个对象
访问私有数据成员的常用方法:
1. 通过公共函数(public)访问私有成员。
2.通过set和get(return)函数访问私有数据成员。
3.利用指针将私有数据成员的值提取到类外。
例如:
类中x和y都是private。函数void getXY(int *px,int *py){*px=x;*py=y;}是public的。那么在类的外面主函数中,可以用
p1.getXY(&a,&b)将x和y的值提取出来赋值给aheb。
4,.利用引用将私有数据成员的值提取到类外。
例如:
类中有public函数
void getXY(int &px,int &py){px=x;py=y}
在外面主函数中调用p1.getXY(a,b)那么,a和px指的是用一个变量,b和py指的是同一个变量。然后,将x的值赋给px也就是赋给a,将y的值
赋给py就是赋给b。
利用面向对象的方法解决问题的时候,对象=算法+数据结构,程序=对象s+消息
在类外不能直接访问私有数据成员,但是可以通过调用公有成员函数(指针、引用等)来引用甚至修改私有数据成员。
私有实现:类中被操作的数据是私有的,实现的细节对用户是隐蔽的,这称为私有实现。
类的公有接口与私有实现的分离形成了信息隐藏。
将接口与实现分离是软件工程的一个最基本的源。
消息就是对公用函数的调用。
面向对象程序设计的主要特点:
1.封装性
将有关的代码和数据封装在一个对象中,各对象间相对独立,互不干扰。
将对象中的某些部分对外隐蔽,隐蔽内部细节,只留下少量接口。
2. 抽象性
类是对象的抽象,对象是类的实例。
3. 继承性
最重要,解决软件的重用问题。
4. 多态性
由继承产生的相关的不同的类,其对象对同一消息会做出不同的响应。
只支持封装性和抽象性的为基于对象的程序设计。