您的位置:首页 > 编程语言 > C语言/C++

Poedu_C++_Lesson03_1_20161223_类与对象(1)

2017-01-08 21:03 148 查看
-

广义上的类和对象

举例说明:

三个名词:哺乳纲、人类、小明(一个人的名字)

当只有人类和小明这两个名词时,它们的关系是这样的:

小明属于人类。

人类是抽象出来的一个概念,是一个“虚”的东西,而小明这个人是确确实实存在的。小明是人类的一个具象的体现。小明身上有的(属性)、小明能够做的(方法),在“人类”这个类里都找得到。

当三个名词都有的时候,它们的关系是这样的:

小明属于人类,人类又属于哺乳纲

同样的,哺乳纲也是一个抽象出来的概念,哺乳纲是中不止“人类”这一个子类。所以,凡是人类中能够找到的属性与方法,在哺乳纲中都能找得到,人类中找不到的属性与方法,在哺乳纲中可能可以找到。而小明是人类的一个具象,同时也是哺乳纲的一个具象。

大概是这样的:



小结:

我认为,广义上的类与对象就是包含与被包含的关系。对象所拥有的属性与方法都是类中的一部分。而且,类所拥有的属性与方法一般会大于对象所拥有的属性与方法。

狭义上的类与对象(编程上的类与对象)

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

注意:类是虚的,不占用空间;对象是实的,会占用空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: