Poedu_C++_Lesson03_1_20161223_类与对象(1)
2017-01-08 21:03
148 查看
-
三个名词:哺乳纲、人类、小明(一个人的名字)
当只有人类和小明这两个名词时,它们的关系是这样的:
小明属于人类。
人类是抽象出来的一个概念,是一个“虚”的东西,而小明这个人是确确实实存在的。小明是人类的一个具象的体现。小明身上有的(属性)、小明能够做的(方法),在“人类”这个类里都找得到。
当三个名词都有的时候,它们的关系是这样的:
小明属于人类,人类又属于哺乳纲
同样的,哺乳纲也是一个抽象出来的概念,哺乳纲是中不止“人类”这一个子类。所以,凡是人类中能够找到的属性与方法,在哺乳纲中都能找得到,人类中找不到的属性与方法,在哺乳纲中可能可以找到。而小明是人类的一个具象,同时也是哺乳纲的一个具象。
大概是这样的:
小结:
我认为,广义上的类与对象就是包含与被包含的关系。对象所拥有的属性与方法都是类中的一部分。而且,类所拥有的属性与方法一般会大于对象所拥有的属性与方法。
在程序中,类与对象应该怎么写?
比如我们要写一个dog类,如果从广义上的对象来说,一只狗的属性很多:比如毛色、肩高、品种等等,那么我们在写程序的时候是否都要写上去呢?未必。
在程序中,当要写一个dog类时,我们没必要把全部的属性都写上去,而是要根据我们的需求来定:
比如,我们要写的dog类,它是一只宠物狗,那么我们要关注的属性就是品种、毛色、肩高等;如果它是一只肉够,那么毛色这个属性对我们就没啥用了,我们主要关注的属性应该就是重量、狗场的位置等。
这也是C++的第一种能力:抽象能力(抽象类)
第二种能力:组织能力(工具类)
将一系列相同的东西写到一个类里,这就成为了工具类,比如string类。
如:
4000
解析:
(1)C++中使用class定义一个类,后面跟的是类名;
(2)class中,有访问权限:
private 私有,在上述代码中的private以下,public之上的部分都属于私有部分(即以权限访问控制符private和public为界限),私有部分中的内容,只有在内部才能访问,在外部是无法被调用的。这就使得我们的变量变得更加的安全。
public 公有,上述代码中的方法以及最开始的两个函数(构造函数和析构函数)都是属于公有的,可以在外部(比如main函数中)进行调用。
protect
注意:类是虚的,不占用空间;对象是实的,会占用空间。
广义上的类和对象
举例说明:三个名词:哺乳纲、人类、小明(一个人的名字)
当只有人类和小明这两个名词时,它们的关系是这样的:
小明属于人类。
人类是抽象出来的一个概念,是一个“虚”的东西,而小明这个人是确确实实存在的。小明是人类的一个具象的体现。小明身上有的(属性)、小明能够做的(方法),在“人类”这个类里都找得到。
当三个名词都有的时候,它们的关系是这样的:
小明属于人类,人类又属于哺乳纲
同样的,哺乳纲也是一个抽象出来的概念,哺乳纲是中不止“人类”这一个子类。所以,凡是人类中能够找到的属性与方法,在哺乳纲中都能找得到,人类中找不到的属性与方法,在哺乳纲中可能可以找到。而小明是人类的一个具象,同时也是哺乳纲的一个具象。
大概是这样的:
小结:
我认为,广义上的类与对象就是包含与被包含的关系。对象所拥有的属性与方法都是类中的一部分。而且,类所拥有的属性与方法一般会大于对象所拥有的属性与方法。
狭义上的类与对象(编程上的类与对象)
C++中,用一个class来代表一个类,方法用函数代替,属性用变量来代替。在程序中,类与对象应该怎么写?
比如我们要写一个dog类,如果从广义上的对象来说,一只狗的属性很多:比如毛色、肩高、品种等等,那么我们在写程序的时候是否都要写上去呢?未必。
在程序中,当要写一个dog类时,我们没必要把全部的属性都写上去,而是要根据我们的需求来定:
比如,我们要写的dog类,它是一只宠物狗,那么我们要关注的属性就是品种、毛色、肩高等;如果它是一只肉够,那么毛色这个属性对我们就没啥用了,我们主要关注的属性应该就是重量、狗场的位置等。
这也是C++的第一种能力:抽象能力(抽象类)
第二种能力:组织能力(工具类)
将一系列相同的东西写到一个类里,这就成为了工具类,比如string类。
如:
Class MyString { MyString(); ~MyString(); private: //属性 char *str; int len; public: //方法 int GetStrLen(char* str); }
4000
解析:
(1)C++中使用class定义一个类,后面跟的是类名;
(2)class中,有访问权限:
private 私有,在上述代码中的private以下,public之上的部分都属于私有部分(即以权限访问控制符private和public为界限),私有部分中的内容,只有在内部才能访问,在外部是无法被调用的。这就使得我们的变量变得更加的安全。
public 公有,上述代码中的方法以及最开始的两个函数(构造函数和析构函数)都是属于公有的,可以在外部(比如main函数中)进行调用。
protect
注意:类是虚的,不占用空间;对象是实的,会占用空间。
相关文章推荐
- c语言----函数的递归
- PAT BASIC LEVEL 1005. 继续(3n+1)猜想 (25)
- C++实现插入排序
- CLion:JetBrains 正式推出的 C/C++ IDE
- PAT甲级1009
- C++ Primer笔记(一)
- MainWindow.cpp
- C++虚函数表
- C++第十天 2016-12-09 3.6-4.1
- C++第九天 2016-12-08 3.5-3.6
- C++第七天 2016-12-06 3.4-3.5
- C++第五天 2016-12-04 3.1-3.2
- C++第四天 2016-12-03 2.4-2.6
- C++第二天 2016-12-01 1.2-2.3
- C++第一天 2016-11-30 1-1.2
- 初步认识c++
- C++(24):STL初步之stack、queue
- 设计模式C++版:第十二式桥接模式
- 学习C++的第四天
- c语言学习笔记(标准文件io)