ACCP6.0 S2 使用Java实现面向对象编程 第一章

1.1用面向对象设计电子宠物系统 1.1.1 为什么使用面向对象

现实世界就是“面向对象的”。现实世界中的任何事物都可以看作是“对象”,比如人、建筑、交通工具、学习用品等。而事物都有自己的属性和行为。比如人,它具有各种属性:姓名、性别、身高、体重、籍贯等,还可以做很多事情:吃饭、睡觉、劳动、锻炼等。各个事物之间还会发生各种联系,人用木材可以做成一套家具,人用笔可以写出文章等。

面向对象就是采用“现实模拟”的方法设计和开发程序。计算机软件开发规模越来越大,解决的问题也越来越复杂,导致软件开发时间、软件开发成本、软件维护费用甚至软件开发质量等日益难以控制。而面向对象技术利用“面向对象的思想”去描述“面向对象的世界”,实现了虚拟世界和现实世界的一致性,符合人们的思维习惯,使得客户和软件设计开发人员之间、软件设计开发人员内部交流更加顺畅,同时还带来了代码重用性高、可靠性高等优点,大大提高了软件尤其是大型软件的设计和开发效率。

问答

问题:面向过程和面向对象有什么区别?

解答:我们要举办一次北大青鸟的联欢晚会。如果采用面向过程的话,就是全体人员合唱青鸟之歌→主持人宣布晚会开始→领导讲话→主持人过场→演员一表演→主持人过场→演员二表演??→最后一位演员表演→主持人宣布晚会结束,即从头至尾、自上而下的实现功能。而如果采用面向对象实现的话,首先分析晚会需要哪些类:领导、主持人和演员。然后分析各种类的行为:主持人有宣布晚会开始、过场、宣布晚会结束,当然也有唱青鸟之歌。领导有讲话、唱青鸟之歌。演员主要就是表演节目,也有唱青鸟之歌。然后就利用设计好的类创建对应对象,调用相应的方法(行为)来逐步进行晚会。

面向过程的核心概念是函数,以功能为中心,实现了函数级别的代码重用。面向对象的核心概念是封装了属性和方法(行为)的类,以数据为中心,实现了类级别的代码重用。面向对象因为采用了类,具有继承和多态特性,可以进一步重用代码和简化编程,而面向过程中没有继承和多态特性。

1.1.2 使用面向对象进行设计

下面就开始电子宠物系统的设计和开发之路吧,这一章的任务是用类来描述宠物,然后实现领养宠物功能。首先需要根据需求进行面向对象的设计。

问题:

我们要设计一个电子宠物系统,其中领养宠物功能的详细需求如下。 根据控制台提示,输入领养宠物的昵称。

根据控制台提示,选择领养宠物的类型,有两种选择:狗狗和企鹅。 如果类型选择狗狗,要选择狗狗的品种,有两种选择:“聪明的拉布拉多犬”或者“酷酷的雪纳瑞”。

如果类型选择企鹅,要选择企鹅的性别:“Q仔”或“Q妹”。 所领养宠物的健康值默认是100,表示非常健康。

所领养宠物和主人的亲密度默认是0,表示和主人还不熟悉。

在控制台打印出宠物信息,包括昵称、健康值、亲密度、品种或性别,表示领养成功。

如何依据需求,使用面向对象思想来设计我们的电子宠物系统呢?

分析

面向对象设计的过程就是抽象的过程,我们分三步来完成。 第一步:发现类。

第二步:发现类的属性。 第三步:发现类的方法。

面向对象设计的过程就是抽象的过程,根据业务需求,关注与业务相关的属性和行为,忽略不必要的属性和行为,由现实世界中“对象”抽象出软件开发中的“对象”,如图1.2所示。

图1.2 面向对象设计的过程就是抽象的过程

接下来我们就按照发现类、发现类的属性和发现类的方法的步骤完成设计。 我们可以通过在需求中找出名词的方式确定类的属性,找出动词的方式确定方法。并根据需求实现业务的相关程度进行筛选。

第一步:发现类。

需求中名词有控制台、宠物、昵称、狗狗、企鹅、类型、品种、聪明的拉布拉多犬、酷酷的雪纳瑞、性别、Q仔、Q妹、健康值、亲密度和主人等。

根据仔细筛选,发现可以作为类的名词有宠物、狗狗、企鹅和主人。本章要实现领养宠物功能,主要用到

>>闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ゆ繝鈧柆宥呯劦妞ゆ帒鍊归崵鈧柣搴㈠嚬閸欏啫鐣峰畷鍥ь棜閻庯絻鍔嬪Ч妤呮⒑閸︻厼鍔嬮柛銊ョ秺瀹曟劙鎮欏顔藉瘜闂侀潧鐗嗗Λ妤冪箔閹烘挶浜滈柨鏂跨仢瀹撳棛鈧鍠楅悡锟犮€侀弮鍫濋唶闁绘棁娓归悽缁樼節閻㈤潧孝闁挎洏鍊濆畷顖炲箥椤斿彞绗夌紓鍌欑劍閿曗晛鈻撴禒瀣厽闁归偊鍘界紞鎴︽煟韫囨梹缍戦柍瑙勫灴椤㈡瑩鎮锋0浣割棜闂傚倸鍊风欢姘缚瑜旈幃褔宕卞☉妯肩枃闂侀€涘嵆閸嬪﹪寮繝鍌楁斀闁绘ɑ褰冮埀顒傛暬瀵劍绂掔€n亞顔婇梺瑙勫劶濡嫮澹曡ぐ鎺撶厵闁绘鐗婄欢鑼棯閹岀吋闁哄瞼鍠栭獮鍡氼槻妞わ綀娅曟穱濠囶敃椤愩垻浠搁梺鍝勭灱閸犳牠銆佸☉銏犲耿婵°倕鍟版导鍥⒑閸涘﹨澹樻い鎴濐槸椤繐煤椤忓嫪绱堕梺鍛婃处閸橀箖宕濋崷顓犵=闁稿本姘ㄥ皬缂備浇鍩栧畝鎼佸箖娴兼惌鏁嬮柍褜鍓欓悾鐑藉醇閺囥劍鏅㈡繝銏f硾椤戝棗鈻嶉弽顓熲拻濞达絿鎳撻婊呯磼鐠囨彃鈧瓕鐏嬮悗鍏夊亾闁告洦鍋嗛鍥⒑閸涘﹣绶遍柛鐘虫皑瀵囧焵椤掑嫭鈷戞慨鐟版搐閻忓弶绻涙担鍐插椤╅攱绻濇繝鍌氼仹缂佽妫欓妵鍕冀閵娧冩殹闂佽 鍋撻柤濮愬€楃壕濂告煕鐏炵偓鐨戠€涙繂螖濡ゅ﹣绨烽柛妤€鍟块悾鐑芥偂鎼存ɑ鏂€闂佸壊鍋掗崑鍛扳叿闂傚倸鍊搁崐椋庢濮樿泛鐒垫い鎺戝€告禒婊堟煠濞茶鐏¢柡鍛埣椤㈡瑦鎱ㄩ幇顏嗙泿婵$偑鍊曠换鎰偓姘煎墴瀵娊鏁愰崨顏呮杸闂佺偨鍎辩壕顓㈠春閿濆洠鍋撶憴鍕鐎规洦鍓濋悘鍐⒑闁偛鑻晶鏌ユ煏閸℃ḿ澧辩紒杈ㄦ崌瀹曟帒顫濋钘変壕闁归棿绀佺壕褰掓煕濠靛嫬鍔ら柣顓熸崌閺屸剝寰勭€n亝顔曞┑鐐村灦椤倿寮崼婵堝姦濡炪倖甯掔€氼參宕戝┑鍡忔斀闁绘ê鐤囨竟姗€姊虹憗銈呪偓鏍ㄧ┍婵犲洤围闁告洦鍙庡Σ顔界箾鐎涙ḿ鐭嬬紒顔芥尭椤繘鎼归崷顓犵厯闁荤姵浜介崝搴敊閸ヮ剚鈷戞慨鐟版搐婵″潡鏌涜箛鏃撹€块柣娑卞枦缁犳稑鈽夊▎鎰姃闂備線娼荤€靛矂宕㈡ィ鍐╂櫖婵犲﹤鎳愮壕浠嬫煕鐏炲墽鎳囨俊鍓у厴閺屾盯濡搁妷褏楔闂佺粯渚楅崳锝咁嚕娴犲鏁囬柣鏂挎惈楠炲秹姊绘担鍛婂暈闁告梹岣挎禍绋库枎閹寸姳绗夊┑鐐叉▕娴滄繈鎮¤箛娑欑厱闁靛绲芥俊鐓庘攽椤斿吋婀伴柕鍥у閺佸啴鍩€椤掑嫷鏁嬫い鎾跺У椤洟鏌熼悜妯诲鞍缂傚秴娲弻鏇熺箾閸喖濮曢柣鐘叉川閸嬨倕顫忛搹瑙勫珰闁炽儴娅曢悘鈧梻浣告惈閹虫劖鎱ㄩ幘顔藉仼鐎瑰嫰鍋婂ḿ銊╂煃瑜滈崜鐔肩嵁婵犲洦鍋愭繛鑼帛閺呯偤姊洪崷顓€瑙勵殽閸涘﹦顩叉繝闈涚墢绾句粙鏌涚仦鎹愬闁逞屽墯閹倸鐣烽幇顓фЧ閹兼番鍩勯崑銊╂⒑鐠恒劌鏋斿┑顔碱嚟缁絽螖閸涱喚鍘搁悗骞垮劚妤犳悂鐛Δ鍛厱閻庯綆浜堕崕鏃堟煛瀹€鈧崰鏍嵁閸℃凹妲鹃梺鎸庣☉缁夊綊寮婚敓鐘插耿妞ゆ挾濮烽弳銈夋⒑閸濆嫮鐏遍柛鐘崇墵楠炲啫饪伴崘鐐缓闂佺硶鍓濆玻鍧楀汲閿曞倹鈷掑ù锝呮嚈瑜版帗鏅濋柨鏇炲€哥粈鍌涙叏濡炶浜惧Δ鐘靛仜閸燁偉鐏冮梺鍛婁緱閸犳牗绂掑ú顏呪拺閻犲楠稿Λ顓㈠吹濞嗘劗绡€闁逞屽墴閺屽棗顓奸崨顔锯偓顒€顪冮妶鍡樼5闁稿鎸婚〃銉╂倷閸欏妫ュ銈忓瘜閸o綁寮婚敓鐘茬劦妞ゆ帊鑳堕々鐑芥倵閿濆骸浜為柛妯挎閳规垿鍩ラ崱妤冧淮濠电偛鎷戠徊鍓х矉閹烘垟妲堥柕蹇ョ磿閸樻悂姊虹化鏇楀亾瀹曞洨顔夊┑鐐叉噹閹虫﹢寮诲鍥ㄥ枂闁告洦鍋嗘导灞筋渻閵堝啫鐏柣鐔濆洤绐楀┑鐘叉搐绾偓闂佺粯鍔栭幆宀勫疮閳ь剟姊婚崒姘偓鐑芥嚄閸洖绠犻柟鎯у娑撳秶鈧箍鍎遍ˇ顖炲垂閸屾粎妫い鎾跺仦閸h棄霉濠婂棙顥夐柍瑙勫灴閹瑧鈧稒锚闂夊秹姊洪崨濠傜仴缂傚秴锕ら悾鐤亹閹烘垹顔呴梺鑺ッˇ閬嶅礉閿曗偓椤啴濡堕崱妤冪懆闂佸摜鍣ラ崑濠囧箖閿熺姴绠涢柣妤€鐗忛崢顏堟⒑閹肩偛鍔€闁告劕褰炵槐鏃堟煟鎼淬埄鍟忛柛鐘愁殔宀e灝鈻庨幒鏂剧胺闂傚倷绶氶埀顒傚仜閼活垱鏅堕婊呯<闁稿本姘ㄦ牎闂侀潧鐗炵紞浣哥暦濮椻偓閸╃偤鎮欓鈧褰掓⒒閸屾瑧顦﹂柟璇х磿閹广垽宕掑┃鎯т壕婵ḿ鍘у▍宥夋煙椤旀儳浠ч柟鐟板婵℃瓕顦撮柨娑欑矒濮婃椽宕崟顕呮蕉闂佺ǹ瀛╂繛濠囧箖妤e啯鍊绘慨妤€妫欓鏃堟⒑缂佹ê濮囩€殿喖鐖艰棢闁靛繆鎳囬崑鎾斥枔閸喗鐝梺闈╃秶缁蹭粙鎮鹃柨瀣檮闁告挸寮堕弲婵嬫⒑閹稿海绠撴俊顐g懇閹敻顢曢埗鈺傛杸闂佺粯锚閻忔岸寮抽埡鍛厱閻庯綆鍓欐禒杈┾偓瑙勬礀缂嶅﹤鐣锋總绋垮嵆闁绘柨鎲¢悵鏍⒒娴gǹ鏆遍柟纰卞亰瀹曟劙骞栨笟鍥ㄦ櫔闂備緡鍓欑粔鐢告偂閵夆晜鐓熼柡鍥╁仜閳ь剙婀遍埀顒佺啲閹凤拷<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4