程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> JAVA編程規范

JAVA編程規范

編輯:JAVA編程入門知識

       命名規范

定義這個規范的目的是讓項目中所有的文檔都看起來像一個人寫的,增加可讀性,減少項目組中因為換人而帶來的損失。(這些規范並不是一定要絕對遵守,但是一定要讓程序有良好的可讀性)

Package 的命名

Package 的名字應該都是由一個小寫單詞組成。

Class 的命名

Class 的名字必須由大寫字母開頭而其他字母都小寫的單詞組成

Class 變量的命名

變量的名字必須用一個小寫字母開頭。後面的單詞用大寫字母開頭。

Static Final 變量的命名

Static Final 變量的名字應該都大寫,並且指出完整含義。

參數的命名

參數的名字必須和變量的命名規范一致。

數組的命名

數組應該總是用下面的方式來命名:

byte[] buffer; 而不是:byte buffer[];

方法的參數

使用有意義的參數命名,假如可能的話,使用和要賦值的字段一樣的名字:

SetCounter(int size){

this.size = size;

}

Java 文件樣式

所有的 Java(*.java) 文件都必須遵守如下的樣式規則

版權信息

版權信息必須在 java 文件的開頭,比如:

/**

* Copyright ® 2000 Shanghai XXX Co. Ltd.

* All right reserved.

*/

其他不需要出現在 javadoc 的信息也可以包含在這裡。

Package/Imports

package 行要在 import 行之前,import 中標准的包名要在本地的包名之前,而且按照字母順序排列。假如 import 行中包含了同一個包中的不同子目錄,則應該用 * 來處理。

package hotlava.net.stats;

import java.io.*;

import java.util.Observable;

import hotlava.util.Application;

這裡 java.io.* 使用來代替InputStream and OutputStream 的。

Class

接下來的是類的注釋,一般是用來解釋類的。

/**

* A class representing a set of packet and byte counters

* It is observable to allow it to be watched, but only

* reports changes when the current set is complete

*/

接下來是類定義,包含了在不同的行的 extends 和 implements

public class CounterSet

extends Observable

implements Cloneable

Class Fields

接下來是類的成員變量:

/**

* Packet counters

*/

protected int[] packets;

public 的成員變量必須生成文檔(JavaDoc)。proceted、private和 package 定義的成員變量假如名字含義明確的話,可以沒有注釋。

存取方法

接下來是類變量的存取的方法。它只是簡單的用來將類的變量賦值獲取值的話,可以簡單的寫在一行上。

/**

* Get the counters

* @return an array containing the statistical data. This array has been

* freshly allocated and can be modified by the caller.

*/

public int[] getPackets() { return copyArray(packets, offset); }

public int[] getBytes() { return copyArray(bytes, offset); }

public int[] getPackets() { return packets; }

public void setPackets(int[] packets) { this.packets = packets; }

其它的方法不要寫在一行上

構造函數

接下來是構造函數,它應該用遞增的方式寫(比如:參數多的寫在後面)。

訪問類型 ("public", "private" 等.) 和 任何 "static", "final" 或 "synchronized" 應該在一行中,並且方法和參數另寫一行,這樣可以使方法和參數更易讀。

public

CounterSet(int size){

this.size = size;

}

克隆方法

假如這個類是可以被克隆的,那麼下一步就是 clone 方法:

public

Object clone() {

try {

CounterSet obj = (CounterSet)super.clone();

obj.packets = (int[])packets.clone();

obj.size = size;

return obj;

}catch(CloneNotSupportedException e) {

throw new InternalError("UneXPected CloneNotSUpportedException: " + e.getMessage());

}

}

類方法

下面開始寫類的方法:

/**

* Set the packet counters

* (sUCh as when restoring from a database)

*/

protected final

void setArray(int[] r1, int[] r2, int[] r3, int[] r4)

throws IllegalArgumentException

{

//

// Ensure the arrays are of equal size

//

if (r1.length != r2.length r1.length != r3.length r1.length != r4.length)

throw new IllegalArgumentException("Arrays must be of the same size");

System.arraycopy(r1, 0, r3, 0, r1.length);

System.arraycopy(r2, 0, r4, 0, r1.length);

}

toString 方法

無論如何,每一個類都應該定義 toString 方法:

public

String toString() {

String retval = "CounterSet: ";

for (int i = 0; i < data.length(); i++) {

retval += data.bytes.toString();

retval += data.packets.toString();

}

return retval;

}

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved