工作这么多年,你能向新人解释清到底什么是面向对象编程?
微信搜 「yes的练级攻略」干货满满,不然来掐我,回复【123】一份20W字的算法刷题笔记等你来领。 个人文章汇总: https://github.com/yessimida/yes 欢迎 star ! 你好,我是 yes。 面向对象编程想必大家都耳熟能详,但是写了这么多代码你对面向对象有清晰的认识吗? 来看看这几个问题: 到底什么是面向对象编程? 和面向过程编程有什么区别? 什么又称为面向对象语言、面向过程语言? 用面向对象语言写的代码就面向对象了? 面向对象编程真的就这么好吗? 复杂的业务用面向对象编程就合适了吗? 我还真没具体地定义过到底什么是面向对象编程。 所以假设有人问到底什么是面向对象编程?有什么好处? 一时还真不知道怎么说,或者说成体系的解释。 这篇文章我就谈谈我的理解,也试着看能不能说清啥叫面向对象编程。 正文 从二进制命令到汇编语言。 从汇编语言到面向过程语言再到面向对象语言。 计算机语言的发展是为了便于人类的使用,使其更符合人类的思考方式。 计算机的思路就是取指执行,一条直道走到底,它可不会管你什么抽象,不管什么业务建模,通通得给它变成一条条指令,排好顺序让它执行。 而我们人类不一样,我们的思维在简单场景来看是一条道,但在复杂场景就需要做各种分类,才能理清楚关系,处理好事务。 就像法庭,分为法官、书记员、法警、原告、被告、证人等角色。 这么多人分好类