第二章:类和对象的特征
来源:互联网 发布:科隆群岛 知乎 编辑:程序博客网 时间: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
- 第二章:类和对象的特征
- 再次理解面向对象的第二大特征------继承
- 第二章、4.java类和对象
- 面向对象第二课,类和对象的关系
- 业务对象的特征和类型
- 面向对象的基础和特征
- 面向对象程序设计的基本概念和特征
- 面向对象的思想和特征
- python对象的引用特征和可变性
- Scala:类,对象和特征(接口)
- 第二课 类和对象
- 类和对象第二讲
- 第二讲 类和对象
- C++编程思想 第二章对象的创建和使用
- 第二章 对象的创建和使用 笔记
- 面向对象的特征
- 面向对象的特征
- 面向对象的特征
- java多线程
- android 代码规范总结
- python断言
- JAVA中的强引用、软引用、弱引用、虚引用
- Maven 插件
- 第二章:类和对象的特征
- Android环境搭建之eclipse
- 最长递增子序列问题
- latex使用技巧
- 蓝桥杯 兰顿蚂蚁
- OpenCV 遇到的常见问题
- 1129. Recommendation System (25)
- hive alter table (删除某一列, 增加列)语句
- 51 Nod 1430 奇偶游戏(博弈)