賈艷平
(山西旅游職業(yè)學(xué)院計(jì)算機(jī)科學(xué)系 山西省太原市 030031)
JAVA 是目前市場(chǎng)上使用得比較多的軟件開(kāi)發(fā)編程語(yǔ)言,其源代碼具有開(kāi)源性,設(shè)計(jì)的軟件可不受操作平臺(tái)的限制,因此深受軟件開(kāi)發(fā)工程師的喜歡。目前,市場(chǎng)上仍有多種編程語(yǔ)言運(yùn)用在軟件設(shè)計(jì)上,如PHP、Python 等,但JAVA 語(yǔ)言憑借其獨(dú)有的優(yōu)勢(shì),仍占據(jù)著足夠的市場(chǎng)份額。JAVA 語(yǔ)言是在C 語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái),是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,對(duì)程序員來(lái)說(shuō),這意味著要注意應(yīng)用中的數(shù)據(jù)和操縱數(shù)據(jù)的方法,而不是嚴(yán)格的用過(guò)程來(lái)思考。另外,由于程序員不能左右用戶對(duì)于操作系統(tǒng)的選擇,因此其所開(kāi)發(fā)的程序需保證可以在不同操作系統(tǒng)中運(yùn)行,而JAVA 語(yǔ)言能夠很好滿足這要求。同時(shí),在軟件開(kāi)發(fā)過(guò)程中,JAVA 因其發(fā)展時(shí)間長(zhǎng),使用人群龐大,大量靈活應(yīng)用JAVA 語(yǔ)言的程序員仍在研究著JAVA 并使用,他們?cè)诨ヂ?lián)網(wǎng)上共享開(kāi)源代碼、探索代碼更便捷的應(yīng)用,為剛?cè)腴T(mén)的JAVA 工程師提供了更多的便利。Android 系統(tǒng)也是基于JAVA 語(yǔ)言,特別是現(xiàn)在游戲企業(yè)開(kāi)發(fā)手機(jī)游戲基本都是以Android 操作系統(tǒng)為主,通過(guò)Android 語(yǔ)言進(jìn)行開(kāi)發(fā),但還是以JAVA 語(yǔ)言為底子進(jìn)行編程。因此,近幾年JAVA 編程語(yǔ)言仍有市場(chǎng)活力。
JAVA 語(yǔ)言是在C++的基礎(chǔ)上發(fā)展,其繼承了C++語(yǔ)言的特點(diǎn),又在發(fā)展中形成了自己的特點(diǎn)和優(yōu)勢(shì)。
JAVA 編程兼容性強(qiáng)大,使得它可以在多個(gè)操作平臺(tái)運(yùn)行。在實(shí)際的編程中,JAVA 程序通過(guò)編譯器生成一種具備體系結(jié)構(gòu)中立性的目標(biāo)格式文件,生成一個(gè)與計(jì)算機(jī)系統(tǒng)無(wú)關(guān)的字節(jié)碼文件。這種方式適合于異構(gòu)的多種平臺(tái),使得其可以在任何計(jì)算機(jī)、任何操作系統(tǒng)都能夠成功識(shí)別并運(yùn)行,具有獨(dú)有的平臺(tái)獨(dú)立性。
JAVA 作為一種大眾的編程語(yǔ)言,JAVA 環(huán)境本身對(duì)新的硬件平臺(tái)和操作系統(tǒng)是可移植的。這意味JAVA 程序可以在任何CPU、操作系統(tǒng)、java 編譯器上運(yùn)行,且都能運(yùn)行成功。雖然C++和C 語(yǔ)言也有同樣的功能,但是它們對(duì)編程沒(méi)有進(jìn)行嚴(yán)格定義,而JAVA定義了嚴(yán)密的語(yǔ)義結(jié)構(gòu),編譯器只負(fù)責(zé)編譯,而不負(fù)責(zé)語(yǔ)義結(jié)構(gòu)的工作。
面向?qū)ο蟮某绦蚍浅S欣陂_(kāi)發(fā)網(wǎng)絡(luò)版本軟件。軟件的開(kāi)發(fā)最終是給予用戶使用,用戶的體驗(yàn)直接決定軟件開(kāi)發(fā)是否成功。程序員在軟件設(shè)計(jì)過(guò)程中,要特別關(guān)注軟件在使用中能否和信息達(dá)到交互,客戶的多重需求也能否得到滿足。JAVA 的多線程特點(diǎn)便能很好的滿足客戶需求、實(shí)現(xiàn)信息交互,軟件的實(shí)用性便會(huì)成全,以此
提高軟件的用戶粘度
面向?qū)ο笫且詫?duì)象為中心的編程思想,其通過(guò)常人能理解的思維方式對(duì)復(fù)雜系統(tǒng)進(jìn)行分析、設(shè)計(jì)和編程。在一個(gè)面向?qū)ο蟮南到y(tǒng)中,類(lèi)(class)是數(shù)據(jù)和操縱數(shù)據(jù)的方法的集合。數(shù)據(jù)和方法一起描述對(duì)象的狀態(tài)和行為。每一對(duì)象是其狀態(tài)和行為的封裝。類(lèi)具有一定的體系和層次,使得子類(lèi)可以從超類(lèi)繼承行為,并且改寫(xiě)超類(lèi)行為。由此歸納出面向?qū)ο蟮娜齻€(gè)特性:封裝、繼承、多態(tài)[2]。
1.4.1 封裝
封裝,字面上的意思是包裝,專(zhuān)業(yè)點(diǎn)就是信息隱藏,其涵義是將屬性隱藏起來(lái),利用抽象數(shù)據(jù)類(lèi)型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,使其成為一個(gè)不可分割的獨(dú)立實(shí)體,數(shù)據(jù)被保護(hù)在抽象數(shù)據(jù)類(lèi)型的內(nèi)部,盡可能地隱藏內(nèi)部的細(xì)節(jié),只保留一些對(duì)外接口使之與外部發(fā)生聯(lián)系,也就是說(shuō)外界不需要知道對(duì)象內(nèi)部的細(xì)節(jié),在外部數(shù)據(jù)需要訪問(wèn)某個(gè)屬性,對(duì)象會(huì)提供公共方法對(duì)其訪問(wèn)。封裝之后,數(shù)據(jù)和數(shù)據(jù)的操作被分割成為了獨(dú)立體,獨(dú)立實(shí)體可以在不同的場(chǎng)景使用,這樣程序的耦合度降低,擴(kuò)展性提高。封裝最常見(jiàn)的形式是先對(duì)成員變量用private 將它私有化,并向外界提供set()和get()方法供調(diào)用。
1.4.2 繼承
繼承,數(shù)據(jù)和數(shù)據(jù)的操作被封裝成為獨(dú)立體后,兩個(gè)或多個(gè)獨(dú)立體之間可能存在繼承關(guān)系,這種靈感來(lái)源于現(xiàn)實(shí)生活中的繼承,兒子繼承父親的財(cái)產(chǎn),兒子不需努力就能獲得父親的所有。在程序設(shè)計(jì)中,多個(gè)類(lèi)可能會(huì)擁有同一個(gè)特征和動(dòng)作,如果每個(gè)類(lèi)都重復(fù)編寫(xiě),則會(huì)產(chǎn)生代碼冗余。因此,在軟件設(shè)定上構(gòu)建通用類(lèi),在其他類(lèi)需要使用的時(shí)候直接繼承,避免重復(fù),易于維護(hù)[3]。在JAVA的繼承中,父類(lèi)是通用類(lèi),屬性和行為比較普遍,而子類(lèi)屬于特殊類(lèi),屬性和行為特殊,子類(lèi)在繼承父類(lèi)的特征和方法后,將擁有父類(lèi)屬性,或擁有父類(lèi)的行為。例如,食肉動(dòng)物和食草動(dòng)物同屬于動(dòng)物種類(lèi),它們可以繼承動(dòng)物類(lèi)的屬性,但它們又有自己的特殊,一個(gè)是食肉的,一個(gè)是食草的。
1.4.3 多態(tài)
多態(tài)是在通過(guò)封裝形成獨(dú)立體,并獨(dú)立體之間存在著繼承關(guān)系,便會(huì)觸發(fā)多態(tài)機(jī)制。多態(tài)便是同一行為可以具有多種表達(dá)形式的能力。例如,同一個(gè)按鍵“F1”,在Word 上彈出的是幫助中心,在Windows 桌面上彈出的便是Windows 幫助和支持,同樣按鍵在不同界面觸發(fā)是不一樣的行為。另外,在java 中允許兩種語(yǔ)法出現(xiàn),一種是向上轉(zhuǎn)型,一種是向下轉(zhuǎn)型。向上轉(zhuǎn)型是自然轉(zhuǎn)型,子類(lèi)繼承父類(lèi)。則向下轉(zhuǎn)型是強(qiáng)制轉(zhuǎn)型,父類(lèi)轉(zhuǎn)換子類(lèi)。但是,有一點(diǎn)必須明確,向上或向下轉(zhuǎn)型的前提是必須要有繼承關(guān)系。
利用JAVA 獨(dú)立平臺(tái)性的特點(diǎn),程序員可以在任何一個(gè)操作系統(tǒng)進(jìn)行設(shè)計(jì),可以靈活選擇操作系統(tǒng),程序設(shè)計(jì)不受操作系統(tǒng)局限,對(duì)程序設(shè)計(jì)、開(kāi)發(fā)、測(cè)試的先進(jìn)性提供了有效保障。設(shè)計(jì)、開(kāi)發(fā)和測(cè)試是軟件的生命周期最重要的三個(gè)階段,而JAVA 的獨(dú)立平臺(tái)性則是提高程序生命力的關(guān)鍵因素。
今天,不止是桌面上的電腦,手中的電話、汽車(chē)中的通信設(shè)備、家中的冰箱、洗衣機(jī)等都連入互聯(lián)網(wǎng),形成一個(gè)移動(dòng)的互聯(lián)網(wǎng)。JAVAME 就是JAVA 程序在這些連接設(shè)備上的執(zhí)行平臺(tái)和開(kāi)發(fā)環(huán)境,它的總體的運(yùn)行環(huán)境和目標(biāo)更加多樣化,但其中每一種產(chǎn)品的用途卻更為單一,而且資源限制也更加嚴(yán)格。它通過(guò)在各種設(shè)備上安裝適合的JAVA 虛擬機(jī)KVM,應(yīng)用程序在虛擬機(jī)之上運(yùn)行,將JAVA語(yǔ)言的平臺(tái)無(wú)關(guān)的特性移植到了小型電子設(shè)備上,允許移動(dòng)無(wú)線設(shè)備之間共享應(yīng)用程序。
另外,市面上仍有大量游戲軟件利用JAVA 語(yǔ)言的嵌入式特性編寫(xiě),軟件可移植性使得JAVA 開(kāi)發(fā)的游戲更利于提高游戲效果,滿足人們的需求。隨著社會(huì)發(fā)展,快節(jié)奏的生活改變著人們的生活方式,java 編程的可移植性,可使得Java 游戲能夠通過(guò)計(jì)算機(jī)和移動(dòng)終端完成,更好的滿足人們碎片化時(shí)間娛樂(lè)的需求。
隨著科技和社會(huì)的進(jìn)步,人們的要求和需求逐步提高,之前軟件界面多為靜態(tài)化,功能比較單一,而如今軟件的需求為界面動(dòng)態(tài)并能實(shí)現(xiàn)人機(jī)交互,這其中就會(huì)涉及到添加圖像、視頻、聲音等,編寫(xiě)程序就會(huì)需要增加相應(yīng)編程代碼,使得軟件功能更加豐富。JAVA 語(yǔ)言提供了豐富的類(lèi)庫(kù)用于圖形用戶界面設(shè)計(jì),分別位于java.awt 包和java.swing 包中?;镜腁WT 庫(kù)將常用事件分為窗體事件、鼠標(biāo)事件、鍵盤(pán)事件、動(dòng)作事件,涵蓋了人機(jī)交互所有觸發(fā)事件。但AWT 創(chuàng)建和使用的界面或按鈕具有本地外觀,繪制出的圖形不完全具有跨平臺(tái)性。Swing 是在AWT 基礎(chǔ)上發(fā)展的輕量級(jí)組件,與本地圖形庫(kù)沒(méi)有太大的關(guān)系,解決了AWT 的弊端,與AWT 共同完成應(yīng)用程序的設(shè)計(jì)。
JAVA 的多線程和面向?qū)ο筇攸c(diǎn),能夠有效提高程序員的編程效率和軟件的實(shí)用性,使得程序員在程序開(kāi)發(fā)中更為方便。多線程是實(shí)現(xiàn)并發(fā)機(jī)制的有效手段。進(jìn)程和線程一樣,都是實(shí)現(xiàn)并發(fā)的一個(gè)基本單位,但線程是進(jìn)程中更小的程序單元。JAVA 語(yǔ)言提供多線程機(jī)制,由JAVA 虛擬機(jī)負(fù)責(zé)按照既定的機(jī)制(線程調(diào)用模型)為過(guò)分線程分配CPU 使用權(quán),可以在一個(gè)進(jìn)程執(zhí)行過(guò)程中產(chǎn)生多個(gè)線程,并發(fā)執(zhí)行相互獨(dú)立,互不影響。
除此之外,互聯(lián)網(wǎng)紅利在我國(guó)尚未消退,隨著科學(xué)技術(shù)的不斷提高,JAVA 編程在我國(guó)仍然還有廣闊的應(yīng)用前景和發(fā)展前景,學(xué)校、企業(yè)、銀行等事企單位仍利用JAVA 編程語(yǔ)言開(kāi)發(fā)內(nèi)部管理系統(tǒng)和進(jìn)行一些多媒體數(shù)據(jù)處理。
軟件開(kāi)發(fā)是一項(xiàng)系統(tǒng)化的工程,其依靠服務(wù)端、用戶端、數(shù)據(jù)庫(kù)之間信息交互實(shí)現(xiàn)功能,JAVA 作為一種編程工具,能夠很好的建立并連接軟件開(kāi)發(fā)中需要的服務(wù)端、用戶端和數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)是軟件的重要部分,其主要是儲(chǔ)存數(shù)據(jù)作軟件調(diào)取。在開(kāi)發(fā)過(guò)程中,將JAVA 語(yǔ)言運(yùn)用在數(shù)據(jù)庫(kù)軟件上,利用JDBC 將JAVA 程序和數(shù)據(jù)庫(kù)相連接,提供快捷便利的多種數(shù)據(jù)訪問(wèn)方式,使得數(shù)據(jù)庫(kù)有效連接服務(wù)器。JDBC 技術(shù)不僅可以為java 程序提供有效快捷的在數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)查詢(xún)功能,還能更好的管理后臺(tái)數(shù)據(jù)。另外,其給計(jì)算機(jī)程序提供了統(tǒng)一接口,因而可以實(shí)現(xiàn)為更高級(jí)、復(fù)雜的數(shù)據(jù)進(jìn)行處理和管理。JDBC 技術(shù)在JAVA 程序開(kāi)發(fā)過(guò)程中使用比較普遍,主要在于其能很好的完成軟件功能的實(shí)現(xiàn)。
因?yàn)镴AVA 語(yǔ)言機(jī)制嚴(yán)格,其語(yǔ)法和應(yīng)用管理科學(xué),能夠保障JAVA 語(yǔ)言能夠使得軟件開(kāi)發(fā)順利進(jìn)行。JAVA Remote Method Invocation 技術(shù)的主要功能便是調(diào)試與運(yùn)用java 語(yǔ)言中的對(duì)象和類(lèi),實(shí)現(xiàn)分布式應(yīng)用程序管理。其能夠有效的整合數(shù)據(jù),調(diào)試分布式程序運(yùn)行,保證程序運(yùn)行的穩(wěn)定性、安全性、穩(wěn)定性。
每個(gè)編程語(yǔ)言都有獨(dú)特的元素?cái)?shù)據(jù)語(yǔ)法,程序員在編寫(xiě)程序時(shí)要注重合理運(yùn)用編程語(yǔ)言的數(shù)據(jù)語(yǔ)法,合理的進(jìn)行軟件功能的實(shí)現(xiàn)。這就要求程序員必須對(duì)編程與亞女當(dāng)元素?cái)?shù)據(jù)語(yǔ)法熟悉,并能夠在軟件開(kāi)發(fā)中合理的運(yùn)用,完善程序功能。Annotation 便是JAVA 編程語(yǔ)言的獨(dú)特元素?cái)?shù)據(jù)語(yǔ)法,正確地處理好JAVA 編程語(yǔ)言中各屬性、參數(shù)和變量等要素之間的關(guān)系便是JAVAAnnotation技術(shù)的目的,通過(guò)在計(jì)算機(jī)軟件開(kāi)發(fā)中應(yīng)用JAVA Annotation 技術(shù),能夠使得計(jì)算機(jī)用戶對(duì)JAVA 編程中的各屬性、參數(shù)以及變量進(jìn)行有機(jī)的整合,對(duì)實(shí)現(xiàn)軟件功能進(jìn)行有效應(yīng)用。另外,JAVA Annotation 技術(shù)的一致性和安全性特點(diǎn),使得其可為程序開(kāi)發(fā)員提供某些程序之外的數(shù)據(jù)。例如,軟件開(kāi)發(fā)人員在進(jìn)行代碼編寫(xiě)中,可以通過(guò)向編譯器輸送特殊停止命令終止錯(cuò)誤代碼的運(yùn)行,并解讀和分析錯(cuò)誤代碼運(yùn)行后形成的數(shù)據(jù)。
綜上所述,JAVA 編程語(yǔ)言憑借著其平臺(tái)獨(dú)立性、可移植性、面向?qū)ο蟆⒍嗑€程等特點(diǎn),在計(jì)算機(jī)軟件開(kāi)發(fā)中大顯身手,即使現(xiàn)在是多種編程語(yǔ)言共存的時(shí)代,JAVA 勢(shì)頭仍旺。另外,Java 編程語(yǔ)言技術(shù)除本文提到的JAVADatabase Connectivity 技術(shù)和JAVA Remote Method Invocation 技術(shù)、JAVA Annotation 技術(shù)等之外還有ENTERPRISE JAVA BEANS、JAVA SERVER PAGES 等等,都是計(jì)算機(jī)軟件開(kāi)發(fā)中常用到的。在不少JAVA 開(kāi)發(fā)工程師的努力下,Java 編程語(yǔ)言正在推動(dòng)著軟件開(kāi)發(fā)朝著更便捷、更先進(jìn)的方向發(fā)展。