终于来到了类和对象的学习了!
一、 面向对象程序的基本特点:抽象、继承、封装、多态
在第一天学习的时候就学习过了封装、多态、继承。
这里补充学习下抽象!
抽象就是对同一类对象共同属性和行为进行概括,形成类。老师特别说明在抽象的时候一定要注意问题的本质和描述。这是自己无论在解决什么问题的时候最容易忽略的,很会钻入细节里。
抽象还分为数据抽象(变量)和代码抽象(功能函数)。它的实现是类
封装通过{}实现
二、 类和对象的定义
在设计类的时候要考虑的问题:
1、 此类型的“合法值”是什么?
2、 此类型应该有什么样的函数和操作符?
3、 新类型的对象该如何被创建和销毁?
4、 如何进行对象的初始化和赋值?
5、 对象作为函数的参数如何以值传递?
6、 谁将使用此类的对象成员?
类的定义语法:
Class 类名称
{
Public:
公有成员(外部接口)
Private:
私有成员//可以授权访问,如果没有声明就默认私有
Protected:
保护型成员
};
类内初始化:在没有赋值时就要它,有时不用。
对象是类的一个实例,对象可以调用类内的一个功能。
定义对象的语法:
类名 对象名;
例子:
Clock myClock;
访问类内对象的语法:
类名.成员名;
类的成员函数
在类中要声明函数类型,可以在类外给出函数体的实现,并且函数名前使用类名加以限定。也可以在类内给出函数体,这叫做内联成员函数,与内联函数相似,这需要简单的函数才可以。同时,类的成员函数允许是重载函数和带默认参数值的函数。
三、 例子!
using namespace std;
class Clock {
public :
void setTime(int newH = 0,int newM = 0, int newS = 0);
void showTime();
private :
int hour,minute, second;
};
void Clock::setTime(int newH, int newM, int newS)
{
hour = newH;
minute = newM;
second = newS;
}
void Clock::showTime()
{
cout << hour << ":" << minute << ":" << second;
}
int main() {
Clock myClock;
myClock.setTime(8,30,30);
myClock.showTime();
return 0;
}