编程中类、对象的概念

这两天新一届学弟学妹才开始学习编程语言,看到函数和类的时候不是多明白,回想起当年才学习的时候也是这样,所以决定写一篇最直白的博客来帮助大家理解一下什么是类(class),什么是对象(object),顺带提及一点函数(function)。

类是一个抽象的概念,是对某一类事物的抽象。举一个例子,可以把人类看作一个类,这个类的共性有:第一、站立行走,第二、有一个很发达的大脑,上面这两点都是静态的,描述的是客观的属性(attributes)。人类还需要吃饭、需要睡觉,上面这两点都是动态的行为,即方法(methods)。类可以包含函数,函数在类中就是动态的行为,即方法。
  
  对象就是类的实例化,人类是一个类,而每一个人就是人类的实例化,即每一个人就是一个对象,对象具有类的属性及方法(每个人都站立行走、有一个发达的大脑,并且需要吃饭睡觉)。

这样来解释继承(inheritance)也就很简单了,继承是小的类来继承大的类。比如刚刚的人类是就是一个很大的类,那学生就是一个比较小的类,学生类可以继承人类这个类,继承之后,学生就具有人类所含有的属性方法(站立行走、有一个发达的大脑,需要吃饭睡觉),此外,学生类由于是一个更小的类,所以也有一些人类所不具有的特性,即更加细化,比如学生类具有去学校上学这个行为,但人类就不具有。反过来,人类和动物类相比,人类是一个小类,动物类是一个大类,人类可以继承动物类。人类会具有动物类的一些属性,比如会死亡。

那为什么编程中需要创立类这个概念呢?类就相当于一个模板,在模板中把属性和方法定义好,当创建类的对象(object)时,这个对象就自动具有该类的属性和方法,不需要再去手动声明。比如刚刚的人类都有站立行走、有一个发达大脑两个属性,还有吃饭睡觉两个方法。这样我在创建这个类的具体对象,比如小明,他就自动具有那两个属性和两个方法。创建一个对象可能不觉得什么,要是创建1000个对象咋办?如果没有类,创建这1000个对象我们需要一个个去声明他们的属性和方法。所以类可以提高我们的编程效率。
  类还有其它很多优点,比如模块化编程,将具有特定功能的一个组件封装到一个类中。以一次考试场景为例,首先,考试开始时需要老师分发试卷,学生收到试卷后,需要填写姓名学号,然后开始答题,答题结束时,需要上交试卷,这时候老师收取试卷,之后需要批改试卷,学生收到批改完的试卷时,内心的感受不一样。如果按照传统的面向过程编程(即没有类与对象的概念,按照事物发生的顺序进行编程,想实现以上一个简单的考试场景都会比较繁琐),现在面向对象编程(OOP, Object Oriented Programming),首先将该场景的对象进行抽象,抽象出了老师和学生两个类,他们各自的属性方法如下。
  老师类:
     方法1:分发试卷
     方法2:收取试卷
     方法3:批改试卷
  学生类:
     属性1: 心情(得到批改后的试卷的心情)
     方法1:填写姓名学号
     方法2:答题
     方法3:提交试卷

由此可见,面向对象编程将各个模块独立,使得结构更加清晰,可以减少bug的产生、提高编程效率。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37474693/article/details/78165962

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值