成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java編程規(guī)范(二)

騫諱護(hù) / 1913人閱讀

摘要:二格式規(guī)范在上一篇的編程規(guī)范一中我們講述了在編碼中的一般原則,雖然這些原則并不涉及具體的代碼規(guī)范,但是這些原則卻是我們?cè)陂_(kāi)發(fā)過(guò)程中所應(yīng)該遵循的規(guī)范與思想。不要把多個(gè)語(yǔ)句放在同一行里以免超過(guò)最大可接受寬度。

二、格式規(guī)范

在上一篇的java編程規(guī)范(一)中我們講述了在Java編碼中的一般原則,雖然這些原則并不涉及具體的代碼規(guī)范,但是這些原則卻是我們?cè)贘ava開(kāi)發(fā)過(guò)程中所應(yīng)該遵循的規(guī)范與思想。今天我們將學(xué)習(xí)一些涉及具體代碼書(shū)寫(xiě)的格式規(guī)范。

(一)縮進(jìn)嵌套的代碼

為了增強(qiáng)代碼的可讀性,我們常常把一些多帶帶的語(yǔ)句組織成語(yǔ)句塊,并對(duì)各塊統(tǒng)一縮進(jìn)使之與周圍代碼分開(kāi)。

1、如果我們使用開(kāi)發(fā)環(huán)境,則我們可以使用開(kāi)發(fā)環(huán)境提供的縮進(jìn)樣式。但是如果我們是手寫(xiě)代碼,應(yīng)該使用兩個(gè)空格縮進(jìn)。

class MyFuction {
··void function(int arg) {
····if (arg < 0) {
······for (int i = 0; i <= arg; i++) {
········//  ...
······}
····}
··}
}

2、塊語(yǔ)句起始端的大括號(hào)應(yīng)該放在引入塊語(yǔ)句那一行的最后,結(jié)束端的大括號(hào)要獨(dú)占一行,并且與引入嵌套語(yǔ)句那一行的第一個(gè)字母對(duì)齊。我們?nèi)粘J褂玫拇a規(guī)范如下:
類定義:

public class MyClass {
  ···
}

內(nèi)部類定義:

public class OuterClass {
  ···
  class InnerClass {
    ...
  }
}

方法定義:

void method(int j) {
  ···
}

for循環(huán)語(yǔ)句:

for (int i = 0; i <= j; i++) {
  ···
}

if-else語(yǔ)句:

if (j < 0) {
  ···
}
else if ( j > 0) {
  ···
}
else {
  ···
}

try,catch,finally塊:

try {
  ···
}
catch {
  ···
}
finally {
  ···
}

switch語(yǔ)句:

switch (value) {
  case 0:
    ···
    break;
  default:
    ···
    break;
}

while語(yǔ)句:

while (a < b) {
  ···
}

do-while語(yǔ)句:

do {
  ···
} while (a < b);

為了提高一個(gè)團(tuán)隊(duì)的工作效率,不要讓每個(gè)組員任意選擇各自代碼里的縮進(jìn)量及樣式,應(yīng)該制定統(tǒng)一的一套標(biāo)準(zhǔn)的縮進(jìn)規(guī)則,并且確保團(tuán)隊(duì)里的每個(gè)人都遵循這個(gè)標(biāo)準(zhǔn)。

(二)斷開(kāi)長(zhǎng)句

盡管在窗口化的現(xiàn)代編輯器中,可以利用橫向滾動(dòng)條來(lái)閱讀很長(zhǎng)的單行代碼。但是打印機(jī)對(duì)于超過(guò)它最大打印寬度的語(yǔ)句,就會(huì)把它們截?cái)?、換行或者打印在不同的頁(yè)上。因此,要把每行代碼的長(zhǎng)度限制在打印環(huán)境所支持的最大寬度之內(nèi),這個(gè)值一般是80或者132個(gè)字符。

1、不要把多個(gè)語(yǔ)句放在同一行里以免超過(guò)最大可接受寬度。應(yīng)該一條語(yǔ)句放置在一行里。

//  這樣寫(xiě)太長(zhǎng)
double x = Math.random(); double y = Math.random();

//  應(yīng)該一句占一行
double x = Math.random();
double y = Math.random();

2、如果一行代碼中包含了復(fù)雜的表達(dá)式,就應(yīng)該把它拆分為幾個(gè)短小的子表達(dá)式,每個(gè)子表達(dá)式的運(yùn)算結(jié)果存儲(chǔ)在一個(gè)臨時(shí)變量里,并且多帶帶放置在一行。

//  這樣的表達(dá)式太長(zhǎng)
double length = Math.sqrt(Math.pow(Math.random(),2.0),Math.pow(Math.random(),2.0));

//  應(yīng)該按下面這樣拆分
double x = Math.pow(Math.random(),2.0);
double y = Math.pow(Math.random(),2.0);
double length = Math.sqrt(x + y);
(三) 使用空白

空白就是頁(yè)面上沒(méi)有可見(jiàn)字符的區(qū)域。代碼里如果空白太少就會(huì)不易閱讀和理解,所以應(yīng)該使用足夠多的空白把方法、注釋、代碼塊和表達(dá)式展示清楚。

1、以下情況使用單空白來(lái)分隔:
(1) 右括號(hào)")"或者緊隨其后的關(guān)鍵字;關(guān)鍵字和緊隨其后的左括號(hào)"("或者"{";右括號(hào)")"和緊隨其后的左括號(hào)"{";其實(shí)細(xì)心的讀者會(huì)發(fā)現(xiàn)在上述內(nèi)容的介紹中已經(jīng)應(yīng)用了這些規(guī)范,在此就不贅述了。

if (j < 0) {
  ···
}
else if ( j > 0) {
  ···
}
else {
  ···
}

(2) 除了"."之外的運(yùn)算符與其前后的表達(dá)式之間。

double length = Math.sqrt(x * x + y * y);
double x = length > 0.0 ? (x / length) : x;

2、以下情況應(yīng)該使用空行來(lái)分隔:
(1) 每個(gè)邏輯上獨(dú)立的方法實(shí)現(xiàn)之間

void handleInfo(Message message) {

  DataInput content = message.getDataInput();
  int messageType = content.readInt();
  
  switch (messageType) {
    
    case warning:
      ...
      break;
      
    case error:
      ...
      break;
      
      default:
        ...
        break;
  }
}

(2) 定義類或者接口時(shí),每個(gè)成員之間使用空行

public class Car {
  
  class InnerCar {
    ...
  }
  
   private Bar bar;
   
   Foo(Bar bar) {
     this.bar = bar;
   }
}

(3) 源文件中,每個(gè)類和接口的定義之間要使用空行

interface Paly {
  ...
}
  
public class Person implements Play{
  ...
}
(四)不要直接使用Tab控制符

不同的環(huán)境對(duì)Tab控制符的解釋也是不同的,代碼的格式在原來(lái)的編輯環(huán)境下可能正確無(wú)誤,但是如果放到另一個(gè)對(duì)Tab控制符有不同解釋的系統(tǒng)中,可能格式混亂、無(wú)法閱讀。

為了避免出現(xiàn)以上的情況,我們應(yīng)該使用空格來(lái)縮進(jìn)代碼。在一個(gè)團(tuán)隊(duì)中,應(yīng)該設(shè)置團(tuán)隊(duì)通用的縮進(jìn)標(biāo)準(zhǔn),并且團(tuán)隊(duì)里的所有人都嚴(yán)格遵守這個(gè)標(biāo)準(zhǔn)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/66685.html

相關(guān)文章

  • Java編程風(fēng)格學(xué)習(xí)(三)

    摘要:在上一篇的編程風(fēng)格學(xué)習(xí)二中我們學(xué)習(xí)了一些在編碼過(guò)程中的格式規(guī)范,遵循這些規(guī)范毋庸置疑是我們的書(shū)寫(xiě)高質(zhì)量代碼的前提與基礎(chǔ)。二語(yǔ)言編程規(guī)范常量命名常量的每個(gè)單詞均大寫(xiě),單詞之間使用下劃線連接。方法表示動(dòng)作,采用動(dòng)詞命名。 在上一篇的java編程風(fēng)格學(xué)習(xí)(二)中我們學(xué)習(xí)了一些在Java編碼過(guò)程中的格式規(guī)范,遵循這些規(guī)范毋庸置疑是我們的書(shū)寫(xiě)高質(zhì)量代碼的前提與基礎(chǔ)。今天我們更進(jìn)一步,一起來(lái)學(xué)習(xí)J...

    CoderDock 評(píng)論0 收藏0
  • Java編程規(guī)范(一)

    摘要:最近在看一本有關(guān)編程規(guī)范的書(shū),書(shū)中精煉闡述了使用語(yǔ)言時(shí)應(yīng)該遵循的一些原則。所以擁有良好一致的編程規(guī)范對(duì)于一個(gè)團(tuán)隊(duì)至關(guān)重要。二堅(jiān)持最小驚奇原則在編碼過(guò)程中盡量避免可能讓軟件用戶感到意外的做法。 最近在看一本有關(guān)Java編程規(guī)范的書(shū),書(shū)中精煉闡述了使用java語(yǔ)言時(shí)應(yīng)該遵循的一些原則。接下來(lái)的一段時(shí)間我將在這里總結(jié)我的學(xué)習(xí)內(nèi)容,也希望這一系列文章能夠?qū)τ行枰娜擞兴鶐椭?不考慮任何編碼規(guī)...

    Godtoy 評(píng)論0 收藏0
  • 樂(lè)字節(jié)Java變量與數(shù)據(jù)結(jié)構(gòu)之一:Java編程規(guī)范、關(guān)鍵字和標(biāo)識(shí)符

    摘要:大家好,我是樂(lè)字節(jié)的小樂(lè),這次要給大家?guī)?lái)的是變量與數(shù)據(jù)類型。本文是第一集編程規(guī)范,關(guān)鍵字與標(biāo)識(shí)符。后面我們要寫(xiě)一個(gè)程序的過(guò)程。需求分析實(shí)現(xiàn)代碼體現(xiàn)注釋的作用解釋說(shuō)明程序,提高了代碼的閱讀性??梢詭椭覀冋{(diào)試程序。 大家好,我是樂(lè)字節(jié)的小樂(lè),這次要給大家?guī)?lái)的是Java變量與數(shù)據(jù)類型。本文是第一集:Java編程規(guī)范,關(guān)鍵字與標(biāo)識(shí)符。showImg(https://segmentfaul...

    qianfeng 評(píng)論0 收藏0
  • Spring Boot 2 快速教程:WebFlux 快速入門(mén)(

    摘要:響應(yīng)式編程是基于異步和事件驅(qū)動(dòng)的非阻塞程序,只是垂直通過(guò)在內(nèi)啟動(dòng)少量線程擴(kuò)展,而不是水平通過(guò)集群擴(kuò)展。三特性常用的生產(chǎn)的特性如下響應(yīng)式編程模型適用性內(nèi)嵌容器組件還有對(duì)日志消息測(cè)試及擴(kuò)展等支持。 摘要: 原創(chuàng)出處 https://www.bysocket.com 「公眾號(hào):泥瓦匠BYSocket 」歡迎關(guān)注和轉(zhuǎn)載,保留摘要,謝謝! 02:WebFlux 快速入門(mén)實(shí)踐 文章工程: JDK...

    gaara 評(píng)論0 收藏0
  • 自己整理的java編程規(guī)范

    摘要:努力避免硬編碼。一個(gè)類的總體行數(shù)盡量控制在行左右不超過(guò)一千行。函數(shù)注釋函數(shù)注釋采用,在每個(gè)函數(shù)或者過(guò)程的前面要有必要的注釋信息,包括函數(shù)或過(guò)程名稱功能描述輸入輸出及返回值說(shuō)明調(diào)用關(guān)系及被調(diào)用關(guān)系說(shuō)明等。 前言 推薦Google的Java編碼規(guī)范英文版: http://google-styleguide.googlecode.com/svn/trunk/javaguide.html 雖然...

    yedf 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<