java绪论,绪论0丶Java教程网-IT开发者们的技术天堂
发布日期:2022-02-18 13:19:51 浏览次数:8 分类:技术文章

本文共 2616 字,大约阅读时间需要 8 分钟。

前言

POP是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。

结构化程式设计(英语:Structured programming),是一种编程典范。也是一种解决问题的思想和方法。它采用子程序、程式码区块(英语:block structures)、for循环以及while循环等结构,来取代传统的 goto。希望借此来改善计算机程序的明晰性、品质以及开发时间,并且避免写出面条式代码。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 php2

3 classutils4

5 {6

7 public static function formatAddress(sformatType, Saddressl,Saddress2, City,Sstate)8 {9

10 return some address string";11 }12

13 public static function formatpersonName (sformatType, SgivenName,SamilyName){14 return some person name;}15 public static function parseAddress(SformatType, Sval){16 return new Address 0;}17 public static function parseTelephoneNumber(sformatType, Sval){18 return new TelephoneNumber 0;}19

20 }

面条式代码

在多函数程序中,许多重要的数据被声明为全局变量,这样它们才可以被所有的函数访问。每个函数又可以具有它自己的局部变量。全局变量很容易被某个函数不经意之间改变。而在一个大程序中,很难分辨每个函数都使用了哪些变量。如果我们需要修改某个外部数据的结构,我们就要修改所有访问这个数据的函数。这很容易导致bug的产生。这个可由面向对象的多态属性解决。

在结构化程序设计中,另一个严重的缺陷是不能很好的模拟真实世界的问题。这是因为函数都是面向过程的,而不是真正的对应于问题中的各个元素。

OOP,面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。

除了“面向过程”和“面向对象”之外,还有“泛型编程”和“并发编程”等。

本文主要使用“面向过程”和“面向对象”的编程思想实现数据结构的程序设计。

这里有必要简单地复习一下“面向过程程序设计思想”和“面向对象程序设计思想”。

C语言是典型的面向过程编程思想的语言(PHP,到PHP4以后就支持面向对象了)。Java(C#)是典型的面向对象编程思想的语言。在应用中,C++语言常常同时使用这两种思想。

面向过程优点:性能较高;缺点:在维护、复用、扩展的体验上较差。

面向对象的特点几乎与面向过程相反,例如:在使用类调用时需要实例化、开销大、耗资源,因此性能较差;但正是因为使用了类,相较而言易维护、易复用、易扩展。

这里主要回顾一下面向对象的编程思想。面向对象的4大特点:抽象、封装、继承和多态。

抽象指仅表现核心的特性而不描述背景细节的行为。类使用了抽象的概念,并且被定义为一系列抽象的属性如尺寸、重量和价格,以及操作这些属性的函数。类封装了将要被创建的对象的所有核心属性。因为类使用了数据抽象的概念,所以它们被称为抽象数据类型(ADT)。

封装是把数据和函数包装在一个单独的单元(称为类)的行为。数据封装是类的最典型特点。数据不能被外界访问,只能被封装在同一个类中的函数访问。这些函数提供了对象数据和程序之间的接口。避免数据被程序直接访问的概念被称为"数据隐藏"。封装机制将数据和代码捆绑到一起,避免了外界的干扰和不确定性。它同样允许创建对象。简单的说,一个对象就是一个封装了数据和操作这些数据的代码的逻辑实体。在一个对象内部,某些代码和(或)某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。

继承是可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。例如,生物学上的界门纲目科属种,见图。这种分类的原则是,每一个子类都具有父类的公共特性。

04b3bc99f9fdcd8c9167fbbcd73f40df.png

在 OOP中,继承的概念很好的支持了代码的重用性(reusability),也就是说,我们可以向一个已经存在的类中添加新的特性,而不必改变这个类。这可以通过从这个已存在的类派生一个新类来实现。这个新的类将具有原来那个类的特性,以及新的特性。而继承机制的魅力和强大就在于它允许程序员利用已经存在的类(接近需要,而不是完全符合需要类)并且可以以某种方式修改这个类,而不会影响其它的东西。

注意,每个子类只定义那些这个类所特有的特性。而如果没有按级分类,每类都必须显式的定义它所有的特性。

多态是OOP的另一个重要概念。多态的意思是事物具有不同形式的能力。举个例子,对于不同的实例,某个操作可能会有不同的行为。这个行为依赖于所要操作数据的类型。比如说加法操作,如果操作的数据是数,它对两个数求和。如果操作的数据是字符串,则它将连接两个字符串。

多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。多态在实现继承的过程中被广泛应用。

面向对象程序设计语言支持多态,术语称之为"one interface multiple method(一个接口,多个实现)"。简单来说,多态机制允许通过相同的接口引发一组相关但不相同的动作,通过这种方式,可以减少代码的复杂度。在某个特定的情况下应该作出怎样的动作,这由编译器决定,而不需要程序员手工干预。

C语言与C++语言的一些区别和共性,C与C++的兼容性等等有关二者之间的一些知识。这里笔者建议大家可以阅读一下C++之父Bjarne Stroustrup的《C++程序设计语言》。

2e764b0dc35dfb55670defef067f0ca8.png

4b564c7d68df249fa3c09dc3ac0affa3.png

转载地址:https://blog.csdn.net/weixin_28926205/article/details/115807188 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java多项式加减法,多项式加法——MOOC《零基础学Java语言》
下一篇:matlab最炫名族风,matlab版的《最炫民族风》

发表评论

最新留言

很好
[***.229.124.182]2024年04月16日 21时29分43秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

不打好评不给用!苹果竟然把这种“流氓” App 都放出来? 2019-04-27
达摩院重要科技突破!空天数据库引擎Ganos解读 2019-04-27
Python 之父:移动设备中的 Python 应用“又大又慢”! 2019-04-27
从“嵌入式”到“物联网”有哪些变化? 2019-04-27
雷军:年轻人入职半年内不要提意见,不靠谱;微信表情新彩蛋遭疯狂吐槽:满屏“炸屎”;谷歌正式推出 Fuchsia OS... 2019-04-27
稳定性小结 2019-04-27
为什么我十分喜欢C,却很不喜欢C++ 2019-04-27
程序员必备的思维能力:抽象思维 2019-04-27
想快速体验谷歌 Fuchsia OS?FImage 项目来了! 2019-04-27
假如苹果构建了一个搜索引擎 2019-04-27
“我辞职了,决定全职去开发我的操作系统!” 2019-04-27
蚂蚁自研数据库OceanBase基于木兰公共协议正式开源 2019-04-27
“我被苹果人脸识别系统「坑」进了监狱” 2019-04-27
美团员工被指用钓鱼邮件获拼多多薪资;华为回应暂无其它手机厂商接入HarmonyOS;GCC 放弃版权转让政策... 2019-04-27
云原生是全云开发的敲门砖?蒋涛独家对话阿里云贾扬清、华先胜等大咖 2019-04-27
云上创新,与时代前行(阿里云游记) 2019-04-27
2021年6月程序员工资统计,平均15052元 2019-04-27
浅谈GIS的现状与未来发展 2019-04-27
Mac、iPad 之间拖拽即可移动文件、iOS 15 来了,这届 WWDC21 精彩内容尽在这里!... 2019-04-27
多人聊天、预约会议,FaceTime登录Windows和Android系统 2019-04-27