×

面向对象的程序设计总结与过程化程序设计有什么区别?

消耗积分:0 | 格式:rar | 大小:0.44 MB | 2018-09-19

LOVEyou99

分享资料个

  面向对象程序设计(简称OOP)技术最近几年在计算机领域得到了迅猛发展,它是程序设计方法的一场革命。

  与传统的结构化程序设计(面向过程程序设计)相比,它具有许多优点,其中最主要的是,面向对象程序设计是按照人类认识世界的方法和思路方式来解决问题。

  面向对象程序设计试图使程序设计环境适合于现实世界的问题,而不是象过程程序设计所要求的使现实世界的问题适合于程序设计语言。

  过程化(结构化)程序设计及其优缺点(1)

  结构化程序设计的设计方法,是将程序结构按功能划分成若干基本模块,这些模块形成一个树形结构,自顶向下,逐步求精。程序设计时,使各模块之间的关系相对紧密。

  每一模块内部均由顺序、选择、和循环三种基本结构组成,其模块化实现的具体方法是使用了过程(子程序)。

  这样,一个较复杂的系统按功能分解成许多易于控制和处理的子系统、子任务,这些子系统、子任务都是可独立编程实现的子程序模块,而这些子程序均由分级的用户界面菜单实现调用。

  在大型软件系统设计中,由于软件系统本身的复杂性,要求必须许多人通力合作,采用工程化的方法进行开发和管理,这也对程序设计语言和程序设计方法提出了更高的要求。

  通过使用结构化程序设计方法,可以对整个任务进行清晰严格的划分,使每个程序员能明确了解自己的工作任务以及与他人的接口。

  每个程序员可以独立地设计调试自己负责的模块,最终各模块也能够顺利地集成到整个系统中去。

  结构化程序设计方法,由于模块之间逻辑结构清晰,功能相对独立,满足了大型软件系统易维护性和可读性的要求。

  因此,结构化程序设计能够较好地满足大型软件系统的设计要求,是现代软件工程的基础。

  尽管结构化程序设计具有许多优点,但它仍然是一种面向数据和过程的设计方法,它把数据和过程分离为相互独立的实体。

  程序员在编程时必须要时刻考虑所要处理的数据格式,对于不同的数据格式,即使要做同样的处理或对相同的数据格式要做不同的处理,都需要编写不同的程序,因此重用性不够好。

  另一方面,当数据和过程相互独立时,总存在用错误的数据调用正确程序模块,或用正确的数据调用错误程序模块的可能性。

  因此,要使数据与程序始终保持相容等问题,结构化程序设计方法本身是无法解决的,这可借助于新一代设计方法——面向对象的程序设计方法。

  面向对象程序设计将数据及对数据的操作融为一体,作为一个相互依存、不可分割的整体来处理。它采用数据抽象和信息隐藏技术,将对象及对象的操作抽象成一种新的数据类型——类,并且考虑到不同对象之间的联系和对象类的重用性。

  面向对象程序设计所追求的目标是将现实世界的问题求解尽可能简单化,采用符合人类处理问题的思维方式。

  它用“对象”表现事物,用“事件”表示处理事物的动作,用“方法”表现处理事物的过程,用“消息”传递对象与对象之间的相互联

  面向对象程序设计时,不再是单纯地从代码的第一行一直编写到最后一行,而是考虑如何创建对象,利用对象来简化程序设计,并提供代码的可重用性。同时面向对象程序设计也吸取了结构化程序设计的优点。

  面向对象程序设计,可以支持先进的软件开发策略:编写可重用代码,编写可维护的代码,共享代码,优化已有的代码等。

  有了高质量的可重用代码就能有效地降低软件的复杂性,提高软件开发效率。开发者在设计软件时可以利用一些已经精心设计好并且经过测试的代码,这些可重用的代码被组织和存放在程序设计环境的类库中,使以后程序设计过程变得更简单。

  面向对象程序设计方法具有模块化、信息封装与隐藏、抽象性、继承性、多态性等特点,它又解决了大型软件系统设计与管理中所需的软件可靠性、可重用性、可扩充性、可维护性及提高开发效率等问题。因此,面向对象程序设计能够更好地支持大型软件系统的开发。

  Visual FoxPro不但仍然支持标准的结构化程序设计,而且在语言上还进行了扩展,提供了面向对象程序设计的强大功能和更大灵活性。

  面向对象技术为软件开发提供了一种新的思想,引入了许多新的概念,这些概念是理解和使用面向对象技术的基础和关键。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'面向对象的程序设计总结与过程化程序设计有什么区别?',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);