网站首页
教育杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
医学杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
经济杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
金融杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
管理杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
科技杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
工业杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
SCI杂志
中科院1区 中科院2区 中科院3区 中科院4区
全部期刊
公務(wù)員期刊網(wǎng) 論文中心 正文

Java程序設(shè)計(jì)語(yǔ)言在軟件開發(fā)中運(yùn)用

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了Java程序設(shè)計(jì)語(yǔ)言在軟件開發(fā)中運(yùn)用范文,希望能給你帶來(lái)靈感和參考,敬請(qǐng)閱讀。

Java程序設(shè)計(jì)語(yǔ)言在軟件開發(fā)中運(yùn)用

摘要:本文從提升編程的效率、應(yīng)用于計(jì)算機(jī)無(wú)線和移動(dòng)工作中以及應(yīng)用于企業(yè)與行業(yè)的發(fā)展中幾方面內(nèi)容著手,闡述了java程序設(shè)計(jì)語(yǔ)言軟件開發(fā)中的應(yīng)用方式,并以iOS手機(jī)軟件為例對(duì)Java程序設(shè)計(jì)語(yǔ)言在軟件開發(fā)中的實(shí)踐運(yùn)用進(jìn)行了詳細(xì)分析,旨在為相關(guān)人員提供參考。

關(guān)鍵詞:Java程序設(shè)計(jì)語(yǔ)言;軟件開發(fā);iOS手機(jī)軟件

0引言

Java程序設(shè)計(jì)語(yǔ)言在軟件開發(fā)中進(jìn)行應(yīng)用的過(guò)程中有著較高的應(yīng)用價(jià)值,能夠同當(dāng)前時(shí)代背景下更多的應(yīng)用需求相適應(yīng),但從目前來(lái)看,其在應(yīng)用過(guò)程中仍面臨一定的不利因素,基于此,有必要對(duì)其展開更加深層次的探索。

1Java程序設(shè)計(jì)語(yǔ)言在軟件開發(fā)中的應(yīng)用方式

1.1提升編程的效率

Java程序的應(yīng)用最主要的便是在編程效率的提升方面,以往在編程方面存在著來(lái)自諸多方面的限制,與此同時(shí),其本身存在著較高的專業(yè)程度,但從目前來(lái)看,編程不再像從前一樣面臨較高的難度,與此同時(shí),其在準(zhǔn)入門檻方面也有所降低,強(qiáng)化對(duì)于Java程序設(shè)計(jì)語(yǔ)言的應(yīng)用能夠在極大程度上實(shí)現(xiàn)編程效率的提升,這樣一來(lái)便能夠有效發(fā)揮出其對(duì)于軟件開發(fā)技術(shù)提高的推動(dòng)作用。

1.2應(yīng)用于計(jì)算機(jī)無(wú)線和移動(dòng)工作中

在當(dāng)前大數(shù)據(jù)技術(shù)飛速發(fā)展的時(shí)代背景下,人們開始將注意力和關(guān)注點(diǎn)放在無(wú)線和移動(dòng)工作上,移動(dòng)互聯(lián)網(wǎng)運(yùn)行的速度對(duì)于企業(yè)未來(lái)的發(fā)展情況有著直接影響,與此同時(shí),還同編程與程序開發(fā)的速度息息相關(guān)。信息時(shí)代中人們?cè)诨ヂ?lián)的需求方面存在著顯著的提升,不管是娛樂還是購(gòu)物都離不開互聯(lián)網(wǎng)的支持,而企業(yè)的運(yùn)行及發(fā)展效率同樣需要網(wǎng)絡(luò)技術(shù)以及通訊技術(shù)等的支持,唯有保障網(wǎng)絡(luò)整體的發(fā)展效率,才能夠?yàn)槠髽I(yè)未來(lái)的發(fā)展提供更加穩(wěn)定的支持。Java程序設(shè)計(jì)語(yǔ)言的應(yīng)用能夠在極大程度上促進(jìn)計(jì)算及無(wú)線和移動(dòng)工作的發(fā)展,Java編程能夠在原有的基礎(chǔ)上對(duì)其運(yùn)行過(guò)程中進(jìn)行不斷的簡(jiǎn)化,進(jìn)而實(shí)現(xiàn)網(wǎng)絡(luò)運(yùn)行速度的優(yōu)化提升,這不僅能夠切實(shí)提升程序開發(fā)的穩(wěn)定性和實(shí)效性,還能夠?yàn)槠髽I(yè)的發(fā)展創(chuàng)造更加良好的條件[1]。

1.3應(yīng)用于企業(yè)與行業(yè)的發(fā)展中

Java程序設(shè)計(jì)語(yǔ)言在部分行業(yè)和企業(yè)發(fā)展的過(guò)程中有著較為廣泛的應(yīng)用,并在實(shí)踐中呈現(xiàn)出了較高的應(yīng)用價(jià)值,以IBM企業(yè)為例,其便通過(guò)Java程序設(shè)計(jì)語(yǔ)言的應(yīng)用,構(gòu)建起了IBM企業(yè)開發(fā)的軟件和能夠與之相適應(yīng)的服務(wù)器,進(jìn)而獲得了更加全面和深層次的發(fā)展。除此以外,Java在電子業(yè)或者是經(jīng)濟(jì)金融業(yè)等諸多企業(yè)中也有著一定的應(yīng)用,當(dāng)前已經(jīng)有諸多高等教育學(xué)校都開始設(shè)立了專門針對(duì)Java程序語(yǔ)言教學(xué)的課程,并培養(yǎng)了諸多專門的人才,在極大程度上轉(zhuǎn)變和改善了學(xué)生的思維方式。在未來(lái)我國(guó)的經(jīng)濟(jì)發(fā)展中,Java程序設(shè)計(jì)語(yǔ)言的應(yīng)用范圍將會(huì)得到進(jìn)一步擴(kuò)展,其技術(shù)也會(huì)持續(xù)更新升級(jí),切實(shí)發(fā)揮出其自身的重要作用。

2Java程序設(shè)計(jì)語(yǔ)言在軟件開發(fā)中的運(yùn)用——以iOS手機(jī)軟件為例

2.1應(yīng)用思路

通常情況下來(lái)說(shuō),Java語(yǔ)言會(huì)應(yīng)用在對(duì)于Android手機(jī)軟件的開發(fā)上,而iOS則大多會(huì)采用c++或者是Objective-C語(yǔ)言進(jìn)行開發(fā)。所以當(dāng)在對(duì)一款移動(dòng)端應(yīng)用進(jìn)行制作的時(shí)候需要同兩個(gè)平臺(tái)相適應(yīng),便要對(duì)兩個(gè)不同的開發(fā)語(yǔ)言進(jìn)行應(yīng)用,在各自平臺(tái)上分別將相同的邏輯開發(fā)一次。但此舉往往涉及到對(duì)于大量人力和財(cái)力的浪費(fèi),特別是在時(shí)間方面的花費(fèi),對(duì)于移動(dòng)互聯(lián)網(wǎng)市場(chǎng)來(lái)說(shuō),時(shí)間是至關(guān)重要的影響因素,所以亟待采用適當(dāng)?shù)姆椒▉?lái)解決這一問題。在綜合考慮公司自身開發(fā)人員實(shí)際特點(diǎn)以及一個(gè)跨平臺(tái)開發(fā)引擎實(shí)際情況的基礎(chǔ)上,選用了RoboVM編譯器以及l(fā)ibGDX游戲引擎。開發(fā)者可以基于Java語(yǔ)言對(duì)應(yīng)用的邏輯部分進(jìn)行開發(fā),接下來(lái)再結(jié)合iOS本身的特性,對(duì)入口程度進(jìn)行編寫,這樣一來(lái)便能夠充分達(dá)到跨平臺(tái)的效果。此舉可以在極大程度上緩解普遍存在的重復(fù)勞動(dòng)的問題,進(jìn)而充分實(shí)現(xiàn)對(duì)于時(shí)間、財(cái)力以及人力成本的有效節(jié)約。與此同時(shí),因?yàn)槌绦虻倪壿嫴糠譃橐惶状a,所以能夠?yàn)榘姹竞罄m(xù)的開發(fā)以及維護(hù)工作的開展創(chuàng)造良好的條件。RoboVM編譯器能夠在原有的基礎(chǔ)上對(duì)Java字節(jié)碼進(jìn)行翻譯,使其以ARM或者是x86平臺(tái)上原生代碼的形式呈現(xiàn),應(yīng)用能夠CPU上直接進(jìn)行運(yùn)行,不需要對(duì)其他虛擬機(jī)或者是解釋器進(jìn)行應(yīng)用。RoboVM中涉及到一個(gè)Java到Objective-C的橋,可以同其他Java對(duì)象一樣進(jìn)行使用Objective-C的對(duì)象,絕大部分iOS開發(fā)的UIKit已經(jīng)支持,在未來(lái)不斷發(fā)展的過(guò)程中將會(huì)對(duì)更多的框架提供支持。

2.2需求分析

本次任務(wù)的主要目標(biāo)便是將某款采用Java開發(fā)的游戲向iOS平臺(tái)上進(jìn)行移植,并使其能夠在蘋果的AppStore上架。該游戲主要是采用libGDX引擎對(duì)其進(jìn)行開發(fā),并將RoboVM作為橋,使其能夠直接在iOS平臺(tái)上進(jìn)行編譯,但除此以外,從本質(zhì)上來(lái)看該應(yīng)用有著較強(qiáng)的商業(yè)化特點(diǎn),所以其不僅僅要能夠成功實(shí)現(xiàn)其最基本的游戲邏輯的移植,同時(shí)還應(yīng)當(dāng)在其中額外引入商業(yè)化的SDK。具體包括應(yīng)用內(nèi)計(jì)費(fèi)以及微信分享功能等等,本次的主要任務(wù)便是接入上述幾種商業(yè)化功能[2]。

2.3系統(tǒng)設(shè)計(jì)

2.3.1libGDX游戲的生命周期。對(duì)于游戲開發(fā)來(lái)說(shuō),相關(guān)設(shè)計(jì)者應(yīng)當(dāng)能夠?qū)τ螒虻纳芷谶M(jìn)行精確掌控,在libGDX基礎(chǔ)上所進(jìn)行的游戲開發(fā)中,ApplicationListener主要是對(duì)窗口進(jìn)行創(chuàng)建和顯示,還可以將其看作為一個(gè)簡(jiǎn)單的顯示屏。在對(duì)libGDX項(xiàng)目進(jìn)行創(chuàng)建的過(guò)程中,最初要?jiǎng)?chuàng)建便是ApplicationListener接口的對(duì)象,libGDX官方給出了相應(yīng)的生命周期,如圖1所示。在正式啟動(dòng)程序的時(shí)候可以對(duì)resize()方法以及create()方法進(jìn)行調(diào)用進(jìn)行初始化,而在運(yùn)行的過(guò)程中則需要調(diào)動(dòng)render()方法對(duì)游戲邏輯進(jìn)行顯示和運(yùn)行。當(dāng)暫停和恢復(fù)的時(shí)候,則需要分別對(duì)resume()方法和pause()進(jìn)行應(yīng)用,在正式關(guān)閉程序之前應(yīng)當(dāng)對(duì)dispose()方法進(jìn)行調(diào)用,以達(dá)到銷毀對(duì)象的效果。從上述內(nèi)容可以知道,libGDX自然地以事件為驅(qū)動(dòng),這一點(diǎn)基本上同JavaScript與Android相似,其沒有較為明顯和突出的主循環(huán),但是ApplicationListener.render()方法仍然能夠作為主循環(huán)的主體存在。2.3.2在Xcode中接入應(yīng)用內(nèi)計(jì)費(fèi)功能。應(yīng)用內(nèi)計(jì)費(fèi)功能需要將StoreKit.framework加入到Xcode來(lái)實(shí)現(xiàn)。在現(xiàn)有的基礎(chǔ)上對(duì)一個(gè)類進(jìn)行創(chuàng)建,使其能夠滿足用戶在應(yīng)用內(nèi)進(jìn)行購(gòu)買的需求,在類中要對(duì)SKPaymentTransactionObserver和SKProductsRequestDelegate這兩個(gè)協(xié)議接口進(jìn)行繼承。其中SKPaymentTransactionObserver這個(gè)接口能夠?qū)崿F(xiàn)對(duì)于交易整體過(guò)程的全面監(jiān)測(cè),就算是在交易過(guò)程中因故從應(yīng)用中推測(cè)出仍然能夠繼續(xù)進(jìn)行交易,但是需要回到應(yīng)用頁(yè)面之后才能夠完成最終的交易,類初始化使用如下:假設(shè)已經(jīng)完成了應(yīng)用中所要購(gòu)買的類的編寫工作,接下來(lái)便要進(jìn)行購(gòu)買。首先便是請(qǐng)求商品信息(RequestProducts)。_productRequest=[[SKProductsRequestalloc]initWithProductIdentifiers:_productIdentifiers];_productRequest.delegate=self;[_productRequeststart];上述便是一個(gè)完整的請(qǐng)求,針對(duì)productsIdentifiers來(lái)說(shuō),其是一個(gè)Set,具體指的是在這里進(jìn)行一個(gè)Set的創(chuàng)建,并在其中加入ProductIdentifer即相關(guān)商品的具體信息。請(qǐng)求回調(diào)方法的結(jié)構(gòu)具體如下所示:-(void)productsRequest:(SKProductsRequest*)requestdidReceiveResponse:(SKProductsResponse*)response{NSArray*skProducts=response.products;//process....}-(void)request:(SKRequest*)requestdidFailWithError:(NSError*)error{//process....}在請(qǐng)求成功之后便能夠?qū)ο鄳?yīng)的商品信息進(jìn)行獲取,其主要是一個(gè)NSArray的對(duì)象,其中涉及到SKProduct對(duì)象的相關(guān)產(chǎn)品信息,具體包括產(chǎn)品的價(jià)格以及名稱的等等,從實(shí)際情況來(lái)看,上述內(nèi)容基本上僅會(huì)在顯示信息的過(guò)程中有一定的應(yīng)用價(jià)值,在實(shí)際進(jìn)行購(gòu)買的過(guò)程中并不需要針對(duì)上述參數(shù)采取相應(yīng)的操作措施,只需要對(duì)SKProduct進(jìn)行應(yīng)用便可。在運(yùn)用SKProduct請(qǐng)求購(gòu)買之后,應(yīng)用便能夠同AppStore之間相連接,從交易回調(diào)的實(shí)際情況來(lái)看,其主要涉及到三種狀態(tài)類型,分別為交易成功、交易失敗以及交易恢復(fù)。其中,在交易恢復(fù)這一交易狀態(tài)方面,其主要指的是,若是存在部分用戶運(yùn)用一個(gè)賬號(hào)在iPhone上購(gòu)買產(chǎn)品,然后又于iPad上對(duì)該應(yīng)用進(jìn)行下載,那么該用戶便不再需要對(duì)這一產(chǎn)品進(jìn)行重復(fù)支付購(gòu)買便可以在iPad進(jìn)行應(yīng)用。具體可以利用AppStore以及Restore對(duì)這個(gè)賬號(hào)的購(gòu)買記錄進(jìn)行檢測(cè),若是檢測(cè)過(guò)程中發(fā)現(xiàn)其存在購(gòu)買記錄,那么用戶便不需要對(duì)其進(jìn)行重復(fù)購(gòu)買,直接restoreTransaction[3]。通常情況下來(lái)說(shuō)針對(duì)一次性計(jì)費(fèi)點(diǎn)會(huì)采用NSUserDefaults進(jìn)行記錄,其中SKPaymentQueue的defaultQueue對(duì)象則產(chǎn)生了finishTransaction的方法,在對(duì)該方法進(jìn)行調(diào)用之后,TransactionObserver便不對(duì)這個(gè)交易進(jìn)行監(jiān)測(cè)了。其他狀態(tài)的處理同交易恢復(fù)這一狀態(tài)的處理基本上類似,具體內(nèi)容可以從官方所的開發(fā)文檔中獲取,此處不再過(guò)多解釋。2.3.3微信分享功能設(shè)計(jì)。微信分享功能設(shè)計(jì)是該項(xiàng)目中至關(guān)重要的組成部分,當(dāng)應(yīng)用在微信開發(fā)者平臺(tái)登記完畢之后,應(yīng)當(dāng)對(duì)微信的開發(fā)者SDK進(jìn)行下載,微信SDK文件中主要包含三個(gè)文件,分別包括libWeChatSDK.a、WXApi.h、WXApiObject.h。微信SDK在iOS方面僅提供了支持Objective-C的版本,若想讓它能夠支持Java語(yǔ)言,應(yīng)當(dāng)在現(xiàn)有的基礎(chǔ)上轉(zhuǎn)換代碼,但需要實(shí)現(xiàn)對(duì)Objective-C的項(xiàng)目的各方面實(shí)際情況進(jìn)行了解,并明確如何實(shí)現(xiàn)其同微信平臺(tái)之間的有效對(duì)接。對(duì)Java類接入微信SDK進(jìn)行創(chuàng)建,全面了解微信分享功能的具體內(nèi)容,然后設(shè)計(jì)者則需要用Java對(duì)這些Objective-C類進(jìn)行應(yīng)用。微信分享功能類圖設(shè)計(jì)如圖2所示。Objective-C同Java代碼之間存在著特定的內(nèi)在聯(lián)系,當(dāng)處在要調(diào)用一個(gè)方法的情況下,應(yīng)當(dāng)先對(duì)Java的方法進(jìn)行調(diào)用,該Java方法被聲明為native方法,與此同時(shí)其需要采用@Method對(duì)其進(jìn)行修飾,這樣便能夠同Objective-C靜態(tài)庫(kù)中所存在的相關(guān)方法進(jìn)行準(zhǔn)確對(duì)應(yīng),此舉可以在Java的應(yīng)用過(guò)程中實(shí)現(xiàn)對(duì)Objective-C靜態(tài)庫(kù)中方法的調(diào)用。針對(duì)WXMediaMessage中所存在的Objective-C屬性來(lái)說(shuō),其主要是由@property進(jìn)行修飾的,但從實(shí)際情況來(lái)看,Java中并不存在這一關(guān)鍵字[4]。自從Objective-C2.0之后,便能夠?qū)ο鄳?yīng)的設(shè)值方法以及取值方法進(jìn)行自動(dòng)生成,其統(tǒng)一可以稱之為存取方法。運(yùn)用@property指令在接口部分進(jìn)行屬性的表示,這些屬性的命名基本上同實(shí)例變量相一致。以WXMediaMessage類中的title屬性為例,若是對(duì)@property指令進(jìn)行應(yīng)用,便可以選擇性的聲明相應(yīng)的實(shí)例變量,具體可以按照編譯器中的提示進(jìn)行操作。若是采用@property對(duì)一個(gè)名為title的屬性進(jìn)行聲明,那么編譯器便能夠?qū)?shí)例變量_title、取方法title以及存方法setTitle進(jìn)行自動(dòng)生成,充分了解@property屬性的相關(guān)特點(diǎn)之后能夠發(fā)現(xiàn)針對(duì)Java代碼,其本質(zhì)上指的是,實(shí)現(xiàn)由Objective-C的一行屬性聲明向一個(gè)取方法以及一個(gè)存方法的轉(zhuǎn)變。因?yàn)樯鲜龇椒ㄔ诰幾g器進(jìn)行編譯的過(guò)程中將會(huì)自動(dòng)生成,所以在Java中應(yīng)當(dāng)采用手段的方式將這兩個(gè)方法加入其中,這樣一來(lái)便能夠有效保障Java代碼的正確性,進(jìn)而更加科學(xué)合理地實(shí)現(xiàn)對(duì)于Objective-C屬性的操縱。例如可以采用下述方式,表示title屬性:@Property(selector=”title”)publicnativeStringtitle();@Property(selector=”setTitle”:)publicnativevoidsetTitle(Stringtitle);

3結(jié)論

靈活應(yīng)用Java程序設(shè)計(jì)語(yǔ)言,能夠有效提升軟件開發(fā)的質(zhì)量和效果,對(duì)于未來(lái)我國(guó)各個(gè)行業(yè)的現(xiàn)代化都起到了積極的促進(jìn)作用。因此,相關(guān)人員應(yīng)當(dāng)加強(qiáng)對(duì)其的重視,進(jìn)而為軟件開發(fā)實(shí)效性的提升奠定堅(jiān)實(shí)的基礎(chǔ)。

參考文獻(xiàn)

[1]官亞芬.計(jì)算機(jī)軟件開發(fā)中JAVA編程語(yǔ)言及其實(shí)際應(yīng)用[J].中國(guó)新通信,2020,22(4):98-99.

[2]鄒青松.計(jì)算機(jī)軟件Java編程特點(diǎn)及其技術(shù)運(yùn)用[J].黑龍江科學(xué),2020,11(6):62-63.

[3]孫玲玲.JAVA編程語(yǔ)言在計(jì)算機(jī)軟件開發(fā)中的應(yīng)用研究[J].百科論壇電子雜志,2020(8):59-60.

[4]任浩然,劉丹.計(jì)算機(jī)軟件開發(fā)中Java編程語(yǔ)言的運(yùn)用研究[J].信息記錄材料,2021,22(4):134-135.

作者:朱姝 單位:江蘇聯(lián)合職業(yè)技術(shù)學(xué)院徐州經(jīng)貿(mào)分院

免责声明

本站为第三方开放式学习交流平台,所有内容均为用户上传,仅供参考,不代表本站立场。若内容不实请联系在线客服删除,服务时间:8:00~21:00。

AI写作,高效原创

在线指导,快速准确,满意为止

立即体验
文秘服务 AI帮写作 润色服务 论文发表