五岳之巅的面向对象入门(PHP版本)之一:为什么?

简介: 一、前言        有很多人做了N久的程序员,还在使用面向对象的方式做程序。    即便他们使用的是C++、Java、Python、或Ruby等,使用面向对象语言未必就一定是面向对象编程;反之亦然,使用面向过程的语言如C语言,也未必不能完成面向对象的程序。
一、前言    

    有很多人做了N久的程序员,还在使用面向对象的方式做程序。

    即便他们使用的是C++、Java、Python、或Ruby等,使用面向对象语言未必就一定是面向对象编程;反之亦然,使用面向过程的语言如C语言,也未必不能完成面向对象的程序。Linux的内核代码就是用C写就的(当然还有很少量的Asamble),但里面融入了很多面向对象的思想,严格的说Linux内核越来越“对象化”了。
 
    Linus曾经不止一次的在公开场合宣称,打死也不用C++,而且一直认为面向对象的C++和Java冗繁而效率低下。但是在IT业界,如果是写代码的,不会面向对象就只能是程序员,面向对象后慢慢就可以开始干软件工程师了。可见,市场对面向对象非常认可,它是完成团队化作业的必备武器。如果您也是IT超级天才,一个人就可以干出一个大软件,那么您就不必非得使用面向对象了(如果项目大,我仍然建议使用OO)。

    
二、感受
    
    面向对象感觉是个好东西,也很想学,也找了很多教程来啃,结果非但没学成,而且感觉越来越乱,甚至开始觉得自己是不是一上30岁,接受能力骤减,不再适合干IT了。郁闷随心而来,换一门面向对象语言再学,还是那样。

    面向对象一般程序员而言,就是恶魔,但这个恶魔拥有强大的能量,掌握它、驯服它都不容易。和面向过程的C语言不同,面向对象的学习曲线非常陡,极不容易爬上这个坡。面对着的这座巅峰,我们如何是好?

三、自我测试

    想学面向对象,或者说想学到面向对象的精髓,达到灵活运用的程度,该怎么办呢?

    学习面向对象,不能一开始就一头扎到语法中去,因为此时你还不会游泳,这样下水一定会被淹死。当然你可以选择留在岸上或者坐船远航。留在岸上的不论是在勇气、毅力、决心或具体实施力上注定就是一个程序员了(不是在说你,请勿对号入座)。

    经我分析,只有这些不怕晕船的人可以学好面向对象:
    1、自己想独立完成一个项目,项目或大或小都可以;
    2、已经掌握传统的顺序、选择、循环常规武器;
    3、在现实世界或精神世界或网络世界成为过组织者或管理者;
    4、独立动手能力强,看到“while/for”就有冲动想试试“1+2+...+100”是不是5050诸如此类的“拓展验证派”。

    其中,最为关键的是“角色”和“拓展验证”这两个因素。

四、跋

    我是一名大学计算机教师,通过通俗的语言说明复杂的事情是我的职责,看到周身的同事和从事IT的同学们,我觉得有必要好好研究一下面向对象,并把最简单、最直接(绝对不会是最轻松,因为刘凯说过:“看会不是会”)的方法告诉大家。

    现在就开始吧。

    面向过程和面向对象,都是思想工具而非开发工具,正如前文所述不论你用支持面向对象的语言如Java可能一直在做的还是面向过程的事。第一个结论:请大家必须记住:面向过程和面向对象与具体的语言无关,只是在具体实现想法的时候必须用某种编程语言如PHP来表达而已

    简单地说,打个比方:我有个想法“肚子饿了,要吃饭”,说中文也行(Java)说英文也行(PHP)说法语也行(C++)。不管你用什么语言,其实都能表达出想吃饭这个想法,这个想法就是编程思想,面向对象就是这个层次的。当然,全面的说,不仅是这个层次的,面向对象的核心是采用面向对象的思想处理问题,把思想用语言表达出来,就得使用工具,从抽象到具体:UML做系统分析和描述,是高层的,再用Java语言具体实现代码是最低层的实现罗。

五、Start now on...

    是不是面向对象是万能的呢?首先,写一个hello,world程序。使用面向对象得建个类,在使用new或::的方式输入结果,还不如直接print出来多愉快。所以,小东西面向对象不是必须的。如果让大家编写一个工资管理系统,使用面向对象就合适了,因为代码有许多重用的地方,而且这次开发了工资,也许领导一看高兴,接着让你开发人事管理系统呢,都采用面向对象方式,会省许多事。

    所以,第二个结论:项目越大,越应该使用面向对象方式。项目越小,或者连项目也不是,直接使用一个函数了事算了。

    下一章,我将和大家共同分析一个计算器程序的PHP实现,希望各位能从中体会到面向对象和面向过程的根本差异所在。
相关文章
|
30天前
|
PHP
PHP中的面向对象编程入门
在PHP的海洋里,面向对象编程(OOP)是一艘承载着代码复用与组织之美的巨轮。本文将带你启航,从基础概念到实际应用,领略类与对象的风采,掌握封装、继承、多态三大奥义。准备好你的航海图,让我们揭开PHP OOP的神秘面纱,驶向高效编程的彼岸。
|
3月前
|
缓存 安全 PHP
PHP中的魔术方法与对象序列化
本文将深入探讨PHP中的魔术方法,特别是与对象序列化和反序列化相关的__sleep()和__wakeup()方法。通过实例解析,帮助读者理解如何在实际应用中有效利用这些魔术方法,提高开发效率和代码质量。
|
2天前
|
存储 缓存 安全
网安入门之PHP后端基础
PHP 是一种服务器端脚本语言,广泛用于动态网站和Web应用程序开发。其文件扩展名为`.php`,支持嵌入HTML、CSS和JavaScript。PHP代码由Web服务器解析后返回给浏览器。PHP是弱类型语言,变量以`$`开头,支持字符串、整数、浮点数、布尔值、数组、对象等类型。PHP具有跨平台、开源、丰富的扩展库等特点。常用超全局变量如`$_GET`、`$_POST`、`$_SESSION`等处理用户输入和会话数据。HTTP请求方法GET和POST在数据传输方式、长度限制、安全性等方面有显著差异。
网安入门之PHP后端基础
|
1月前
|
PHP
PHP中如何比较两个对象
在 PHP 中,比较两个对象可依据状态(属性值)或身份(内存地址)。常用方法包括:1. 使用 `==` 比较属性值;2. 使用 `===` 比较身份和属性;3. 实现 `__equals()` 方法自定义比较逻辑;4. 使用 `spl_object_hash()` 比较对象身份;5. 手动比较属性。选择方法依需求而定。
|
2月前
|
Java 程序员 PHP
01 入门PHP就来我这-安装phpstudy
路老师的PHP入门教程,带你从零开始学习PHP。首先下载并安装phpStudy,接着配置域名和端口,最后创建并运行第一个PHP文件。内容详实,适合初学者。
52 3
01 入门PHP就来我这-安装phpstudy
|
2月前
|
安全 关系型数据库 PHP
探索PHP:从入门到精通
【10月更文挑战第38天】在这篇文章中,我们将一起踏上PHP的探索之旅。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和技巧。我们将从PHP的基础开始,逐步深入到更复杂的主题,包括面向对象编程、数据库操作、安全性问题等。最后,我们将通过一些实用的代码示例,来展示PHP的强大功能和灵活性。让我们一起开始这段旅程吧!
17 2
|
2月前
|
存储 PHP
09 PHP高级面向对象,大多数人不了解的东西!
路老师分享了PHP语言的高级应用,包括final关键字、抽象类、接口使用、对象类型检测及魔术方法等。通过实例详细讲解了PHP面向对象编程的核心概念和技术要点,帮助读者深入理解和掌握PHP。
33 3
|
2月前
|
存储 Serverless PHP
PHP编程入门:从基础到实战
【10月更文挑战第35天】本文将带你走进PHP的世界,从最基本的语法开始,逐步深入到实际应用。我们将通过简单易懂的语言和实际代码示例,让你快速掌握PHP编程的基础知识。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到你需要的内容。让我们一起探索PHP的魅力吧!
|
2月前
|
Java PHP 开发者
08 PHP面向对象的高级操作
路老师分享PHP语言知识,帮助大家入门并深入了解PHP。内容涵盖构造方法、析构方法、继承、多态、`$this->`与`::`操作符的使用,以及数据隐藏等核心概念。通过详细示例,讲解如何在实际开发中运用这些技术。适合初学者和进阶开发者学习。
32 2
|
2月前
|
PHP
07 PHP的面向对象你真的了解吗?
路老师分享PHP语言知识,帮助大家入门并深入了解PHP。本文介绍了面向对象编程的基础概念,包括类、对象、封装性、继承性和多态性,以及类的定义、方法、实例化和成员变量等内容。下篇将讲解构造函数、析构函数及PHP对象的高级应用。
36 2