今天的文章末尾有留言功能,上次文章里面有写错的地方,不好改(多谢网友们指出错误!),所以下次文章中有写错的地方,可以在留言处纠正过来,这样就比较方便了,同时也可以和各位网友在线交流!今天也是第一次分享c 的文章,暂时我先从c 里面的对象和类开始分享,前面的一些基础知识点,后期会补上。
面向对象基本概念
对于自己来说,已经不是第一次接触面向对象的语言和思想了,因为在这前,已经接触过python了,它也是一门面向对象的语言;对于面向过程语言和面向对象语言,使用习惯了面向过程语言的话(比如说c语言),刚开始学习面向对象的语言时,可能会很不习惯这种面向对象思想;比如我们经常使用c语言来实现一个功能(一般都是通过函数来实现一个功能模块,在具体实现的话,直接在主函数main里面调用这个函数就行了),但是用面向对象语言来实现同样一个功能的话,你的写法和想法就不是这样了;这里暂时的话,先不讲,我们先来看一下下面一些基本的面向对象基础概念:
1、类和对象的概念:
- 类:指的是一类事物,是一个抽象的概念。
- 对象:指的是属于某个类的具体一个实体。
- 类是一种模型,这种模型可以创建出不同的对象实体来。
- 对象实体是类模型的一个具体实例
注意:一个类可以有很多对象,而一个对象必然是属于某个类的(这里面我们讲的对象,可以不是我们交往的对象哦,记住千万不要想多了,哈哈!)。
下面就举一个具体的例子来理解对象和类(比如下面的图片,鱼是所有鱼类的总称,这就是表示类,而具体叫什么名字就是对象):
2、类和对象的意义:
- 类用于抽象的描述一类事物所特有的属性和行为,比如说电脑配置有CPU,内存和硬盘,并且可以开机和运行程序。
- 对象是具体的事物,拥有所属类中描述的一切属性和行为,比如说,每一只不同的老虎都有不同的体重,不同食量以及不同的性情。
3、类之间的基本关系:
继承:
- 从已经存在的类细分出来的类和原类之间具有继承关系。
- 继承的类(子类)拥有原类(父类)的所有属性和行为(就好比古代皇帝的儿子一样,等父亲老了,退位了,这个时候,儿子就成了皇帝,继承了父亲的一切了)。
组合:
- 一些类的存在必须依赖于其它的类,这种关系叫做组合。
- 组合的类在某一个局部上由其它的类组成。(比如说电脑,它本身拥有硬盘、内存、CPU等,然而硬盘、内存、CPU也是一种类,比如说具体什么型号的硬盘,内存,CPU)。
4、类的表示:
下面我们是从一个具体例子来来慢慢引入到我们熟悉的编程语言方式来表示:
接着:
这里存在两个问题,仔细观察的话:
- 类之间的继承关系没有表示出来。
- 继承而来的属性和行为要经常重复申明,这样表示有点麻烦。
所以还有接下来的表示:
注意这样上一步的问题是让我们解决了,但是我们还有一个问题,这样写的话,我们的编译器不认识我们这样写,接下来我们就要用我们所学的编程语言来表示了:
代码语言:javascript复制 #include <stdio.h>
struct Biology {
bool living;
};
struct Animal : Biology {
bool movable;
void findFood() { }
};
struct Plant : Biology {
bool growable;
};
struct Beast : Animal {
void sleep() { }
};
struct Human : Animal {
void sleep() { }
void work() { }
};
int main()
{
return 0;
}
注意:我们的类写法:一般是英文单词开头大写的,其实这里的写法和我们c语言里面的结构体写法很像;类之间继承使用":"来衔接的。
总结
今天的文章就分享到这里了,晚安!