第十章:对象和类
来源:互联网 发布:java包的命名规范 编辑:程序博客网 时间:2024/05/29 12:39
面向对象是一种编程风格,用于任何一种语言。
OPP特性:
- 抽象
- 封装和数据隐藏
- 继承
- 多态
- 代码的可重用性
- 过程性编程
考虑遵循的步骤,用户希望有哪些功能,我如何提供,如何存储数据。
- 面向对象编程
首先考虑用户,确定一个对象的属性和操作这些属性的方法。用户接口有哪些。
抽象—-》类
相当于自己定制的一个新的类型,这个类型的属性和可以对这些属性进行的操作
接口就是将人的意图转换为存储在计算机中的具体信息。
类的组成:
- 类声明:数据成员和成员函数
- 类方法定义:描述如何实现类成员函数。
通常,将类定义放在头文件中(头文件中可以实现对函数的定义:内联方法),将方法实现放在源文件中。
类的访问控制:
- private:只能通过公共函数访问
- public,
- protected
类的封装和数据隐藏
- 数据放在私有部分
- 实现(函数)放在私有部分
- 类函数的定义和类声明放在不同的文件中。
结构的默认访问类型是public
类的默认访问类型是private
类的成员函数
- 类函数的定义:类名::方法名
- 定义放在类声明中的函数自动成为内联函数。
- 类声明之外定义的成员函数,在函数头最前面使用:inline关键字使其成为内联函数。
- 内联函数的规则是每个使用他们的文件中都对其进行定义。
- 构造函数:无返回值,函数名就是类名
参数名不能是数据成员名 - 不提供构造函数时,默认的构造函数:Stock::Stock() {}
- 应提供默认的构造函数,而且构造函数应该提供初始值。
- 析构函数:无返回值,函数名就是~类名
- 使用构造函数:
Stock food = Stock("adf", 1, 2);//显式调用Stock food("adf", 1, 2);//隐式调用
局部变量放在栈中,先创建的变量后删除
对象的初期化,初始化比赋值的方式效率高
只要类方法不修改调用对象,就应将其声明为const
自己提供的构造函数可以不提供参数,要提供就提供所有参数
构造函数可以重载,但析构函数只能有一个。
如果构造函数使用了new,则必须提供使用delete的析构函数
类方法将调用他的对象的地址设置为this指针
如果要创建对象数组必须要有默认构造函数:没有任何参数的构造函数或有默认参数的构造函数。
类中声明常量
- const int Months = 12; //失败,声明类只是描述变量的形式,没有创建对象
- enum {Months = 12}; //成功,定义的枚举量只是一个符号常量,不属于任何对象
- static const int Months = 12; //成功,不是存储在对象中,被所有的对象共享
C11枚举的作用域是类:
enum egg{Small, Large};
enum t_shirt{Small, Large, Xlarge}; C98编译出错
enum class egg{Small, Large};
enum class t_shirt{Small, Large, Xlarge};
enum struct egg{Small, Large};
enum struct t_shirt{Small, Large, Xlarge};
egg::Large
t_shirt::Large
作用域内枚举不能隐式的进行类型转换,可以显式的进行类型转换。
C11指定枚举的底层类型:enum class::short pizza{Small, Medium};
引用既是别名,执行相同的内存空间
- 第十章类和对象
- 第十章:对象和类
- 第十章 类和对象
- 第十章 对象和类
- 第十章 对象和类
- 第十章:对象和类
- 第十章-对象和类
- 【c++ primer】第十章 对象和类
- C++ primer 第十章 对象和类
- 黑马程序员---第十章 对象和类
- 第十一天(对象和类)
- 第十章 类、对象与实现
- 第十章:持有对象
- 第十章对象初始化
- Primer plus C++ 第十章 对象和类_类的设计
- C++ Primer Plus学习:第十章 对象和类(1)
- C++ Primer Plus学习:第十章 对象和类(2)
- C++ Primer Plus学习:第十章 对象和类(3)
- 【C++】inet_ptoa&inet_atop inet_pton&inet_ntop
- 基于51单片机的无线通讯公交报站系统
- 第四天-运算符
- 安装 cobra
- java线程之间的通信(等待/通知机制)
- 第十章:对象和类
- JUnit测试工具
- OCP学习笔记之数据库及实例的启动
- Kafka 安装部署&java demo
- 如何理解权限系统?如何结合Shiro来理解权限系统?
- Android滑动隐藏顶部和底部显示更多内容
- 研究生第一篇学术论文常犯问题总结[转]
- 关于树状数组的一些讨论
- 深度学习笔记--引言部分