版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 摘要:I</b></p><p> Abstract:II</p><p> 第一章 前 言1</p><p> 1.1 選題背景1</p><p> 1.2國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展
2、趨勢(shì)1</p><p> 1.2.1 國(guó)外研究現(xiàn)狀及發(fā)展趨1</p><p> 1.2.2國(guó)內(nèi)研究現(xiàn)狀及發(fā)展趨勢(shì)1</p><p><b> 1.3選題意義2</b></p><p> 第二章 系統(tǒng)分析3</p><p> 2.1系統(tǒng)的可行性分析3</p>&
3、lt;p> 2.1.1技術(shù)可行性3</p><p> 2.1.2 經(jīng)濟(jì)可行性3</p><p> 2.2 系統(tǒng)的關(guān)鍵技術(shù)3</p><p> 2.3業(yè)務(wù)流程分析4</p><p> 第三章 系統(tǒng)設(shè)計(jì)5</p><p> 3.1 軟件模型概述5</p><p> 3
4、.2功能結(jié)構(gòu)設(shè)計(jì)5</p><p> 3.3數(shù)據(jù)庫(kù)設(shè)計(jì)7</p><p> 第四章 詳細(xì)設(shè)計(jì)9</p><p> 4.1系統(tǒng)總體實(shí)現(xiàn)9</p><p> 4.1.1 開(kāi)發(fā)平臺(tái)與開(kāi)發(fā)工具9</p><p> 4.1.2 系統(tǒng)架構(gòu)圖9</p><p> 4.2系統(tǒng)實(shí)現(xiàn)主要功
5、能如下:10</p><p> 4.2.1 服務(wù)器端界面11</p><p> 4.2.2 客戶端登錄界面12</p><p> 4.2.3 客戶端登錄后顯示好友界面13</p><p> 4.2.4 客戶端好友聊天界面13</p><p><b> 結(jié) 論15</b>&
6、lt;/p><p><b> 致 謝16</b></p><p> 參考文獻(xiàn)(Reference)17</p><p><b> 附錄18</b></p><p> 基于J2SE的即時(shí)通信軟件</p><p> 摘要:信息時(shí)代的到來(lái)引發(fā)了一場(chǎng)知識(shí)和信息革命,
7、計(jì)算機(jī)和現(xiàn)代網(wǎng)絡(luò)技術(shù)的廣泛應(yīng)用極大地促進(jìn)了社會(huì)經(jīng)濟(jì)的發(fā)展,同時(shí)也帶來(lái)了一些新興產(chǎn)業(yè)的發(fā)展,比如網(wǎng)絡(luò)間的即時(shí)通訊軟件。即時(shí)通訊已經(jīng)慢慢成為人們生活的一部分,呈現(xiàn)出良好的勢(shì)頭和廣闊的發(fā)展前景。即時(shí)通訊是一個(gè)通過(guò)國(guó)際互聯(lián)信息網(wǎng)絡(luò)進(jìn)行多人通訊的一款軟件,它具有其他傳統(tǒng)通訊方式無(wú)法比擬的優(yōu)勢(shì),快速,便捷、信息多元化等。正是這些特點(diǎn),使它能夠成為當(dāng)今最流行的信息交流方式。</p><p> Java因其簡(jiǎn)單,安全,跨平臺(tái)等
8、特點(diǎn)成為當(dāng)今最流行的編程語(yǔ)言之一,已廣泛用于PC,Internet,移動(dòng)設(shè)備上。因?yàn)镴ava的“一次編寫到處運(yùn)行”的特點(diǎn),所以已編寫的軟件不用修改或只需少量的修改就可以在其他設(shè)備上和操作系統(tǒng)上成功運(yùn)行,可以極大的減少開(kāi)發(fā)商的開(kāi)發(fā)和維護(hù)成本。在當(dāng)今硬件設(shè)備和軟件平臺(tái)(操作系統(tǒng))多元化的時(shí)代,用Java開(kāi)發(fā)即時(shí)通信軟件是明智之舉</p><p> 關(guān) 鍵 詞:即時(shí)通信,Java,Access,網(wǎng)絡(luò),Socket編程
9、</p><p> Abstract: The advent of the information age has provoked a storm of knowledge and information revolution, the computer and the wide application of modern network technology has greatly promoted the
10、 development of social economy, but it also brings some emerging industries, such as instant messaging software between networks. Instant messaging has been slowly become part of people's life, showing a good momentu
11、m and broad development prospects. Instant messaging is an international Internet infor</p><p> Java because of its simplicity, security, cross-platform and so become one of the most popular programming lan
12、guages, has been widely used in PC, Internet, mobile devices. Because Java's "write once, run anywhere" feature, so the software has been prepared without modification or with little modification to ot
13、her devices and can run successfully on operating systems, developers can greatly reduce the development and maintenance costs . In today's hardware and software platform (operating system)</p><p
14、> Keywords:IM,Access,Java,Socket</p><p><b> 第一章 前 言</b></p><p><b> 1.1 選題背景</b></p><p> 要問(wèn)到網(wǎng)絡(luò)時(shí)代發(fā)展最快的領(lǐng)域,無(wú)疑的,答案是即時(shí)通訊。即時(shí)通訊工具的實(shí)時(shí)交互、資費(fèi)低廉等優(yōu)點(diǎn)深受用戶的喜愛(ài),已經(jīng)成為網(wǎng)絡(luò)
15、生活中不可或缺的一部分,比如大家都很熟悉的騰訊QQ,MSN等。網(wǎng)民們通過(guò)即時(shí)通信進(jìn)行溝通交流、結(jié)識(shí)新朋友、娛樂(lè)消遣時(shí)間、實(shí)現(xiàn)異地文字、語(yǔ)音、視頻的實(shí)時(shí)互通交流。同時(shí),人們也認(rèn)識(shí)到即時(shí)信息工具能夠帶來(lái)極高的生產(chǎn)力,諸多企事業(yè)單位借助它的使用,來(lái)提高業(yè)務(wù)協(xié)同性及反饋的敏感度和快捷度。作為使用頻率最高的網(wǎng)絡(luò)軟件,即時(shí)通訊已經(jīng)突破了作為技術(shù)工具的極限,被認(rèn)為是現(xiàn)代交流方式的象征。</p><p> 即時(shí)通訊軟件是通過(guò)即
16、時(shí)通訊技術(shù)來(lái)實(shí)現(xiàn)在線聊天、交流的軟件。目前有2種架構(gòu)形式,1、一種是C/S架構(gòu),采用客戶端/服務(wù)器形式,用戶使用過(guò)程中需要下載安裝客戶端軟件,典型的代表有:QQ、百度HI 、Skype、Gtalk、新浪UC、MSN等;2、采用B/S架構(gòu),即瀏覽器/服務(wù)端形式,這種形式的即時(shí)通訊軟件,直接借助互聯(lián)網(wǎng)為媒介、客戶端無(wú)需安裝任何軟件,既可以體驗(yàn)服務(wù)器端進(jìn)行溝通對(duì)話,一般運(yùn)用在電子商務(wù)網(wǎng)站的服務(wù)商,典型的代表、53KF、live800等。<
17、;/p><p> 1.2國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(shì)</p><p> 1.2.1 國(guó)外研究現(xiàn)狀及發(fā)展趨</p><p> 自1996年11月全球范圍內(nèi)推出的第一款即時(shí)通訊軟件以來(lái),即時(shí)通訊軟件得到了迅速的發(fā)展。隨著各大互聯(lián)網(wǎng)巨頭公司的崛起,各互聯(lián)網(wǎng)公司根據(jù)各公司主要業(yè)務(wù)推出不同的即時(shí)通訊軟件。</p><p> 雅虎公司:雅虎通(Yahoo
18、! Messenger)是一款比較流行的即時(shí)通訊軟件,允許用戶與朋友、家人、同事及其朋友經(jīng)行即時(shí)的交流。用戶只需麥克風(fēng)、揚(yáng)聲器或耳機(jī),就能輕松地與好友語(yǔ)音通話,且設(shè)有語(yǔ)音留言與呼叫記錄。即使用戶不在線,也可以收到好友的語(yǔ)音留言。雅虎通內(nèi)置了股票、新聞、計(jì)分板等選項(xiàng)卡,不論用戶在何處瀏覽,都可以監(jiān)視用戶所有個(gè)性化信息。</p><p> 微軟公司:MSN是微軟公司開(kāi)發(fā)的即時(shí)聊天工具,由于微軟產(chǎn)品用戶眾多,操作簡(jiǎn)單
19、,運(yùn)行穩(wěn)定,且與Windows XP進(jìn)行了無(wú)縫結(jié)合,使得MSN的普及速度非???,現(xiàn)在已經(jīng)是世界主流的聊天工具,MSN支持手寫功能,但與其他即時(shí)通訊軟件最大的不同是不支持離線消息。MSN采用郵件地址作為用戶名,借此建立MSN與Hotmail之間的連接,當(dāng)對(duì)方不在線時(shí),你可以選擇給對(duì)方的MSN郵箱或Hotmail發(fā)送郵件。這樣MSN就不僅是一個(gè)簡(jiǎn)單的即時(shí)通訊軟件,而演變?yōu)橐訫SN為中心的整合服務(wù)。</p><p>
20、 谷歌公司:谷歌公司出的一款即時(shí)通訊工具。支持文字信息以及網(wǎng)絡(luò)語(yǔ)音交流。Google Talk與Gmail進(jìn)行了整合應(yīng)用,使用Gmail賬號(hào)登錄,并支持檢查Gmail郵件。雖然Google公司在搜索引擎方面是絕對(duì)的龍頭,不過(guò)在即時(shí)通訊領(lǐng)域的產(chǎn)品還是有蠻多缺憾的。</p><p> 國(guó)外即時(shí)通訊軟件技術(shù)上已發(fā)展得相當(dāng)成熟,技術(shù)上的發(fā)展空間相對(duì)來(lái)說(shuō)比較的少,即時(shí)通訊軟件今后將會(huì)更多的用來(lái)彌補(bǔ)和整合本公司的主要業(yè)務(wù)。
21、</p><p> 1.2.2國(guó)內(nèi)研究現(xiàn)狀及發(fā)展趨勢(shì)</p><p> 騰訊公司:據(jù)騰訊QQ官方消息,2005年,QQ在國(guó)內(nèi)已擁有2.4億多的注冊(cè)用戶,7 000多萬(wàn)活躍用戶,同時(shí)在線人數(shù)700萬(wàn)以上。目前,騰訊QQ已成為國(guó)內(nèi)用戶最多的個(gè)人即時(shí)通訊工具,占據(jù)著國(guó)內(nèi)約65%以上的市場(chǎng)份額。1999年2月,騰訊推出基于互聯(lián)網(wǎng)的即時(shí)通訊工具——QQ,支持在線消息收發(fā),即時(shí)傳送語(yǔ)音、視頻和文件
22、,并且整合移動(dòng)通訊手段,可通過(guò)客戶端發(fā)送信息給手機(jī)用戶。目前QQ已開(kāi)發(fā)出穿越防火墻、動(dòng)態(tài)表情、給好友放錄像、捕捉熒屏、共享文件夾、提供聊天場(chǎng)景、聊天時(shí)可顯示圖片等強(qiáng)大的使用功能。另外,QQ還增加了QQ群、QQ秀、QQ寵物、QQ游戲等娛樂(lè)功能。由于QQ良好的開(kāi)放功能、休閑娛樂(lè)服務(wù),使其擁有了龐大的用戶群,在近幾年內(nèi)突飛猛進(jìn),牢牢占據(jù)著國(guó)內(nèi)即時(shí)通訊霸主地位。</p><p> 阿里巴巴:阿里巴巴推出的軟件阿里旺旺是
23、將原先的淘寶旺旺與阿里巴巴貿(mào)易通整合在一起的新品牌。它是淘寶和阿里巴巴為商人度身定做的免費(fèi)網(wǎng)上商務(wù)溝通軟件。它能幫您輕松找客戶,發(fā)布、管理商業(yè)信息;及時(shí)把握商機(jī),隨時(shí)洽談做生意!</p><p> 即時(shí)通訊軟件市場(chǎng)結(jié)構(gòu)分為個(gè)人應(yīng)用和企業(yè)應(yīng)用兩部分,因此它的發(fā)展趨勢(shì)也必然要圍繞這兩部分應(yīng)用進(jìn)行探討。我認(rèn)為未來(lái)的即時(shí)通訊市場(chǎng)發(fā)展趨勢(shì)包括:綜合化、專業(yè)化、互聯(lián)互通和安全化這四個(gè)方面的內(nèi)容。他們之間有著很強(qiáng)的邏輯關(guān)系,
24、個(gè)人應(yīng)用領(lǐng)域的綜合化和企業(yè)應(yīng)用領(lǐng)域的專業(yè)化導(dǎo)致了用戶對(duì)互聯(lián)互通的需求,而互聯(lián)互通的實(shí)現(xiàn)需要安全技術(shù)作為保證。</p><p><b> 1.3選題意義</b></p><p> 21世紀(jì)是信息的時(shí)代,人與人之間的交流越來(lái)越密切,傳統(tǒng)的通信方式,如電話,電報(bào)等在實(shí)時(shí)上雖仍占有一定的優(yōu)勢(shì),但是在信息高速發(fā)展的今天,傳統(tǒng)通信方式由于其成本過(guò)高,方式單一的缺點(diǎn),越來(lái)越暴露
25、其弊端。</p><p> 傳統(tǒng)的通訊方式的缺點(diǎn):</p><p> ?。?)成本高。目前人們所使用的通訊方式普遍價(jià)格過(guò)高,移動(dòng)通信的價(jià)格更是不菲。這就在某種程度上限制了用戶的使用和數(shù)量。作為用戶來(lái)講,消費(fèi)水平是一個(gè)很重要的選擇標(biāo)準(zhǔn)。</p><p> (2)使用方式單一。我們現(xiàn)在使用的傳統(tǒng)通信方式主要是電話,電報(bào),傳真等。這些方式只能聽(tīng)到聲音或看到文字,用戶
26、并不能感受到對(duì)方,缺乏身臨其境的感覺(jué)。</p><p> (3)傳輸數(shù)據(jù)量少。傳統(tǒng)的通訊方式的帶寬并不高,所以傳輸?shù)臄?shù)據(jù)量大大受到限制。</p><p> 新興的網(wǎng)絡(luò)通訊的優(yōu)點(diǎn):</p><p> (1)成本低。網(wǎng)絡(luò)具有價(jià)格便宜,對(duì)于大多數(shù)用戶來(lái)說(shuō),購(gòu)買一臺(tái)電腦不僅可以成為日常的通信工具,更重要的是電腦可以作為很多方面的用途,如處理日常的文件,存儲(chǔ)個(gè)人的資料等
27、,而網(wǎng)絡(luò)通訊僅僅是一個(gè)很小的附加功能,更由于隨著經(jīng)濟(jì)的發(fā)展,擁有電腦就像擁有電視機(jī)一樣普遍,電腦的價(jià)值已經(jīng)被普遍認(rèn)可。</p><p> ?。?)方便快捷。網(wǎng)絡(luò)聊天非常方便,傳統(tǒng)的手機(jī)短信編輯相比電腦鍵盤來(lái)說(shuō)具有很大的劣勢(shì),電腦打字要更加地快速,同時(shí)網(wǎng)絡(luò)也可以進(jìn)行語(yǔ)音聊天,更加省去了輸入的麻煩。視頻聊天也是網(wǎng)絡(luò)通信的一個(gè)很大的優(yōu)勢(shì),拉近了聊天雙方的距離,使交流更加親切。</p><p>
28、 (3)傳輸?shù)男畔⒘看?。和傳統(tǒng)的方式相比較,其數(shù)據(jù)量提高了數(shù)十倍,并且隨著科技的進(jìn)步,這種優(yōu)勢(shì)將會(huì)繼續(xù)擴(kuò)大。我國(guó)擁有世界上最多的網(wǎng)絡(luò)用戶,目前正在進(jìn)行高速信息化建設(shè),因此對(duì)網(wǎng)絡(luò)的使用將會(huì)進(jìn)一步擴(kuò)大。</p><p> 網(wǎng)絡(luò)通訊軟件具有上述的優(yōu)勢(shì),因此其發(fā)展的前景將是廣闊的,這也是研究它的意義</p><p><b> 所在。 </b></p><
29、;p><b> 第二章 系統(tǒng)分析</b></p><p> 分析即綜合采用系統(tǒng)的思想和方法,把一個(gè)比較復(fù)雜的系統(tǒng)對(duì)象拆解成若干個(gè)簡(jiǎn)單易懂的組成部分,并定義這些組成部分的基本屬性和相互之間的關(guān)聯(lián),進(jìn)而按照軟件開(kāi)發(fā)流程對(duì)軟件系統(tǒng)進(jìn)行開(kāi)發(fā)和設(shè)計(jì)。分析過(guò)程一半包括研究當(dāng)前同類別系統(tǒng)的特點(diǎn)和不足,進(jìn)而對(duì)所要開(kāi)發(fā)的系統(tǒng)進(jìn)行完善化的設(shè)計(jì),使開(kāi)發(fā)出的軟件的在最節(jié)省資源的情況下開(kāi)發(fā)出符合需求的產(chǎn)品
30、。</p><p> 2.1系統(tǒng)的可行性分析</p><p> 綜合即時(shí)通訊軟件發(fā)展形勢(shì)和對(duì)即時(shí)通訊市場(chǎng)的調(diào)研,本即時(shí)通訊軟件在技術(shù)上,經(jīng)濟(jì)上,操作方面均具備可行性,具備了軟件開(kāi)發(fā)實(shí)施的條件。</p><p> 2.1.1技術(shù)可行性</p><p> Win XP操作系統(tǒng)的穩(wěn)定性,安全性可滿足用戶的要求。后臺(tái)的數(shù)據(jù)庫(kù)使用的是Offic
31、e Access 2003。軟件開(kāi)發(fā)工具語(yǔ)言選用的是當(dāng)前最流行的開(kāi)發(fā)工具語(yǔ)言——Java。Java是</p><p> 一種簡(jiǎn)單的面向,分布式,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異的,多線程的動(dòng)態(tài)語(yǔ)言。JavaSwing具有良好的圖形編程能力,可以實(shí)現(xiàn)良好的用戶界面,Java Socket可以實(shí)現(xiàn)網(wǎng)絡(luò)間的通信。綜上,完全具備技術(shù)可行性。</p><p> 2.1.2 經(jīng)
32、濟(jì)可行性</p><p> 費(fèi)用:本系統(tǒng)要求的計(jì)算機(jī)配置并不高(400M Hz以上處理器。64M內(nèi)存及以上,硬盤空間100M以上),當(dāng)前中低檔計(jì)算機(jī)即可滿足要求。設(shè)備的安裝調(diào)試工作簡(jiǎn)單,軟件的價(jià)格不高,操作簡(jiǎn)單,對(duì)用戶進(jìn)行少量的培訓(xùn)講解即可較為熟練的操作本軟件,因而培訓(xùn)費(fèi)用較低。</p><p> 而且,Java是跨平臺(tái)的語(yǔ)言,編寫好的軟件不需要改動(dòng)或只需要少量改懂就可以在移植到其他平
33、臺(tái)上,對(duì)于程序開(kāi)發(fā)來(lái)說(shuō),可以減少大量的開(kāi)發(fā)和維護(hù)成本。</p><p> 收益:用戶使用本軟件以后,能較大的用戶之間的傳播效率,節(jié)省較多的人力資源,為企業(yè)創(chuàng)造經(jīng)濟(jì)效益,利于企業(yè)單位的發(fā)展,因而在經(jīng)濟(jì)上是可行的。</p><p> 2.2 系統(tǒng)的關(guān)鍵技術(shù)</p><p> ?。?)TCP傳輸協(xié)議。TCP協(xié)議是面向連接的協(xié)議,即在點(diǎn)點(diǎn)進(jìn)行連接之前必須首先建立數(shù)據(jù)通路
34、,就向我們平時(shí)打電話一樣,在通話之前必須先撥號(hào),等待對(duì)方的接聽(tīng)以后才能進(jìn)行通話。它的數(shù)據(jù)傳輸采取的是同步方式,當(dāng)數(shù)據(jù)發(fā)送到對(duì)方時(shí),必須等待接收方的應(yīng)答信號(hào)后才能繼續(xù)下一次的發(fā)送工作,即我們平時(shí)所說(shuō)的“握手”方式。由于TCP協(xié)議采用的是這種連接方式,因此由它建立的連接,是可靠的,在網(wǎng)絡(luò)不是十分理想的情況下,速度犧牲很大,但是卻能夠保證所傳輸?shù)臄?shù)據(jù)的正確性。</p><p> ?。?)UDP傳輸協(xié)議。UDP協(xié)議采用的
35、是面向無(wú)連接的通信方式,它在通信前不需要提前建立通信鏈路,它是異步的,數(shù)據(jù)的發(fā)送比較迅速,不需要等待應(yīng)答信號(hào)。優(yōu)點(diǎn)是發(fā)送速度較快,但是在數(shù)據(jù)的一致性方面不好,在網(wǎng)絡(luò)差的情況下,容易丟失數(shù)據(jù)包。一般用于遠(yuǎn)程視頻等對(duì)一致性要求并不是很高的數(shù)據(jù)傳輸方面。</p><p><b> 2.3業(yè)務(wù)流程分析</b></p><p> 業(yè)務(wù)流程分析是對(duì)業(yè)務(wù)功能分析的進(jìn)一步細(xì)化,從
36、而得到業(yè)務(wù)流程圖,是一個(gè)反映軟件業(yè)務(wù)處理過(guò)程的“流水帳本”, 幫助確定流程工作與合作建模的基本要素,更好地分析理解其同其他要素的關(guān)系。業(yè)務(wù)流程圖反映了實(shí)際業(yè)務(wù)活動(dòng)的整個(gè)流程,它以業(yè)務(wù)處理過(guò)程為中心。業(yè)務(wù)流程分析的目的是:形成合理、科學(xué)的業(yè)務(wù)流程。通過(guò)分析現(xiàn)有業(yè)務(wù)流程的基礎(chǔ)上進(jìn)行業(yè)務(wù)流程重組,產(chǎn)生新的更為合理的業(yè)務(wù)流程。</p><p> 本即時(shí)通訊軟件業(yè)務(wù)流程圖反映了軟件內(nèi)部各功能之間的關(guān)聯(lián)以及業(yè)務(wù)處理的流程。
37、流程圖如圖2.1所示:</p><p> 圖 2.1 業(yè)務(wù)流程圖</p><p><b> 第三章 系統(tǒng)設(shè)計(jì)</b></p><p> 系統(tǒng)的設(shè)計(jì)通常是自頂向下逐步細(xì)化的,使一個(gè)較為復(fù)雜的問(wèn)題分解成若干個(gè)比較簡(jiǎn)單、容易解決的小問(wèn)題。概要設(shè)計(jì)的主要任務(wù)是得到系統(tǒng)的軟件結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。設(shè)計(jì)軟件結(jié)構(gòu)的具體任務(wù)是:將一個(gè)復(fù)雜系統(tǒng)按功能進(jìn)行模塊劃分
38、、建立模塊的層次結(jié)構(gòu)及調(diào)用關(guān)系、確定模塊間的接口及人機(jī)界面等。數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)包括數(shù)據(jù)特征的描述、確定數(shù)據(jù)的結(jié)構(gòu)特性、以及數(shù)據(jù)庫(kù)的設(shè)計(jì)??傮w設(shè)計(jì)的目標(biāo)是建立系統(tǒng)的邏輯模型。</p><p> 3.1 軟件模型概述</p><p> 在基于C/S模型的網(wǎng)絡(luò)通信軟件中,包括客戶端和服務(wù)器端,其中服務(wù)器在整個(gè)系統(tǒng)的作用很關(guān)鍵,處于中心位置,客戶端主要用來(lái)獲取從服務(wù)器傳過(guò)來(lái)的數(shù)據(jù),提供給用戶友好的
39、界面,顯示用戶的好友信息,并且接受用戶的各種操作,用戶操作完畢軟件會(huì)把各種操作封裝成信息,并把這個(gè)請(qǐng)求信息發(fā)送到服務(wù)器端。服務(wù)器端主要接受客戶端的請(qǐng)求,并且解析其封裝的信息內(nèi)容,并根據(jù)信息內(nèi)容做相應(yīng)的操作(例如:轉(zhuǎn)發(fā)信息,查詢好友資料等等),最后將這些信息發(fā)送到指定的客戶端上,最終實(shí)現(xiàn)各用戶之間通訊的目的。</p><p> 下圖展示了C/S結(jié)構(gòu)的模型圖:</p><p> 圖 3.1
40、 C/S結(jié)構(gòu)模型圖</p><p><b> 3.2功能結(jié)構(gòu)設(shè)計(jì)</b></p><p> 本軟件適用于中小型局域網(wǎng)的聊天軟件,為中小型企業(yè)提供局域網(wǎng)溝通軟件,該軟件可以為客戶提供文字信息交流,震動(dòng)窗口,文件傳輸?shù)刃畔⒔涣?。?shù)據(jù)流圖,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來(lái)表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過(guò)程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具
41、及用于表示軟件模型的一種圖示方法。</p><p> 本系統(tǒng)總功能結(jié)構(gòu)數(shù)據(jù)流圖如圖3.1所示:</p><p> 圖3.2 系統(tǒng)總功能結(jié)構(gòu)圖</p><p> 系統(tǒng)各功能詳細(xì)數(shù)據(jù)流圖如下</p><p> 圖 3.3 各功能詳細(xì)結(jié)構(gòu)和數(shù)據(jù)流圖</p><p><b> 3.3數(shù)據(jù)庫(kù)設(shè)計(jì)</b
42、></p><p> 數(shù)據(jù)庫(kù)是用戶所需要的各種數(shù)據(jù)管理的方式的總稱,它是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的核心部分。數(shù)據(jù)庫(kù)結(jié)構(gòu)的設(shè)計(jì)是相當(dāng)重要的一個(gè)環(huán)節(jié),它將直接影響到系統(tǒng)的數(shù)據(jù)處理效率和系統(tǒng)的總體性能,良好的數(shù)據(jù)庫(kù)結(jié)構(gòu)應(yīng)該選擇合理的數(shù)據(jù)庫(kù)范式,減少數(shù)據(jù)的存儲(chǔ)量,同時(shí)保證恰當(dāng)?shù)臄?shù)據(jù)冗余。</p><p> 數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠
43、有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用需求。在數(shù)據(jù)庫(kù)領(lǐng)域內(nèi),常常把使用數(shù)據(jù)庫(kù)的各類系統(tǒng)統(tǒng)稱為數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟如下:</p><p> 需求分析:首先明確用戶對(duì)數(shù)據(jù)的需求。</p><p> 概念結(jié)構(gòu)設(shè)計(jì):概念模型主要是用來(lái)反映用戶的現(xiàn)實(shí)環(huán)境和需求,它獨(dú)立于具體的數(shù)據(jù)庫(kù)管理系統(tǒng),并且與數(shù)據(jù)庫(kù)怎樣實(shí)現(xiàn)無(wú)關(guān)。</p><p> 邏輯結(jié)構(gòu)設(shè)計(jì):在邏輯結(jié)
44、構(gòu)設(shè)計(jì)階段,主要完成建立數(shù)據(jù)庫(kù)的邏輯模型,并解決數(shù)據(jù)的完整性、一致性、安全性和有效性等問(wèn)題;</p><p> 物理結(jié)構(gòu)設(shè)計(jì):該階段的任務(wù)是為系統(tǒng)邏輯結(jié)構(gòu)模型確定合理的存儲(chǔ)結(jié)構(gòu)、存取方法、以及數(shù)據(jù)表示和數(shù)據(jù)存儲(chǔ)空間分配等內(nèi)容,從而得到具體的數(shù)據(jù)庫(kù)物理結(jié)構(gòu)。</p><p> 數(shù)據(jù)庫(kù)實(shí)施:數(shù)據(jù)庫(kù)實(shí)施主要包括用DDL定義數(shù)據(jù)庫(kù)結(jié)構(gòu)、組織數(shù)據(jù)入庫(kù)、編制與調(diào)試應(yīng)用程序、數(shù)據(jù)庫(kù)試運(yùn)行等步驟。&l
45、t;/p><p> 數(shù)據(jù)庫(kù)運(yùn)行與維護(hù):數(shù)據(jù)庫(kù)投入運(yùn)行標(biāo)著開(kāi)發(fā)任務(wù)的基本完成和維護(hù)工作的開(kāi)始,數(shù)據(jù)庫(kù)物理存儲(chǔ)也會(huì)不斷變化,對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)進(jìn)行評(píng)價(jià)、調(diào)整、修改等維護(hù)工作是一個(gè)長(zhǎng)期的任務(wù)。該系統(tǒng)的E—R圖如圖3.2所示: </p><p> 圖 3.4 E-R圖</p><p> 數(shù)據(jù)庫(kù)最終要存儲(chǔ)于存儲(chǔ)設(shè)備上,數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)和存取方法稱為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。
46、以下是本系統(tǒng)的物理結(jié)構(gòu)的具體實(shí)現(xiàn):</p><p><b> 表 3.1 賬戶表</b></p><p> 表 3.2 用戶信息表</p><p> 表 3.3 用戶好友表</p><p><b> 第四章 詳細(xì)設(shè)計(jì)</b></p><p><b> 4
47、.1系統(tǒng)總體實(shí)現(xiàn)</b></p><p> 4.1.1 開(kāi)發(fā)平臺(tái)與開(kāi)發(fā)工具</p><p> 1.操作系統(tǒng):Windows XP</p><p> 2.系統(tǒng)開(kāi)發(fā)環(huán)境:MyEcplise 8.5</p><p> 3.數(shù)據(jù)庫(kù):Microsoft Access 2003</p><p> 4.開(kāi)發(fā)語(yǔ)言
48、:Java</p><p> 5.界面開(kāi)發(fā):Photoshop cs</p><p> 4.1.2 系統(tǒng)架構(gòu)圖</p><p> 該軟件是基于J2SE編寫的程序,Java是純面向?qū)ο蟮恼Z(yǔ)言,一切皆為對(duì)象。面向?qū)ο蟮乃枷敫臃先藗兊乃季S方式,封裝的思想可以比較好保證代碼的安全性而且可以更好地實(shí)現(xiàn)代碼的復(fù)用。</p><p> 軟件是基
49、于網(wǎng)絡(luò)Socket編程實(shí)現(xiàn)網(wǎng)絡(luò)通信,由服務(wù)器端程序和客戶端程序構(gòu)成。服務(wù)器端的主要任務(wù)是監(jiān)聽(tīng)客戶端傳來(lái)的信息,并且根據(jù)信息的類型做出相應(yīng)的處理,實(shí)現(xiàn)轉(zhuǎn)發(fā)功能??蛻舳顺绦虻闹饕蝿?wù)是接受服務(wù)器端的信息,并且向服務(wù)器發(fā)送信息,通過(guò)服務(wù)器實(shí)現(xiàn)轉(zhuǎn)發(fā)功能。</p><p> 本系統(tǒng)采用簡(jiǎn)單的MVC設(shè)計(jì)模式,具體架構(gòu)圖如圖4.1</p><p> 圖4.1 系統(tǒng)整體架構(gòu)圖</p>&
50、lt;p> 備注:client為客戶端程序</p><p> 1.login,friendlist,chitchat包分別是登錄,好友列表和聊天窗口的視圖層</p><p> 2.model包是業(yè)務(wù)邏輯層</p><p> 3.common主要是存儲(chǔ)客戶端和服務(wù)器端傳輸?shù)男畔㈩?lt;/p><p> 4.tools包主要是字體定義
51、等工具類</p><p> server為服務(wù)器端程序</p><p> 1.common主要是存儲(chǔ)客戶端和服務(wù)器端傳輸?shù)男畔㈩?lt;/p><p> 2. db包進(jìn)行數(shù)據(jù)庫(kù)進(jìn)行操作的類</p><p> 3. model包主要是服務(wù)器端的業(yè)務(wù)邏輯層</p><p> 4.2系統(tǒng)實(shí)現(xiàn)主要功能如下:</p&g
52、t;<p> 通過(guò)調(diào)查分析研究,本系統(tǒng)主要實(shí)現(xiàn)以下功能:</p><p> 客戶端各功能模塊如下:</p><p> 用戶登錄:用戶必須輸入自己的用戶號(hào)和密碼,當(dāng)用戶點(diǎn)擊登錄按鈕以后,軟件會(huì)把用戶和密碼封裝成一條信息,傳到后臺(tái)服務(wù)器驗(yàn)證用戶和密碼,服務(wù)器驗(yàn)證完會(huì)返回一個(gè)結(jié)果。如果結(jié)果為真,會(huì)進(jìn)入好友界面窗口。如果結(jié)果為假,會(huì)彈出對(duì)話框,告知用戶信息(用戶號(hào)或密碼輸入錯(cuò)誤
53、)</p><p> 注冊(cè):通過(guò)登錄界面的注冊(cè)按鈕,可以進(jìn)入注冊(cè)畫面。進(jìn)入注冊(cè)畫面,用戶可以填入賬戶號(hào),賬戶昵稱,性別,生日等信息,當(dāng)用戶點(diǎn)擊注冊(cè)畫面的按鈕時(shí),如果用戶號(hào)已存在會(huì)提示用戶重新輸入用戶號(hào)。</p><p> 好友界面(登錄成功會(huì)顯示自己的頭像和好友界面)1.查看自己的賬戶信息: 點(diǎn)擊自己的頭像,會(huì)彈出窗口顯示自己的信息。2.查看好友的信息:右鍵好友的名字,彈出快捷菜單
54、,在點(diǎn)擊查詢好友信息菜單,會(huì)彈出窗口顯示被點(diǎn)擊的好友的信息。</p><p> 3.聊天:右鍵點(diǎn)擊好友頭像,彈出快捷菜單,點(diǎn)擊“發(fā)送信息”菜單,會(huì)彈出聊天窗口,在文本框輸入文字信息,在點(diǎn)擊發(fā)送按鈕,文字會(huì)顯示在好友的窗口中,且顯示在自己的已發(fā)送窗口。</p><p> 4.刪除好友: 點(diǎn)擊頭像右鍵,彈出快捷菜單,點(diǎn)擊“刪除好友”,就可以實(shí)現(xiàn)刪除好友操作。</p><
55、;p> 5.查詢好友:可以在文本框輸入ICQ號(hào)碼,點(diǎn)擊查詢就可以實(shí)現(xiàn)查詢功能, 如果該ICQ不是自己的好友,可添加為好友</p><p> 服務(wù)端各功能模塊如下:</p><p> (一)開(kāi)啟服務(wù)端:點(diǎn)擊服務(wù)器端菜單可以開(kāi)啟和關(guān)閉服務(wù)器監(jiān)聽(tīng)。 (二)顯示用戶的在線狀態(tài):可以通過(guò)界面的小窗口顯示用戶的在線狀態(tài)。 (三)顯示用戶的行為:可以監(jiān)
56、聽(tīng)用戶之間傳輸?shù)男畔ⅰ?lt;/p><p> 4.2.1 服務(wù)器端界面</p><p> 服務(wù)器端有控制菜單,通過(guò)菜單可以控制服務(wù)器的開(kāi)啟和關(guān)閉。通過(guò)顯示面板可以查看用戶的在線的狀態(tài)和用戶的通信記錄。</p><p> 圖 4.1 服務(wù)器端界面</p><p> 服務(wù)器端監(jiān)聽(tīng)代碼: public void run()&
57、lt;/p><p><b> {</b></p><p> while(true)</p><p><b> {</b></p><p> //服務(wù)器通過(guò)該線程可以不斷的接受客戶端發(fā)來(lái)的信息</p><p> ObjectInputStream ois=null;<
58、;/p><p><b> try {</b></p><p> ois = new ObjectInputStream(s.getInputStream());</p><p> } catch (IOException e1) {</p><p> // TODO Auto-generated catch bloc
59、k</p><p> e1.printStackTrace();</p><p><b> }</b></p><p><b> try {</b></p><p> Message ms=(Message)ois.readObject();</p><p> if
60、(ms.getMesType()==MessageType.message_comm){//普通聊天</p><p> ServerList.jtext.append(ms.getTime()+"--"+ms.getFormUser()+" 對(duì) "+ms.getToUser()+" 說(shuō) "+ms.getCon()+"\n");<
61、;/p><p> SenMesToFri(ms);</p><p><b> }</b></p><p> else if(ms.getMesType()==MessageType.message_zd){//震動(dòng)窗口</p><p> ServerList.jtext.append(ms.getTime()+&qu
62、ot;--"+ms.getFormUser()+" 對(duì) "+ms.getToUser()+" 發(fā)送震動(dòng)窗口 !\n");</p><p> SenMesToFri(ms);</p><p> }else if(ms.getMesType()==MessageType.message_file){//服務(wù)器接受發(fā)送的文件并轉(zhuǎn)發(fā)給接受方&
63、lt;/p><p> ServerList.jtext.append(ms.getTime()+"--"+ms.getFormUser()+" 對(duì) "+ms.getToUser()+"發(fā)送文件:"+ms.getCon()+"\n");</p><p> SenMesToFri(ms);}</p>
64、<p> else if(ms.getMesType()==MessageType.message_personalImformation);</p><p> ServerList.jtext.append(ms.getTime()+"--"+ms.getFormUser()+" 查看好友 "+ms.getToUser()+"的信息"+m
65、s.getCon()+"\n");</p><p> //GetMesToSer(ms); }</p><p> }catch(Exception e){</p><p> e.printStackTrace();</p><p><b> }</b></p><
66、;p><b> }</b></p><p><b> }</b></p><p> 4.2.2 客戶端登錄界面</p><p> 用戶需要通過(guò)輸入正確的用戶名和密碼才能登進(jìn)軟件。如果沒(méi)有賬號(hào),可以點(diǎn)擊注冊(cè)新號(hào)按鈕,進(jìn)入注冊(cè)界面,填入相應(yīng)的信息完成注冊(cè),然后再使用新注冊(cè)的賬戶和密碼登錄。</p>
67、<p> 圖 4.2 客戶端登錄界面</p><p> 驗(yàn)證用戶名和密碼代碼:</p><p> public boolean checkUser(String user,String psw)//user是用戶的登錄賬號(hào)(Icq賬號(hào)),psw是用戶的登錄密碼</p><p><b> { </b></p>
68、;<p> boolean b=false;</p><p><b> try{</b></p><p> //組織sql語(yǔ)句訪問(wèn)數(shù)據(jù)庫(kù)和條件參數(shù)列表</p><p> String sql="select Icq_No,Icq_Nc,Icq_Icon from Icq where Icq_No=? and Ic
69、q_Psw=?";//通過(guò)用戶名和密碼要求數(shù)據(jù)庫(kù)返回用戶的:賬號(hào),昵稱,頭像</p><p> String[] paras={user,psw};</p><p> shp=new SqlHelper();</p><p> ResultSet rs=shp.query(sql,paras);</p><p> if(rs
70、.next())</p><p><b> {</b></p><p> ch[0]=rs.getString(1);//用戶Icq賬號(hào)</p><p> ch[1]=rs.getString(2);//用戶的昵稱</p><p> ch[2]=rs.getString(3);//用戶的頭像</p>
71、<p><b> b=true;</b></p><p><b> }</b></p><p><b> }</b></p><p> catch(Exception e)</p><p> {e.printStackTrace();}</p>
72、<p><b> finally{</b></p><p> shp.close();</p><p><b> }</b></p><p><b> return b;</b></p><p><b> }</b></p&g
73、t;<p> 4.2.3 客戶端登錄后顯示好友界面</p><p> 用戶登錄后顯示本賬戶頭像信息,好友列表,和搜索好友欄。點(diǎn)擊好友列表可以進(jìn)行查看好友信息,刪除好友,和好友聊天等操作。用戶可以在搜索欄輸入賬號(hào)進(jìn)行好友搜索,如果存在該賬號(hào),就顯示該賬號(hào)信息,而且如果好友列表不存在該賬號(hào),可以添加該好友。如果好友列表存在該賬號(hào),“添加好友”按鈕為不可點(diǎn)擊狀態(tài)。</p><p&g
74、t; 圖4.3 登錄后好友顯示界面</p><p> 4.2.4 客戶端好友聊天界面</p><p> 雙擊好友頭像,或先點(diǎn)擊好友頭像再右鍵鼠標(biāo)彈出快捷菜單,點(diǎn)擊“發(fā)送信息”,會(huì)彈出好友聊天界面。通過(guò)好友聊天界面,可以發(fā)送信息,發(fā)送信息是通過(guò)Socket實(shí)現(xiàn)客戶端和服務(wù)器端的通信,然后對(duì)Socket添加輸入流和輸出流,使信息顯示在客戶用戶界面上或者對(duì)磁盤進(jìn)行文件寫入操作。</
75、p><p> 4.4 用戶聊天界面</p><p> 說(shuō)明:發(fā)送的信息包括三種信息:文本,文件,抖動(dòng)窗口</p><p> 發(fā)送文件代碼主要如下:</p><p> else if(e.getSource()==this.file){//發(fā)送文件</p><p> filedialog_load.setVisi
76、ble(true);</p><p> Message ms=new Message();</p><p> if(filedialog_load.getFile()!=null){</p><p><b> try {</b></p><p> File file_load=new File(filedialo
77、g_load.getDirectory(),filedialog_load.getFile());</p><p> DataInputStream dis=new DataInputStream(new BufferedInputStream(new FileInputStream(filedialog_load.getDirectory()+filedialog_load.getFile())));<
78、/p><p> byte[] bf=new byte[(int)file_load.length()];while (true) {</p><p> int num= 0;</p><p> if (dis != null) {</p><p> num = dis.read(bf);</p><p>
79、 ms.setBuf(bf);</p><p><b> }</b></p><p> if (num == -1) {</p><p><b> break;</b></p><p><b> }</b></p><p> //dos.wr
80、ite(bf, 0, num);</p><p><b> }</b></p><p> ms.setMesType(MessageType.message_file);//發(fā)送文件,message_file==6</p><p> ms.setFormUser(Fu);//發(fā)送者</p><p> ms.set
81、ToUser(toChat);//接收者</p><p> ms.setTime(this.date.toLocaleString());//發(fā)送的時(shí)間</p><p> ms.setCon(file_load.getName());//傳輸文件的名稱</p><p> } catch (Exception e1) {</p><p>
82、 e1.printStackTrace();</p><p><b> }</b></p><p><b> try {</b></p><p> ObjectOutputStream oos=new ObjectOutputStream(ManageClientToSerThread.getClientToSer
83、Thread(Fu).getS().getOutputStream());</p><p> oos.writeObject(ms);</p><p> } catch (IOException e1) {</p><p> e1.printStackTrace();</p><p><b> }</b><
84、/p><p> System.out.println("文件名:"+filedialog_load.getFile());</p><p> System.out.println("文件路徑:"+filedialog_load.getDirectory());</p><p> this.showpane.append(&q
85、uot;給 "+Tu+" 傳送了文件:"+filedialog_load.getDirectory()+filedialog_load.getFile()+"\n");</p><p><b> }</b></p><p><b> } </b></p><p> 參
86、考文獻(xiàn)(Reference)</p><p> [1] 西爾伯沙茨(美). 數(shù)據(jù)庫(kù)系統(tǒng)概念[M] .機(jī)械工業(yè)出版社, 2006</p><p> [2] 陳志泊.?dāng)?shù)據(jù)庫(kù)原理及應(yīng)用教程[M] .人民郵電出版社 2008</p><p> [3] 埃克爾(美) .Java編程思想[M] .機(jī)械工業(yè)出版社 2007</p><p> [4]
87、 李剛.Java瘋狂講義[M] .電子工業(yè)出版社 2008</p><p> [5] 哈諾德.Java網(wǎng)絡(luò)編程.中國(guó)電力出版社 2005</p><p> [6] 王鵬,何昀峰.Java Swing圖形界面開(kāi)發(fā)與詳解[M] .清華大學(xué)出版社 2008</p><p> [7] 徐峰.UML面向?qū)ο蠼;A(chǔ)[M] .水利水電出版社 2006</p>
88、<p> [8] 王少鋒.面向?qū)ο蠹夹g(shù)UML教程[M] .清華大學(xué)出版社, 2005</p><p> [9] 羅依.Java Swing[M] .清華大學(xué)出版社,2004</p><p> [10] 潘志軍.?dāng)?shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)—Access[M] .北京理工大學(xué)出版社,2010</p><p> [11] 付博.Access 開(kāi)發(fā)實(shí)例完全剖析[M]
89、 .中國(guó)電力出版社,2006</p><p> [12] 特羅特著,徐言聲譯.設(shè)計(jì)模式解析[M] .人民郵電出版社, 2004年</p><p> [13] 伽瑪 著,李英軍 譯.設(shè)計(jì)模式--可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M] .機(jī)械工業(yè)出版社,2005</p><p> [14] 卡爾弗特等 著,周恒民 譯.Java TCP/IP Socket編程[M] .機(jī)械
90、工業(yè)出版社,2009</p><p> [15] 方晨.Phtoshop CS3 中文版入門提高[M] .上??茖W(xué)普及出版社,2008</p><p> [16] 丹尼斯 著,干紅花 譯.系統(tǒng)分析與設(shè)計(jì)[M] .人民郵電出版社,2009</p><p><b> 附錄:</b></p><p> Parsing
91、Java Abstraction of the Difference Between Classes and Interfaces</p><p> In Java language, abstract scale-up and with support class abstraction definition of two mechanisms. Because of these two kinds of m
92、echanism of existence, just gives Java powerful object-oriented skills. Abstract scale-up and with between class abstraction definition for support has great similarities, even interchangeable, so many developers into li
93、ne nonabstract class definition for abstract scale-up and it is becoming more casual with choice. In fact, both between still has the very big diffe</p><p> Understand class abstraction</p><p>
94、 Abstract class and interface in Java language is used for abstract classes (in this article nonabstract class not from abstract scale-up translation, it represents an abstract body, and abstract scale-up for Java langu
95、age used to define class abstraction in one way, please readers distinguish) defined, then what are the abstract classes, use abstract classes for us any good?</p><p> In object-oriented concept, we know al
96、l objects is through class to describe, but in turn not such. Not all classes are used to describe object, if a class does not contain enough information to portray a concrete object, this class is abstract classes. Abst
97、ract classes are often used to characterization of problem field in our analysis, design that the abstract concepts, is to the series will look different, but essentially the same exact conception of abstraction. For exa
98、mple: if we carry out </p><p> In an object-oriented field, mainly used for class abstraction types hidden. We can construct a fixed a group of behavior of abstract description, but this group of behavior b
99、ut can have any a possible concrete implementation. This abstract describe is abstract classes, and this an arbitrary a possible concrete realization is behaved for all possible derived class. Modules can be operating an
100、 abstract body. Due to the module dependent on a fixed abstraction body, so it can are not allowed to mod</p><p> From the perspectives of grammar definition abstract class and interface</p><p>
101、; In grammatical perspective, Java language for abstract scale-up and with gives different definitions below to define a way, called produce professional Demo abstract class as an example to illustrate the difference.&l
102、t;/p><p> Use the abstract scale-up produce professional Demo abstract class defined as follows:</p><p> abstract class Demo{abstract void method1();abstract void method2();…}</p><
103、p> Use the way with produce professional Demo abstract class defined as follows:</p><p> interface Demo{void method1();void method2();…}</p><p> In the abstract scale-up manner, produc
104、e professional Demo can have their own data members, also can have the members of the abstract method, and with the realization of the way, produce professional Demo can have only static cannot be modified data members (
105、i.e. must is static, immigration, but in with generally doesn't define data members), all the members of the methods is abstract. In a sense, with a special kind of abstract class.</p><p> From programm
106、ing, from the perspective of abstract scale-up and with can be used to achieve "cancel" thoughts make themselves. But in the specific use top still have some difference.</p><p> First, abstract cl
107、ass in Java language suggests is a kind of inheriting relationship, a class can be used only once inheritance relationship (because Java do not support more inheritance ZhuanZhu). - However, a class but can implement mul
108、tiple with. Maybe it is Java language designers in considering Java for multiple inheritance support of a compromise to consider it.</p><p> Secondly, in the definition of abstract scale-up, we may give met
109、hods of default behavior. But in with the definition of method cannot have the default behaviour, to bypass this limits, must use entrust, but it will add some complexity, sometimes can cause a lot of trouble.</p>
110、<p> In class abstraction cannot define the default behaviour is there another serious problem that may cause on the maintenance of trouble. Because if later want to modify the interface (usually by such abstract
111、scale-up or with to represent) to adapt to the new situation (e.g., adding new methods or to have already used the method to add new parameters), will be very troublesome, might spend a lot of time (for a derived class m
112、any situation, especially). But if the interface is through scale-up abs</p><p> Similarly, if not in abstract class defined in the default behavior, can lead to the same method to appear in the abstract cl
113、ass every a derived class, violated "a-one rule," principle, causing a-one place, the same code duplication against future maintenance. Therefore, in the abstract scale-up and with a choice between should be ca
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 局域網(wǎng)即時(shí)通信軟件畢業(yè)論文
- 即時(shí)通信工具畢業(yè)論文
- 畢業(yè)論文--基于java的即時(shí)通信軟件設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文--基于java的即時(shí)通信軟件設(shè)計(jì)與實(shí)現(xiàn)
- 基于qt的局域網(wǎng)跨平臺(tái)即時(shí)通信軟件 畢業(yè)論文
- 基于java的android即時(shí)通訊軟件畢業(yè)論文
- 基于p2p網(wǎng)絡(luò)模型的即時(shí)通信軟件的研制-本科畢業(yè)論文
- 畢業(yè)論文--linux下基于c++開(kāi)發(fā)的即時(shí)通訊軟件
- 基于vc的簡(jiǎn)單即時(shí)通信軟件開(kāi)發(fā)【畢業(yè)設(shè)計(jì)】
- 即時(shí)通訊軟件的設(shè)計(jì)2論文
- 基于bs模式的即時(shí)通信軟件設(shè)計(jì)
- 畢業(yè)論文——基于bs方式的即時(shí)通訊軟件的設(shè)計(jì)與實(shí)現(xiàn)
- 基于bs方式的即時(shí)通訊軟件的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 基于bs方式的即時(shí)通信軟件的和實(shí)現(xiàn)
- 即時(shí)通訊系統(tǒng)---畢業(yè)論文
- 基于bs方式的即時(shí)通訊軟件的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 基于c#的即時(shí)通訊軟件設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 基于J2SE的J2ME模擬器設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2SE的網(wǎng)上考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于vb的即時(shí)通信系統(tǒng)畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論