精华内容
下载资源
问答
  • 首先,什么是编程思想编程思想是一种指导思想,这个指导思想,将会诱发你如何写代码的行为。 如果理解这话的意思呢?打个比方,中华文明千百年在民众心中形成了一个“统一天下”的思想,这种思想会诱发各个混乱...

    一.首先,什么是编程思想?

    编程思想是一种指导思想,这个指导思想,将会诱发你如何写代码的行为。

    如果理解这话的意思呢?打个比方,中华文明千百年在民众心中形成了一个“统一天下”的思想,这种思想会诱发各个混乱时期的诸侯或者军阀,以统一中国为目标,而不会像欧洲一样以分裂中国各自独立、各自称帝为目标。

    编程的思想是什么,如何建立编程思想,如何训练和提高编程思想?

     

     

    那么编程思想有哪种种类呢?

    1)面向过程编程。这是我国绝大部分程序员的思想。这种思想诱发了他们写代码的时候这样的现象:一个方法中写了糅杂了很多的业务逻辑,或者从ui层(点)业务逻辑层(点)数据库访问层这种路径的写法。

    2)函数编程。典型的如很多人写的javascript中的function函数。各种业务就以各种很多的function进行编写。

    3)面向对象编程。这是比较高级和抽象的思想,它具有三大特性五大原则。即封装、继承、多态,单一、开闭、里氏替换 、依赖倒置、接口隔离。

    话外:有些人会告诉你数据结构、算法,我要跟你说的是,那不是编程思想,是编程能力,考验你的逻辑运算能力,你越出色,那么你应对的复杂科技领域就可以更加深入,最终你可以达到科学家的范畴。

     

    编程的思想是什么,如何建立编程思想,如何训练和提高编程思想?

     

     

    二、编程思想的优劣和选择。

    面向过程和函数编程,是每一个刚毕业的毕业生就会的原始思想。即,只要学习了编程,那么他一开始写的代码,就是这种思想,不需要教,就会的。

    而面向对象编程,则是进阶抽象的。本质上来说,一个程序员的进化,实际上是面向对象编程思想的培养、形成、发展、成熟的过程。

    所以,你现在应该知道最优的思想是什么,没错:面向对象。

    三、如何建立编程思想

    首先,你要时刻谨记面向对象的三大特性五大原则,那几个字,你是很熟悉的,但你绝对不认识他里面所蕴含的恐怖威力。即:你认得到字是一回事,理解和运用它是另一回事。

    然后,你要在你的实操过程中,时刻思考你是否用上了它的特性及原则。

    最后,不断的尝试去修正和更改你的代码,慢慢的,你的面向对象编程思想将会开始建立。

    如果大家对C/C++感兴趣的话,可以加一下我们的学习交流Q群:637  935  295,免费领取一套学习资料和视频课程哟~

    编程的思想是什么,如何建立编程思想,如何训练和提高编程思想?

     

     

    四、如何练习、训练和提高编程思想

    1.通过学习设计模式。

    刚开始的时候,你自己不太可能有对象思想,因为你还未形成对象思维,此时,你需要借助前人的模式总结,不断的练习,通过为模式而写模式的训练去提高它。

    2.通过不断的重构已编写好的业务逻辑代码,这需要大量的实践,使他能够让你自己觉得符合三大特性五大原则。

    3.评判一个代码你写得好不好,符不符合对象编程思想,有一个非常简单和粗暴的标准:

    你的方法体,去除注释,如果你能够让你的每一个方法的逻辑,他的方法体代码行数不高于30行,那么你估计就是写的有成效的。如果你能够发现你的很多方法体,代码行数仅仅只有10行以内个位数的代码时,你的面向对象编程思想已经成熟。

     

    编程的思想是什么,如何建立编程思想,如何训练和提高编程思想?

     

     

    4.将代码思维持之以恒。

    通过不断的实践练习,改变你原来天生的过程式编程思想,这需要一个漫长的过程,从我的实践经验来看,至少要3年以上的实践训练,所以从此意义上来说,5年以下的中国程序员99%都不会面向对象。当你不再为模式而写模式时,你随手写的代码是如此的简洁美妙时,你已经比中国95%的程序员牛B了。

    展开全文
  • 编程思想

    千次阅读 2018-11-07 11:14:13
    什么是编程思想?答案可能很会复杂,但也可以很简单。一句话来讲就是,用计算机来解决人们实际问题的思维方式,即编程思想。 我们学习编程语言的最终目的,就是希望用计算机来解决我们的实际问题。那么学习计算机该...

    转载https://blog.csdn.net/shupan001/article/details/6824668
    什么是编程思想?答案可能很会复杂,但也可以很简单。一句话来讲就是,用计算机来解决人们实际问题的思维方式,即编程思想。
    我们学习编程语言的最终目的,就是希望用计算机来解决我们的实际问题。那么学习计算机该如何入手,也是很多初学者犯难的一个问题,特别是对与非计算机专业的人来说更是如此。面对现实如此多的编程语言(比如:C,C++,JAVA,C# …)和 种类繁多的应用技术(比如: windows编程, linux编程,数据库, 网络编程 …)。确实让人有些眼花缭乱,摸不着头脑。此篇文章就来谈谈学习计算机的步骤和编程思想的发展。

    一:认识计算机

    计算机的发展大家也有所了解,在这里就不多费口舌。我们现在用的计算机CPU只能认识0和1,这是目前的现状。(如果你能发明另一种机器,能够识别更多的符号,那么我支持你,并由衷的希望你能有所成就)这个阶段里面代表性的书籍就是"计算机组成原理"。这门课的精髓在于两点:第一,计算机由哪些部分组成,各有什么作用,少一个组成部件会有什么后果。虽然当初我对这本书看得不是很透,但看完后我至少就知道了,电脑只要有个CPU,主板,内存就可以点亮了。加个软驱,就可以运行DOS超作系统。再加个光驱,硬盘,就可以把WINDOWS系统放到硬盘上运行起来。第二,CPU是如何工作,CPU做了哪些事情,CPU为什么只能认识0和1,CPU的寻址方式? 对CPU本人了解得不深,不敢随意卖弄。但有一个还是是需要知道一下的,CPU基础计算只有3个:与,或,非。这3个逻辑门实现了我们现在所有的计算机程序计算。

    二:过程性的编程思想

    计算机只能认识0和1 ,但人却不能只是用0,1来写程序。为了程序的写得方便就出现了0,1的第一层抽象标记,汇编语言。汇编里面的那些标记可是直接对应硬件的。硬件生产厂商都有明确的指令说明书。这些汇编标记是可以被硬件直接识别的。比如CPU,生产CPU的厂家都会有寄存器的标识比如(ax,bx,cx),操作指令标识(mov),等等。驱动方面的编程大多会用到这方面的东西。学习汇编的核心是你需要认识到汇编是一种过程性的编程语言,并且目前的CPU只能执行过程性的程序,任何高级语言都必须转换成过程性的编程语言后再交给CPU执行。在汇编里主要有三个操作:比较,跳转(goto),过程调用(call)。为什么说它是过程性的编程思想,值得你去好好的体会一下。不妨写几个算法的程序(在程序里面用到比较,跳转,过程调用),再来看看汇编程序的特点,相信你会有所感悟。值得提一下的是,如果你对操作系统感兴趣,也可以看看什么是保护模式。

    三:结构性的编程思想

    随着人们解决的问题越来越复杂,汇编程序当然束缚了计算机软件的发展。因此编程思想发生了一场革命性的变化,结构性的编程方法出现了。在结构性编程思想的编程语言里面,C语言首当其冲。C语言里面有几个能表现出结构化思想的地方:分支(if), 循环(while,for),结构体(struct). 只要你会用这三个,那么你就可以写出结构化的程序,但不一定你就了解什么是结构化的编程方法。什么叫做结构化?为什么说goto会破坏程序的结构化?结构体有什么作用,你能说出结构体的哪些好处? 这些都是值得认真体会的地方。别人给的定义不见得都全面。还是自己理解比较靠得住。结构化编程里面最具代表性的书籍就要属"数据结构",具体哪本书比较好就不知道了,好像都差不多,只要是用C写的就行。C语言的"数据结构"里面就是专门来讲怎么用结构性的编程思想来解决实际中的算法问题。看完某些章节,然后自己找个问题,再用程序去实现它。多写一些程序,会很有帮助。如果第一遍看完后你看得很模糊,不防先放一放,过一段时间再看看,你可能会有种霍然开朗的感觉。还有需要说明一下,并不是所有的时候结构化的编程一就定好。某些的时候,结构化的编程会使程序更繁杂。(比如结构化编程希望函数只能有一个入口,一个出口。然而有时一个出口会使程序看起来更繁杂)

    四:面向对象的编程思想

    现在该说说面向对象编程了。这个也是现在用得最多的编程思想。什么是面向对象,它和结构性的思想有什么不同?从程序语法上看,面向对象比结构性的程序多了两个特性:
    1, 结构体成员的私有化。结构化程序里面,结构体的成员都是公有的。然而在面向对象里面,结构体改称为类,并且成员分为公有和私有两个部分。就因为这一点的不同,就产生了接口的概念。接口不就是类成员的公有部分么?(想想很好笑,本人刚开始认识面向对象的时候,以为只有定义成interface的才叫做接口)
    2, 类的继承。因为出现了继承,才出现了多态。然而就是因为多态,才出现诸如:隐藏啊,虚函数啊 …等等这些概念。多态的出现,能够让同一组数据,在不同的阶段,用同一种表达方式,执行不同的操作。如果把这个东西领悟到了,那么你会感叹一句"原来程序是可以这么写的". 因为以上两点的变化,编程思想也随之发生了巨大转变。它可以让程序更适合人的思维方法来编写。面向对象的编程语言就很多了,可谓五花八门 :C++ , JAVA , C# 这三个本人都用过。用的感觉在这里也随口说说,只是代表个人观点。都说C++和JAVA有很大的不同,而JAVA和C#却非常相似,你知道为什么吗?最根本区别就在于垃圾收集器。就是因为JAVA里面有垃圾自动收集功能,所以JAVA不能和C兼容,而且也不能使用指针。在C++中的值类型和引用类型是可以自己定义的。如果对象被定义为值类型,那么当编辑器自动把对象收集走之后,有时自己会一无所知。如果对象被定义为引用类型,那么又要必须记得把它释放掉,不然又会引起什么内存泄漏的问题。在JAVA和C#里面就不一样,在这两种语言里面,自定义的类,初始得到的对象只能是引用类型。并且有垃圾收集器帮你回收垃圾对象。所以就不会出现内存泄漏的问题。

    因为C#比JAVA后出来吧,JAVA所具有的特性,C#基本上都有。并且还具有一些JAVA所不具有的特性(但C#目前不能在linux上面运行)。当然在这里不是说哪个语言好,哪个语言坏。其实他们都是来实现面向对象编程的工具。你也可以用C或者汇编写一门支持面向对象的语言出来(如果你想做,本人绝对支持,或者用汇编也行。为中国的软件事业贡献一份力量,免得总说什么什么语言都是他们外国人发明的。)只要它能够实现数据封装,成员私有化,和继承就行了。在面向对象的编程里面,代表性书籍就要属"设计模式"了。不过设计模式这个东西,不是你看书就能看懂的。并且你硬套那些模式,不一定对你有多大的好处。这个东西,只有设计做多了,才能有所领悟,自己得到总结。总结多了,就会发现和书上的那些东西不谋而合,或许可能比书上总结得更好 。

    好了,目前编程思想的发展就到这一步了。将来的编程思想的会是一个什么样子,我也不得而知。希望有志之士能够发明一种编程的思想出来,推动软件业的发展,让中国也来引领一下世界软件的发展潮流。如果你是初学者,可以按照上面的顺序来学习计算机。希望在每个环节中能掌握其重点。相信一年之后,你就会有所感悟。 大家都希望学的东西是可以用来赚钱的。而往往能够快速用来赚钱的都是一种应用技术像windows编程,linux编程,WEB开发等等。你掌握了其中的一门技能,就可以谋得一个职位,可能还可以拿到一个不错的薪水。然而如果你掌握了编程思想,那么那些应用技术将一通百通(因为应用技术往往都是对特定的一些函数的调用,通俗一点就是调用API,这些东西到专门的网站上查手册将一目了然,比如windows编程,http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/WindowsUserInterface/Windowing/WindowClasses/UsingWindow.asp 这就是一个入门的例子)。 掌握了编程思想你将不在局限于某个特定的编程技术,而是对整个软件系统有了全局的把握,研究的不再是编程技术,而是协议和规范。

    大家在学习初期看书。最好不要看电子书,而是买书本看(电子书用来当词典查阅一下还是不错的)。因为电子书看一会眼就花,给人造成一种烦躁的情绪而不能静下心来好好体会书里所说的内容。一本书,一支笔,加一个草稿本,是最佳的学习状态。如果你是在校学生,你可以到http://www.xiangyataclub.com里看看你本校内有没有你想要的二手书或者学习用的电脑设备,这样能使得资源可以重复利用。遇到不懂的地方到论坛里面讨论一下还是不错的,比如http://www.csdn.net里面一般性的问题能够找得到答案。学习计算机需要达到一种状态,就是在任何时候脑海里面都会在隐约的思考:对计算机里面某种原理的理解,或者寻找某种问题的算法。有时一个新想法的闪现会让自己兴奋不已。如果你表现出这种状况,说明你对计算机有着浓厚的兴趣。

    最后补充一点,就是中国的一句老话"尽信书,不如无书"。编程的学习还是需要有一点批判的精神和创造的精神才好。对于某些东西不要过早下定论,或许你某一个智慧的闪光,将为计算机开辟出一个新的发展方向。

    编程思想在我实践看来就是这样一个事情,很多代码你认真的都啊都啊,开始有很多不明白,他们为什么这么做,有的是不明白他们在干什么,有的是不明白他们为什么搞得这么别扭,慢慢的就了解编写过程中一些敲门。在读啊读啊,你就能明白怎么遵守他们之间的那种默契和协定(中国没有),在读啊读啊,你就开始自己想写些什么来表达你对他方法的不认同,然后会有很多国外的高手会告诉你你的错误(他们真的很好很谦虚,愿意和你探讨的!国内没有遇见过。我所知道的高人都玩潜水可能)。然后你就不感造次了,冷静的读啊读啊,直到有一天你突然觉得就是你自己对了,他们都错了,你就又发表文章了,这回国外的高手明显少了,只有1,2个人发来邮件详细谈谈,你可能对了可能错了,于是你不仅继续读啊读啊,也开始研究啊研究啊,这时候基本上你开始回人家的问题,等你一旦发表文章的时候就会引起圈内几个知道你的人注意,你继续努力,注意你的人就会越来越多,这时候你就有了小小小小的名气,开始有人找你希望你能加盟或者帮助开发等等。

    可能有人说,我没有谈到编程思想,但是我告诉你,没有编程思想,在这个过程中,你明白了游戏规则,你取得了他人的认可,你就有了编程思想,这是潜移默化产生的,说白了这个思想就是在这个圈子里高手之间尊从的一种合同,大家都这么做,规则就这么建立了,直到有人提出新的合同方式,大家再去讨论,你在去发展。有人可能问我搞什么,我告诉你搞linux方面的工作(但绝对不再中国那几个linux公司干)。有人问我用了多少时间,我告诉你学习用了将近3年,搞出一点点明堂用了1年多。

    因为我不是很聪明,所以用了这么长时间,但是我相信3年时间是肯定要的,我每天至少6个小时埋头学习,4年时间,懂得了编程思想,真的很苦,很寂寞。所以如果你不是非常热爱这项事业,请慎重,如果你热爱,请努力。

    展开全文
  • 面向编程思想

    千次阅读 2018-03-08 00:38:48
    面向对象编程思想简介什么是编程思想?所谓的编程思想,就是人们用计算机来解决实际问题的时候的一种思维方式,或者说是一种基本的策略;常见的编程思想有面向过程和面向对象,很多语言的语法各不相同,但是,基本的...

    面向对象编程思想简介

    什么是编程思想?

    所谓的编程思想,就是人们用计算机来解决实际问题的时候的一种思维方式,或者说是一种基本的策略;

    常见的编程思想有面向过程和面向对象,很多语言的语法各不相同,但是,基本的编程思想却是差不多的!

    PHP同时支持面向对象和面向过程两种编程思想的语言!

    面向过程的编程思想

    传统的面向过程的编程思想总结起来就八个字——自顶向下,初步细化! 基本策略如下:

    ü将要实现的功能描述为一个从开始到结束的按部就班的连续的“步骤”(面向过程)

    ü依次逐步完成这些步骤,如果某一个步骤的难度比较大,又将该步骤再次细化为若干个子步骤,依次类推,一直到结束得到想要的结果!

    ü程序的主体是函数,一个函数就是一个封装起来的模块,每个模块都可以实现特定的功能,各个子步骤往往就是通过各个函数来完成的,从而实现代码的重用和模块化编程!

    案例:大家去学校“报名上学”这件事,可以分成哪些步骤?

    所谓的面向过程,就是将上面分析好了的步骤,依次执行就行了!

    面向对象的编程思想

    所谓的面向对象,就是在编程的时候尽可能的去模拟现实世界!

    现实世界中,任何一个操作(动作)或者是任何一个业务逻辑的实现都需要一个实体去完成,实体就是操作(动作)的支配者,没有实体,就没有动作发生!

    思考:上述报名的每一个步骤都有哪些动词?

    提出 提供 缴 分配 增加

    有动词就一定有实现这个动词的实体!

    所谓的模拟现实世界,就是使计算机的编程语言与解决相关的业务逻辑的时候,与真实的现实世界中的业务逻辑的发生保持一致!需要使某个动作都是依赖于一个实体的“动作/操作/行动”,可以看做是一个一个的实体在发挥其各自的“能力”并在内部进行协调有序的调用过程!

    如果采用面向对象的思想,解决上面的报名的问题应该如下:

    1,分析哪些动作是由哪些实体发出的!

    提出 提供 缴 分配 增加

    学生提出报名->学生缴费->学校收费->老师分配教室->班级增加学生信息

    于是,在整个的报名过程中,一共出现了多少个实体?

    四个:学生、x学校、老师、班级

    在现实中的一个具体的实体,就是计算机编程中的一个具体的对象!

    2,定义这些实体,为其增加相应的属性和功能(功能就是能完成的动作,在面向对象的专业术语中叫作方法,其实也就是函数)

    1,让实体,去执行相应的功能或动作!

    学生提出报名

    学生缴费

    机构收费

    教师分配教室

    班级增加学生信息

    班级管理学生信息

    所以说,面向过程主要是针对功能,但是面向对象主要是针对能够实现这些功能的主体(实体)

    从面向过程到面向对象编程思想的转变

    以前写代码,首先想到的是需要实现什么功能——可以调用系统函数,也可以自己定义函数,或者按部就班的执行!

    以后写代码,首先想到的是应该有什么样的实体(主体)去完成什么样的功能,再把这些实体的属性和功能进行封装,最后才去实现这些实体的功能!

    面向对象不是一种技术,而是一种思想,是一个解决问题的最根本的思维方式!

    所以,面向对象的核心思想是:不仅仅是简单的将某些功能进行封装,而是对调用该功能的主体进行封装,如果一个实体拥有多个功能的话,在使用的过程中,先得到相关的对象,再使用对象去调用其相关的功能!

    面向对象与面向过程的对比

    1,都可以实现代码重用,以实现模块化编程,但是面向对象的模块化更深,数据更封闭,也更加安全!

    2,面向对象的思维方式更加贴近现实生活,所以也更容易解决大型的复杂的业务逻辑!

    3,从前期开发的角度来看,面向对象比面向过程要复杂的多,但是从维护和升级的角度来看,面向对象远比面向过程简单!

    面向对象基本概念

    面向对象的阶段概念

    OOA:面向对象分析、OOD:面向对象设计、OOP:面向对象编程

    对象的概念,什么叫做对象,object,现实业务逻辑中的一个动作实体,就对应着OOP编程中的一个对象!

    所以:

    对象是采用属性(property)来保存数据!

    对象是采用方法(method)来管理数据!

    对象如何产生呢?又如何规程对象的属性和方法呢?

    在PHP中,对象是由类实例化而来的,也就是说,在PHP中,要想产生一个对象,必须先有一个类!

    什么是类?

    类其实就是得到对象的一种方法而已!只不过在大多数的面向对象编程语言中,都是通过类来产生对象,但是,也有的面向对象的语言,产生对象的时候是不需要类的!

    为什么要引入类的概念?

    其实类本来也是对现实世界的一种模拟,在现实世界中,任何一个实体都有一个类别!

    类就是具有相同或相似的特征特性的该类事物的一个通用的名称!

    比如:我们都属于人类,人类又都属于灵长动物类,灵长动物类又都属于动物类,动物类又都属于生物类!

    所以,在php中,一个对象是指现实中的一个具体的实体,而既然现实中的每一个实体都有一个类别,所以OOP中的对象也应该都有一个类!

    一个对象的所有应该具有的特性特征信息,都是由其所属的类决定的!但是每个对象又很有可能有自己不同的特征特性信息,比如我自己这个对象名字叫圣骑士,性别男,会写程序,会教书;另外一个对象可能叫章子怡,性别女,会演戏!

    类的定义

    使用class关键字来定义的!

    这就是一个类,只不过里面什么都没有!

    其中,类名不区分大小写,由字母数字和下划线构成,第一个不能为数字,一般类名采用大驼峰法命名(主要是区别方法名或函数名,我们一般使用小驼峰法来表示函数名和方法名)

    思考:类中可以有什么呢?

    先回忆一下以前面向过程中,我们的代码有什么?

    定义常量和变量、定义函数

    使用变量和常量(增删改查)

    调用函数、流程控制(if—else for while do-while 、foreach等)

    语法上,一个类的内部可以具有自己的“变量”和“函数”,但此时技术术语上应该称为“属性”和“方法”,而且,一个类也可以有自己的常量(类常量),

    上面的属性、方法、常量就称之为是类的“成员”!

    所以,定义一个类,其实就是定义三种成员:定义属性(变量)、定义方法(函数)、定义常量(类常量)

    一个需要注意的地方就是,需要对成员进行声明才可以使用!

    声明采用的是访问修饰限定符来声明的,一共有三个:public,protected,private,暂时全部用public来声明,其中另外两个后面才学习!

    有两个特殊的:

    1,public可以用var来代替!只是对低版本的一种兼容!

    2,方法的前面可以省略掉访问修饰限定符!默认的就是为public

    相当于:

    上面就定义了一个含有名字和Money金额和一个缴费方法的学生类!

    注意,在定义类的时候,如果没有给某个属性赋值,默认的就有null型,但是如果给其附上一个初始值,就必须是一个“直接值”,不能是一个表达式计算后的值!

    利用类得到对象

    注意:类本身什么都做不了,必须利用类得到对象,这个过程就叫作类的实例化!

    类的实例化是通过关键字new来完成的!

    语法是:new 类名;

    上面已经实例化了一个对象,不过对象一般都是放到一个变量里面!

    对象如何访问?使用箭头-> 实现对对象成员的访问!

    可以实例化多个对象:

    对象的编号不同,就说明它们占用不同的内存空间!

    instanceof运算符

    可以利用instanceof运算符来判断某个对象是否是由某个类实例化而来的!

    方法中$this关键字

    $this是一个“伪对象”,代表当前所属的类的当前对象!

    $this的自我告白:谁调用我,我就属于谁!

    思考:属性和方法都属于对象的成员,为什么访问属性的时候不需要$this关键字呢?

    再次强调:属性不能在方法内直接访问!需要找到其对象才能访问,一个典型的做法就是使用$this->属性名来访问当前对象的属性

    构造方法

    通常实例化完一个对象后,都要对对象的属性进行初始化才有意义

    也就是说,每次实例化完一个对象后,都要对该对象进行一次初始化操作!比较麻烦!

    思考:如何改善?

    可以类中建立一个专门给属性进行初始化的方法,实例化完之后,直接调用这个方法,一次完成对象的属性的初始化!

    上面的代码可以完成对象的属性的初始化,但是还是不够方便,每一次new完一个对象后都必须手动调用init方法才能进行属性的初始化工作!

    如果new的时候,能够自动调用init是最好的!

    于是,构造方式就横空出世了!

    事实上,在实例化一个对象的时候,php会自动的调用一个名字叫__construct()的方法!

    该方法,由于专门负责对新对象进行初始化,称之为“构造方法”!

    该方法的最大的特点是,不需要人为的手动调用,而是由系统在实例化一个对象的时候自动调用!

    问题是,调用该方法的时候如何将实参传递给该方法的形参呢?

    需要在实例化对象的时候顺便在类名后面增加一对小括号,里面传递实参列表

    注意:

    在php早期版本当中,构造方法有一个比较老的语法,就是使用和类名相同的方法作为构造方法!

    1,如果既有老语法的构造方法名,又有新语法的构造方法名,系统会主动调用__construct方法!

    2,存在一个最兼容的写法:

    析构方法

    概念:与构造方法是一对,构造方法是 在一个对象“出世”的时候由系统自动调用的!而析构方法是在一个对象“消失”的时候由系统自动调用的!

    名字是:__destruct() 注意:该方法里面不能有参数!

    思考:析构方法是在对象消失之前调用的还是对象消失之后调用的?

    对象消失的几种情况:当一个脚本周期结束的时候,明确的使用unset去删除一个对象的时候,改变对象变量的值,也会自动销毁!

    析构方法的作用

    注意:析构方法主要的作用就是释放对象所占用的额外的资源,而不是对象本身

    我们应该在对象消失的时候,增加析构方法,释放该对象占用的额外的 资源

    注意:析构方法通常都需要需要额外的定义,只有在对象执行的过程中,占用了额外的资源的时候才使用!

    总结一下构造方法和析构方法的特点:1,都是以__开头 2,都是由系统自动调用 3,都是某个特定的情况发生的时候,调用相应的方法!

    对象的传值与克隆

    对象的传值

    值传递

    引用传递

    所以,对象的值传递和引用传递其实效果是完全一样的!

    也就是说,对象间的复制,无法开辟一个新的对象空间,有时候,也叫作“浅复制”!

    那么,我们如何利用一个已有的对象,得到一个新的对象呢?(单独开辟内存空间)

    这个时候就需要使用对象的克隆!

    对象的克隆:所谓的克隆,不是通过类的实例化得到新的对象!而是通过一个已有的对象得到一个新的对象!语法如下:新对象 = clone 对象

    克隆一个对象的时候,会不会触发构造方法?

    回答:不会!因为构造方法只有在实例化一个对象的时候才会触发,但是克隆一个对象不是实例化!

    但是,存在一个克隆对象的时候自动调用的魔术方法!

    __clone方法

    该方法就是在克隆一个对象的时候,负责对新对象进行相关的初始化!

    为什么要有__clone方法?

    很有必要,因为客观世界不存在两个完全相同的对象!

    展开全文
  • 一、面向过程编程思想 百度百科这样解释: “面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。 面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向...

    一、面向过程编程思想

    百度百科这样解释:
    “面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。
    面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法。它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。
    个人理解:
    通俗地讲,我们在编写代码时,我们看到是一步一步执行的过程——即面向过程。 最典型的就是c语言,其实就是通过函数体现,并不断的调用函数,执行完成过程即可。
    举个例子,当我们解决一个“如何将大象装入冰箱?”的问题时,最简单的解决思路是面向过程解决:

    1、关注过程,将大问题拆解为小问题,实现每个小问题的解决方法
    a、打开冰箱门
    b、将大象装入冰箱
    c、关闭冰箱门
    2、通过控制代码,控制模块执行,执行顺序为a->b->c,问题解决。

    虽然面向过程编程思想可能看起来比较笨拙,可能会造成代码臃肿,但是它却是最贴近硬件的,CPU在执行指令的时候就是按照一条一条指令执行下去的。

    二、面向对象编程思想

    要了解面向对象,我们首先需要知道什么是对象?

    1、对象和类

    万事万物都是对象,对象是自然界的任一个体,比如一本书、一支笔,一片叶子等,而对象和对象间是有相似之处的,比如书(每本书都是一个对象)都是由纸做成的,都印着内容(性质上的相似点),都是用来看的(行为上的相似点),将这些相似之处抽象出来就是类(抽象这个词很难懂,那么说成是分类、提取出事物的共同要素更易理解),类的实例就是对象。

    2、面向对象编程思想

    百度百科这样解释:
    面向对象(Object Oriented,OO)是软件开发方法。
    面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
    面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

    当遇到一些简单的程序或者逻辑时,我们可以使用面向过程的编程思想,当问题的规模稍大时,我们就需要用到面向对象的编程思想了
    面向对象的主要特征:
    (1)封装:
    封装是一种信息隐蔽技术,它体现于类的说明,使数据更安全,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。
    (2)继承:
    继承性是子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。一个类直接继承其它类的全部描述。如果没继承性机制,则类对象中数据、方法就会出现大量重复。继承支持系统的可重用性,从而达到减少代码量的作用,而且还促进系统的可扩充性。
    (3)多态:
    对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定。

    三、面向过程和面向对象编程的区别

    (1)面向过程的思维方式是分析综合。面向对象的思维方式是构造
    (2)对面向过程而言,数据是独立的。而在面向对象中,对象本身就提供了存储数据的空间(类的数据成员),这样就是函数的参数传递简单多了,而且提供了数据封装后,数据的访问也变可靠了。
    (3)面向过程就是将编程当成是做一件事,要按步骤完成,每一步就是一个过程。面向对象就是将编程当成是一个事物,对外界来说,事物是直接使用的,不用去管他内部的情况。
    (4)面向过程是一种自顶向下的编程。面向对象是自下先建立抽象模型然后再使用模型。

    展开全文
  • OOP编程思想解读

    千次阅读 2018-12-17 22:08:49
    【编程的面向过程和面向对象两种思想此处偏向后者】 面向过程就是分析出解决问题所需要的步骤,然后...面向过程(功能、结构化、模块化)编程思想的缺点 1.软件重用性差 重用性是指同一事物不经修改或稍加修改就可...
  • linux编程思想

    千次阅读 2014-07-13 14:37:01
    在我看来编程思想是一个很高大上的东西,如果你也喜欢打羽毛球,而且专门练习的羽毛球应该知道,在一开始的时候我是学习的基础,基本动作,后来才是按照自己的思想去打球。编程也是如此,首先要有的是牢固的基础。...
  • 面向对象编程思想

    千次阅读 2015-09-28 21:08:02
    面向对象编程思想面向对象的基本概念OOP是一种计算机编程模式, 它将对象作为问题空间的基本元素, 利用对象和对象之间的相互作用来设计程序. OOP的设计思想是以数据为中心, 自底向上, 逐步合并.OOP的最大卖点是其可...
  • 编程思想与技术总结

    千次阅读 2016-05-29 21:35:31
    不是天才,但我相信,通过有效的方法和训练,以及持之以恒地积累,完全是可以成为一名...那么,到目前为止,掌握了多少思想、方法和技术可以用于开发程序、处理软件开发过程中所遇到的问题呢?不妨作下总结,以备后用。
  • C++编程思想重点笔记(上)

    千次阅读 多人点赞 2014-12-01 14:49:24
    这是我看C++编程思想所做的笔记,都是精华内容,不管是程序员新手还是老手,都值得读一读。
  • OOP面向对象的编程思想

    千次阅读 2014-05-25 09:04:52
    1、面向对象的编程思想
  • 编程思想:面向对象和面向过程

    千次阅读 2016-10-09 15:41:22
    而这种茫然,其实就是对这两大编程思想的迷糊之处。本文通过学生到校报道注册的实例,阐述了面向过程和面向对象两大思想。希望能对你的学习和工作有所帮助。一、面向过程首先我们来认识下,什么是面向过程?如果咬文
  • 面向过程”是一种以事件为中心的编程思想。  就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。  “面向对象”(Object Oriented,简称OO)是一种以事物为...
  • 再读《Java编程思想

    万次阅读 2017-04-21 11:27:49
     1、基本功,包括:Java基本知识,(Java编程思想、Effective Java),Java进阶(Java虚拟机、Java设计模式)、网络相关(这个时代没有网络就没有一切,Java网络编程、HTTP权威指南、TCP/IP协议),计算机系统相关...
  • 66.JAVA编程思想——网络编程

    万次阅读 2016-05-08 21:19:51
    66.JAVA编程思想——网络编程 历史上的网络编程都倾向于困难、复杂,而且极易出错。 程序员必须掌握与网络有关的大量细节,有时甚至要对硬件有深刻的认识。一般地,我们需要理解连网协议中不同的“层”(Layer)。...
  • 深入理解Aop编程思想

    千次阅读 2018-06-04 21:35:27
    AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合...
  • 对java编程思想的理解

    千次阅读 2014-04-30 22:47:15
    也许,对于学习java的人来说,大家都知道,java的编程思想其实就是面向对象,何为面向对象?
  • Java 编程思想源代码导入eclipse使用流程1. 简介《Java编程思想》是2007年机械工业出版社出版的图书,作者是埃克尔,译者是陈昊鹏。作为一个开发程序员,Java语言或许是项目开发过程中所必需的语言。Java编程思想是...
  • 什么是面向对象的编程思想

    千次阅读 2019-01-05 08:23:38
    面向对象的编程产生的历史原因:...于是,面向对象的编程思想就产生了。 面向对象的编程的主要思想是把构成问题的各个事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在解决问题的...
  • ========================编程思想系列文章回顾======================== 编程思想之消息机制 编程思想之日志记录 编程思想之异常处理 编程思想之正则表达式 编程思想之迭代器 编程思想之递归 编程思想之回调 关注...
  • JavaScript 面向对象编程思想简介

    千次阅读 2020-09-28 10:27:49
    JavaScript 面向对象编程JavaScript 执行过程JavaScript 面向对象编程面向对象介绍什么是对象什么是面向对象程序中面向对象的基本体现创建对象简单方式简单方式的改进:工厂函数构造函数更优雅的工厂函数:构造函数...
  • 【计算机基础知识】三大编程思想

    万次阅读 多人点赞 2019-06-21 16:05:55
    “面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。 特性:模块化 流程化 优点:...
  • 在ASP.NET中面向对象的编程思想

    千次阅读 2014-04-13 22:28:27
    在ASP.NET中面向对象的编程思想
  • 73.JAVA编程思想——JDBC

    万次阅读 2016-05-08 21:29:21
    73.JAVA编程思想——JDBC 据估算,将近一半的软件开发都要涉及客户(机)/服务器方面的操作。Java 为自己保证的一项出色能力就是构建与平台无关的客户机/服务器数据库应用。在Java1.1 中,这一保证通过Java ...
  • 013_《Delphi面向对象编程思想

    千次阅读 2010-11-22 14:38:00
    本书以精通叫delphi面向对象编程为目的,深入浅出地讲解了delphi面向对象的概念和实质、方法和经验、思想和实践;详尽讨论了delphi建立在虚方法、抽象方法、对象接口等动态绑定机制上和向上转型、向下转型、接口转型...
  • 一位十年软件工程师告诉你什么是编程思想

    万次阅读 多人点赞 2011-09-27 00:46:01
    什么是编程思想?答案可能很会复杂,但也可以很简单。一句话来讲就是,用计算机来解决人们实际问题的思维方式,即编程思想。  我们学习编程语言的最终目的,就是希望用计算机来解决我们的实际问题。那么学习计算机...
  • 面向对象思想JAVA是一种面向对象编程语言,它基于Smalltalk语言,作为OOP语言,它具有以下五个基本特性 万物皆对象,每一个对象都会存储数据,并且可以对自身执行操作。因此,每一个对象包含两部分:成员变量和成员...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 157,813
精华内容 63,125
关键字:

编程思想如何建立