美文网首页
什么是对象, 什么是类

什么是对象, 什么是类

作者: spike15 | 来源:发表于2016-08-28 23:57 被阅读0次

    "为什么要写类"

    对于很多OOP的程序员来说, 就是class
    写一个类,
    是因为这个语言必须从写一个类开始,
    是因为学的时候就是要写一个类,
    是因为框架里要写一个类,
    ...

    造一个房子

    我打算造一间屋子, 但只有一些最原始的材料, 树, 泥土, 草(基本数据类型: int, bool...)。我是如此的心灵手巧, 聪明地使用这些原始材料搭出了一间茅草屋。为了顺利地建造第二间茅草屋, 我们还把建造的过程记录了下来。这样我们就可以造出一间一模一样的茅草屋。

    我的朋友汤姆也想要造一座和我一样的屋子, 这没有什么困难的, 把建造方法告诉他就好了。但是汤姆很高, 之前的门太低了。 他必须要把门造的更高。 但是这样建造的步骤就和之前有些不一样了。 他造出来的门有个洞, 他这可不乐意了。

    我发现其实造个大的门, 和之前基本一样。 造门前, 需要把树木加工成木板。 也就是说, 木板这个相对高级的材料(对象, 抽象数据类型), 是由原始材料加工而来。把加工木板的材料和工序单独记录下来, 我以后就可以重复利用木板这个高级材料了啦。

    我发现木板还不止能造门, 还能用来造桌子, 造床。 这个高级材料真是太好用啦
    同理还有由泥沙造出来的砖头, 用草编的绳子...我创造了世界!!!

    抽象数据类型与类

    如果说木材是对树木的加工做制成, 对象就是我们对数据类型的自定义。而则是制造木材的工序, 是定义这种数据类型的模板

    这里就引出了我们对对象的定义: 对象是一种抽象数据类型, 而抽象数据类型由一组数据及其对数据的操作组成的。

    面向对象编程(OOP)就是以定义抽象数据类型为中心的编程方式。

    类的'分类'

    如果说定义了一种抽象数据类型的类才是我们想要的「真类」, 那么想对应的, 也有我们为了利用class的方便, 把过程式的想法塞在class中的「伪类」
    比如在定义了一堆静态方法的工具类, 就是我们为了方便地分门别类地存放各种函数

    在编程了一段时间之后, 我们写出来的类越来越越不像类了, 就是因为那些类不再是抽象数据类型了。
    当然, 并不是说在编程过程中所有的类都是「真类」就是好的, OO的本质是复用, 把握好抽象的尺度, 才能让我们的程序最有效率地实现复用。

    相关文章

      网友评论

          本文标题:什么是对象, 什么是类

          本文链接:https://www.haomeiwen.com/subject/jarxettx.html