《Java高級(jí)程序設(shè)計(jì)》課件-學(xué)習(xí)情境1 Java編碼規(guī)范_第1頁
《Java高級(jí)程序設(shè)計(jì)》課件-學(xué)習(xí)情境1 Java編碼規(guī)范_第2頁
《Java高級(jí)程序設(shè)計(jì)》課件-學(xué)習(xí)情境1 Java編碼規(guī)范_第3頁
《Java高級(jí)程序設(shè)計(jì)》課件-學(xué)習(xí)情境1 Java編碼規(guī)范_第4頁
《Java高級(jí)程序設(shè)計(jì)》課件-學(xué)習(xí)情境1 Java編碼規(guī)范_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Java編碼規(guī)范一、應(yīng)用場(chǎng)景二、Java源文件組織規(guī)范三、Java類和接口聲明規(guī)范四、注釋規(guī)范五、命名規(guī)范六、排版規(guī)范本學(xué)習(xí)情境主要內(nèi)容編碼規(guī)范是程序編碼所要遵循的規(guī)則,保證代碼的正確性、穩(wěn)定性、可讀性。規(guī)范編碼有以下作用:規(guī)范的代碼可以促進(jìn)團(tuán)隊(duì)合作規(guī)范的代碼可以減少bug處理規(guī)范的代碼可以降低維護(hù)成本規(guī)范的代碼有助于代碼審查養(yǎng)成代碼規(guī)范的習(xí)慣,有助于程序員自身的成長3一、應(yīng)用場(chǎng)景Java編碼規(guī)范大體上包括:Java源文件組織規(guī)范Java類和接口聲明規(guī)范注釋規(guī)范命名規(guī)范排版規(guī)范

等等。好的編碼規(guī)范是一個(gè)程序員的基本修煉,好的編碼規(guī)范更能體現(xiàn)一個(gè)程序員的邏輯思維。二、Java源文件組織規(guī)范Java源文件由以下4部分組成并必須按順序進(jìn)行組織。文件注釋包引入語句類和接口聲明Java源文件就是存放Java源代碼的文件。一個(gè)Java源文件都包含一個(gè)單一的公共類或接口。樣例三、Java類和接口聲明規(guī)范通常情況下建議類和接口的成員按如下結(jié)構(gòu)和順序進(jìn)行組織序號(hào)類/接口聲明的各部分說明(1)類/接口文檔注釋(/**……*/)該注釋中所需包含的信息。(2)類或接口的聲明類頭(3)類/接口實(shí)現(xiàn)的注釋(/*……*/)//如果有必要的話該注釋應(yīng)包含任何有關(guān)整個(gè)類或接口的信息,而這些信息又不適合作為類/接口文檔注釋。(4)常量公共的、靜態(tài)的、不可改變的,必須初始值(一旦賦值,不可改變)。(5)類的靜態(tài)成員變量首先是類的公共變量,隨后是保護(hù)變量,再后是包一級(jí)別的變量(沒有訪問修飾符),最后是私有變量。(6)成員變量首先是公共級(jí)別的,隨后是保護(hù)級(jí)別的,再后是包一級(jí)別的(沒有訪問修飾符),最后是私有級(jí)別的。(7)構(gòu)造函數(shù)應(yīng)該用遞增的方式寫(比如:參數(shù)多的寫在后面)(8)成員方法這些方法應(yīng)該按功能,而非作用域或訪問權(quán)限,分組。例如,一個(gè)私有的類方法可以置于兩個(gè)公有的實(shí)例方法之間。其目的是為了更便于閱讀和理解代碼。樣例四、注釋規(guī)范1.注釋的類型

代碼注釋單行注釋“//”和多行注釋“/*……*/”

文檔注釋包括源文件注釋、類注釋、接口注釋、方法注釋等,形式“/**……*/”2.代碼注釋規(guī)范在對(duì)變量的定義和分支語句(條件分支、循環(huán)語句等)以及在有處理邏輯的代碼中必須編寫代碼注釋。變量說明//變量說明代碼塊注釋/**<注釋內(nèi)容>*/3.文檔注釋規(guī)范(1)文檔注釋作用在源文件、類和接口、方法等上面。(2)文檔注釋格式/****……*/在Java源代碼頭部設(shè)有注釋,其中包含一些版權(quán)聲明等信息模板源文件注釋規(guī)范/***@Title:${file_name}*@Package${package_name}*@Description:${todo}(用一句話描述該文件做什么)*Copyright(c)2020-2023*******

*@author*@date${date}${time}*@versionV1.0*/樣例類和接口注釋規(guī)范類注釋用于說明整個(gè)類的功能、特性等,它應(yīng)該放在所有的“import”語句之后,在class定義之前。這個(gè)規(guī)則也適用于接口(interface)注釋。模板:/***@ClassName:${type_name}*@Description:${todo}(這里用一句話描述這個(gè)類的作用)*@author*@date${date}${time}**${tags}樣例描述部分說明該類或者接口的功能、作用、使用方法和注意事項(xiàng),每次修改后增加作者和更新版本號(hào)和日期。方法注釋規(guī)范模板:方法注釋用來說明方法的定義,比如,方法的參數(shù)、返回值及說明方法的作用等。方法注釋應(yīng)該放在它所描述的方法定義前面。/***@Title:${enclosing_method}*@Description:${todo}(這里用一句話描述這個(gè)方法的作用)*@param${tags}參數(shù)說明*@return${return_type}返回類型*@throws*/樣例五、命名規(guī)范類和接口名命名規(guī)范方法名命名規(guī)范常量名命名規(guī)范變量名命名規(guī)范Java命名規(guī)范包括:所有命名規(guī)則必須遵循“標(biāo)識(shí)符”命名規(guī)則:名稱只能由字母、數(shù)字、下劃線、$符號(hào)組成.不能以數(shù)字開頭.名稱不能使用Java中的關(guān)鍵字.堅(jiān)決不允許出現(xiàn)中文及拼音命名.除了遵循“標(biāo)識(shí)符”命名規(guī)則外還有自己的命名規(guī)范

包名采用反域名命名規(guī)則,全部使用小寫字母。一級(jí)包名為com,二級(jí)包名公司名,三級(jí)包名項(xiàng)目名,四級(jí)包名模塊名或?qū)蛹?jí)名,根據(jù)實(shí)際情況也是可以用五級(jí)包名,六級(jí)包名。形式為:com.公司名.項(xiàng)目名.模塊名.*.*

樣例:com.sun.swt..包的路徑符合所開發(fā)的系統(tǒng)模塊的定義,以便通過包名可得知其屬于哪個(gè)模塊,從而方便到對(duì)應(yīng)包里找相應(yīng)的實(shí)現(xiàn)類.1.包名命名規(guī)范使用意義完整的英文描述,見名知意;使用UpperCamelCase規(guī)則;使用名詞;添加有含義的后綴。2.類名命名規(guī)范如果模塊、接口、類、方法使用了設(shè)計(jì)模式,在命名時(shí)需體現(xiàn)出具體模式,可加上不同的后綴來表達(dá)額外的意思,如Event、Factory、Adapter、Dao、Service等。將設(shè)計(jì)模式體現(xiàn)在名字中,有利于閱讀者快速理解架構(gòu)設(shè)計(jì)理念。后綴名意義舉例Service表明這個(gè)類是個(gè)服務(wù)類,里面包含了給其他類提供業(yè)務(wù)服務(wù)的方法PaymentOrderServiceImpl這個(gè)類是一個(gè)實(shí)現(xiàn)類,而不是接口PaymentOrderServiceImplInter這個(gè)類是一個(gè)接口LifeCycleInterDao這個(gè)類封裝了數(shù)據(jù)訪問方法PaymentOrderDaoAction直接處理頁面請(qǐng)求,管理頁面邏輯了類UpdateOrderListActionListener響應(yīng)某種事件的類PaymentSuccessListenerEvent這個(gè)類代表了某種事件PaymentSuccessEventServlet一個(gè)ServletPaymentCallbackServletFactory生成某種對(duì)象工廠的類PaymentOrderFactoryAdapter用來連接某種以前不被支持的對(duì)象的類DatabaseLogAdapterJob某種按時(shí)間運(yùn)行的任務(wù)PaymentOrderCancelJobWrapper這是一個(gè)包裝類,為了給某個(gè)類提供沒有的能力SelectableOrderListWrapperBean這是一個(gè)POJOMenuStateBean類名命名后綴名含義使用意義完整的英文描述;使用lowerCamelCase規(guī)則;使用“動(dòng)詞+賓語”結(jié)構(gòu)。3.方法名命名規(guī)范動(dòng)詞往往表達(dá)特定的含義,create、delete、add、remove、init等。方法名命名含義前綴名意義舉例create創(chuàng)建createOrder()delete刪除deleteOrder()add創(chuàng)建,暗示新創(chuàng)建的對(duì)象屬于某個(gè)集合addPaidOrder()remove刪除removeOrder()init初始化,暗示會(huì)做些諸如獲取資源等特殊動(dòng)作initializeObjectPooldestroy銷毀,暗示會(huì)做些諸如釋放資源的特殊動(dòng)作destroyObjectPoolopen打開openConnection()close關(guān)閉closeConnection()<read讀取readUserName()write寫入writeUserName()get獲得getName()set設(shè)置setName()prepare準(zhǔn)備prepareOrderList()copy復(fù)制copyCustomerList()modity修改modifyActualTotalAmount()calculate數(shù)值計(jì)算calculateCommission()do執(zhí)行某個(gè)過程或流程doOrderCancelJob()dispatch判斷程序流程轉(zhuǎn)向dispatchUserRequest()start開始startOrderProcessing()stop結(jié)束stopOrderProcessing()send發(fā)送某個(gè)消息或事件sendOrderPaidMessage()receive接受消息或時(shí)間receiveOrderPaidMessgae()respond響應(yīng)用戶動(dòng)作responseOrderListItemClicked()find查找對(duì)象findNewSupplier()update更新對(duì)象updateCommission()必須為大寫單詞、下劃線分隔的命名方式。在常量與變量的命名時(shí),表示類型的名詞放在詞尾,以提升辨識(shí)度。常量一定是staticfinal的字段。例如:staticfinalintNUMBER=5;staticfinalintTERMINATED_THREAD_COUNT=10;4.常量命名規(guī)范變量(包括類變量和實(shí)例成員變量)名必須采用小寫單詞駝峰命名方式(lowerCamelCase)。變量命名通常使用名詞和名詞短語。例如:computedValue、index。5.變量命名規(guī)范六、排版規(guī)范1.程序塊要采用縮進(jìn)風(fēng)格編寫,縮進(jìn)的空格數(shù)為4個(gè),1個(gè)TAB鍵。2.在函數(shù)體的開始、類和接口的定義、以及if、for、do、while、switch、case語句中的程序都要采用如上的縮進(jìn)方式。3.較長的語句、表達(dá)式或參數(shù)(>120字符)要分成多行書寫,在低優(yōu)先級(jí)操作符處劃分新行,操作符放在新行之首。4.if,for,do,while,case,switch,default等語句自占一行,且if,for,do,while等語句的執(zhí)行語句無論多少都要加括號(hào){}。5.分界符(如大括號(hào)‘{’和‘}’)應(yīng)各獨(dú)占一行并且位于同一列,同時(shí)與引用它們的語句左對(duì)齊。6.不允許把多個(gè)短語句寫在一行中,即一行只寫一條語句。7.相對(duì)獨(dú)立的程序塊之間、變量說明之后必須加空行。8.對(duì)齊只使用TAB鍵,不使用空格鍵。9.在兩個(gè)以上的關(guān)鍵字、變量、常量進(jìn)行對(duì)等操作時(shí),它們之間的操作符之前、之后或者前后要加空格。小結(jié)Java源文件組織規(guī)范Java類和接口聲明規(guī)范注釋規(guī)范命名規(guī)范排版規(guī)范說明:進(jìn)一步詳細(xì)閱讀1.《阿里巴巴Java開發(fā)手冊(cè)(華山版).pdf》2.《代碼整潔之道》.(美)馬丁Java編碼規(guī)范的使用實(shí)例一、任務(wù)描述二、任務(wù)分析設(shè)計(jì)三、任務(wù)實(shí)施四、運(yùn)行結(jié)果

本學(xué)習(xí)情境主要內(nèi)容31一、任務(wù)描述應(yīng)用Java編碼規(guī)范編寫程序。某公司分為多個(gè)部門,每個(gè)部門有一個(gè)經(jīng)理和多個(gè)員工,員工的基本信息包括所在部門、職務(wù)、職稱以及工資記錄等。每個(gè)員工根據(jù)職稱發(fā)基本工資。員工的工資按基本工資、日加班工資、日缺勤工資等組成。編寫計(jì)算公司員工月工資的應(yīng)用程序。任務(wù)需求:1.規(guī)范化命名類名、方法名、變量名。2.采用Java源文件結(jié)構(gòu)組織重新排列類結(jié)構(gòu)。3.設(shè)置注釋模板。4.添加注釋。包括文檔注釋和代碼注釋。5.格式化排版。二、任務(wù)分析設(shè)計(jì)問題域中涉及多個(gè)類,員工類Employee,職員類Staffer,經(jīng)理類Manager,Staffer類和Manager類繼承Employee類。Staffer類繼承Employee類,并覆蓋計(jì)算工資的方法。Manager類繼承Employee類,并覆蓋計(jì)算工資的方法。EmployeeTest類為主類,創(chuàng)建Staffer類和Manager類的對(duì)象,調(diào)用其計(jì)算工資的方法并實(shí)現(xiàn)結(jié)果輸出。其類圖關(guān)系如圖1-1所示。三、任務(wù)實(shí)施1.聲明類2.重新排列類成員3.設(shè)置注釋模板4.添加文檔注釋5.重新排版3.1聲明類1.類的命名類名命名規(guī)范

意義完整的英文描述;UpperCamelCase規(guī)則;名詞;添加有含義的后綴。員工類Employee職員類Staffer經(jīng)理類Manager測(cè)試類EmployeeTest2.方法的命名方法名命名規(guī)范意義完整的英文描述;lowerCamelCase規(guī)則;動(dòng)詞+賓語結(jié)構(gòu)。3.成員變量的命名成員變量命名規(guī)范意義完整的英文描述;lowerCamelCase規(guī)則;名詞+名詞短語結(jié)構(gòu)。3.2重新排列類成員publicclass****{常量聲明;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論