V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cssnote
V2EX  ›  问与答

能否通俗讲一讲php中的“面向对象”和“类” 是什么东西?

  •  
  •   cssnote · 2013-06-19 07:57:27 +08:00 · 2796 次点击
    这是一个创建于 4200 天前的主题,其中的信息可能已经有所发展或是发生改变。
    5 条回复    1970-01-01 08:00:00 +08:00
    raincious
        1
    raincious  
       2013-06-19 08:08:51 +08:00   ❤️ 1
    我的理解:

    类 是 对象 的容器。是用来实现对象的代码本体。

    对象是代码产生的操作体。

    拿文件读取来举例子:

    以前读取文件需要几个操作,分别是fopen,fget,fclose。

    这时候要使用这些很多人就觉得不方便,比如这些函数太多了不好记忆等等。

    于是乎,别有用心的一撮人就发明了“对象”这种东西,PHP也就引入了。

    这样的好处是,代码模块化程度突然就变高了。重构要方便很多,而且分工更容易。(当然要先组织好结构)。

    于是你可以这样来读取文件了:

    $fileReader = new file('filename.ext');

    $fileReader->getContent();
    $fileReader->getLine(1);
    $fileReader->getChar(1024);
    $fileReader->getExt();
    $fileReader->getSize();
    $fileReader->getTime();
    ....
    oklqh
        2
    oklqh  
       2013-06-19 16:02:53 +08:00
    面向对象是一种程序设计方法
    类是实现这种方法的一种方式,对类进行实例化,就是一个对象了。

    当然了,面向对象的方法不止类这种,javascript还有prototype的方式。
    zhc
        3
    zhc  
       2013-06-19 17:26:20 +08:00   ❤️ 1
    类就是对象,都是老外那直译过来的我感觉误导了不少的初学者.我感觉叫它 "代码块"更合适.

    对象(类)可以理解为具有(封装了)一定功能的一个模块.
    你其他地方可以利用这个类的这些功能(调用它的接口).

    比如说你每天做饭,每天下班后买一堆原料回家在厨房里操作.
    但是你很讨厌每天切啊炒啊煮这些每天重复的操作.
    于是你发明了一个做饭机器,把机器里面的烹饪操作及逻辑都设定的稳定完美(封装逻辑).
    以后每天你回家只要买一些原料丢进机器饭菜自然做好(调用对象接口).
    从此以后每天你都可以非常轻松的方便的吃到美味的饭菜.非常爽.
    其实你机器里面的煤气灶也是一个对象他封装了输气点火等一系列逻辑来简化操作.

    这个机器就可以理解成一个有专门功能被封装好的对象.
    由于内部逻辑你已经通过之前经验封装好. 避免了每天重复的操作使你效率大大提升.

    面相对象的思想可以使你轻松高效进行软件开发.而且逻辑清晰,整个项目在你心里都是一块一块的相互调用.

    以上纯属个人愚见.
    akinoniku
        4
    akinoniku  
       2013-06-19 18:30:17 +08:00   ❤️ 1
    面向对象三大特性:

    封装:把一样东西抽象成类,比如人类,有手有脚(属性),能吃能睡(方法)

    继承:学生和老师都是人类的一种,而且他们除了能吃能睡还能上课!

    多态:虽然学生和老师都能上课,但他们做的不是同一件事(分别是讲课和听课)
    cssnote
        5
    cssnote  
    OP
       2013-06-20 00:11:36 +08:00
    @raincious
    @oklqh
    @zhc
    @akinoniku

    Thanks a lot,今天自己练习了一下,再看看你们的回复,感觉明白不少了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3346 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:23 · PVG 19:23 · LAX 03:23 · JFK 06:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.