第二章:类和对象的特征

来源:互联网 发布:科隆群岛 知乎 编辑:程序博客网 时间:2024/06/05 16:46
/*         第二章:类和对象的特征         */                                                                 // 制作人:easy                                                                 //制作时间:2017-3-7                                                                 //原创制作,盗版必究/*********************************************欢迎进入C++学习课堂**********************************************************************一.概述1.类是一个抽象(表示一类事物的本质),而对象则是抽象的具体。2.对象的两个要素:  a.应具有属性(数据成员)                                        b.具有行为(成员函数)3.对象可以根据外界给的信息(即调用成员函数)进行相应的操作。4.C++程序的重要特点:“封装性”->        a.各对象互不干扰                                                                        b.封装信息对外隐蔽(又叫“信息屏蔽”)5.继承与重用(C++两种重要机制):        a.即在原有类的基础上增添新的特征,而形成的新的类叫“子类”或“派生类”                                                                        b.这种继承的机制又叫“软件重用”6.多态性:基于继承机制,即相似但不相同的对象对外界同一信息做出不同的相应。7.关于面向对象与基于对象:C++支持面向对象也支持基于对象,基于对象主要在于强调主要的操作是对对象的操作,而面向对象则是在基于对象的基础上添加了继承与重用机制。8.面向过程的程序设计与基于对象的程序设计主要区别:                                                                        A.面向对象:数据公用(数据缺乏保护,数据交叉容易发生错误)                                                                        B.基于对象:数据分属于不同的对象(一组数据是为一组操作做准备,数据与操作相互结合,与外界分隔)9.软件开发五步走:分析(用户)->设计->编程->测试->维护**********************************以上这一部分内容可能让你感到枯燥,这主要是为了让你更好的了解C++,请仔细阅读以上部分,认真体会**************************************二.类与对象1.简述:a.类是对象的类型,对象是类的具体实例                b.类比类与结构体(见以下代码段,!请格外注意代码段后边的标注)************************************************************************                                        struct student                                        {                                                int num;                                                char name[20];                                                char sex;                                        }************************************************************************                                        class student          //类头                                        {                      //{...}是类体,包括数据成员和成员函数,体现了数据与操作封装在了一起                                                char name[20];                                                char sex;                                                void display();                                        }*************************************************************************                @说明:        a.类中的成员外界不能直接调用                         b.成员函数为类与外界的接口2.类的声明格式:**************************************************************************                                class 类名                                {                                private:私有数据成员及成员函数;     //private与public叫做“成员访问限定符”                                public:共有数据成员及成员函数;                                };***************************************************************************3.类声明时注意:        a.如果类体即没写private又没写public,则默认为public                                        b.同一成员访问限定符可以在类体内出现多次,但是为了程序的美观,每一种只写一次                                        c.C++为用户提供类库(了解即可)4.定义对象(三种方法)****************************************************************************A.先声明类类型然后在定义对象,例如:class student{private:        int num;        int age;             //先声明类       public:        void display();};class student s1;  //再定义对象student s1;        //这种定义方式省去class,与上面的完全相同-----------------------------------------------------------------------------B.在声明类时同时定义对象,例如:class student{private:        int num;        int age;public:        void display();}s1;                //在声明类时同时定义了对象s1-----------------------------------------------------------------------------C.不标示类名,直接定义(不推荐,因为在C++中一个类可能不止为一个程序服务,不标识类名可能导致别的程序无法编译)class {        int num;        int age;        void display();}s1;******************************************************************************5.类与结构体的异同结构体内如果不表明“成员访问限定符”(private、public),即认为是共有的(即public);而类中如果不表明,则认为是私有的(private);其他方面并无差别,但是推荐使用class来体现出C++的风格;****************************************************下面进入下一板块,成员函数**********************************三.类的成员函数1.关于成员访问限定符的说明:        a.private:成员函数;(此函数被视为工具函数)                                                                b.public:成员函数;(此函数被视为对外接口)2.成员函数的定义:        a.类内定义                                        b.类外定义下面来演示这两种定义方法:*****************************************************************************//类内定义display函数class student{private:        int num;        int age;public:        void display()                        //类内定义(关于类内定义,请仔细看下面的"inline内置成员函数")        {                cout<<num<<age<<endl;        }};*******************************************************************************//类外定义成员函数class student{private:        int num;        int age;public:        void display();          //先做类内声明};void student::display()            //再做类外定义("::"是作用域限定符,来说明display是student的类内成员函数){        cout<<num<<age<<endl;}*********************************************************************************3.内置成员函数(inline成员函数)关于内置成员函数,其实相当于在函数开头默认添加了一个inline;使用内置函数的前提:a.函数规模要足够小        b.不可以出现for、switch等;关于类外内联,一般不使用这种做法;举例说明:*********************************************************************************class student{private:        int num;public:        void display()        {                cout<<num<<endl;        }};*其实就相当于:class student{private:        int num;public:        inline void display()        {                cout<<num<<endl;        }};****************************************************************************************4.(原理节)成员函数的存储方式---类代码的调用机制不同对象的函数代码是相同的(即共用一段类代码),因此每个对象不同的是其数据成员不同(数据成员所占空间不同);#具体请翻看课本p51,认真阅读,有助于理解。5.对象成员的引用方式:a.对象名+成员运算符(如:s1.display())                                          b.指向对象的指针(如:p->display())                                          c.对象的引用(&)具体的例子见下面的实例,在这里不做过多解释,请类比结构体的变量调用方式***********************************原理介绍至此,下面通过实例来更好的理解第二章*******************************************************///用类来实现时间的输入与输出#include<iostream>using namespace std;class Time                                   //类的声明{private:                                      //私有数据成员        int hour;        int minute;        int second;public:                                       //共有成员函数        void Set_Time();        void Show_Time();};void Time::Set_Time()                         //成员函数的类外定义{        cin>>hour>>minute>>second;}void Time::Show_Time()                         //成员函数的类外定义{        cout<<hour<<":"<<minute<<":"<<second<<endl;}int main(){        Time t1;                           //定义对象        t1.Set_Time();                     //调用成员函数        t1.Show_Time();        system("pause");        return 0;}

0 0
原创粉丝点击