AdSense

網頁

2019/5/8

Java 程式的命名慣例(naming convention)

每一種程式語言,都有其慣用的命名方式,又稱命名慣例(naming convention),而Java的命名慣例如下。


所有的名稱都必須以英文字母大小寫(a-z, A-Z),金錢符號($),底線符號(_)開頭,不能以數字或其他特殊符號為開頭。不過$_只能用在由程式產生的程式碼中。

Java關鍵字不能作為命名。

Java是大小寫敏感的(case-sensitive),例如變數name和變數NAME是兩個不同的變數。


介面(Interface)名稱

首字大寫,大駝峰式命名法,名稱應為形容詞或名詞,例如:

public interface Lockable { ... }
public interface Iterable<T> { ... }
public interface List<E> { ... }
public interface Serializable { ...}

類別(Class)名稱

首字大寫,大駝峰式命名法,名稱應為名詞,例如:

public class Car { ... }
public class Ticket { ... }
public class Register { ... }
public class ModuleConfig {...}

方法(Method)名稱

首字小寫,小駝峰式命名法,名稱應為動詞,例如:

public void saveMoney(int money);
public String getCustomerName(int customerId);
private boolean isWakeUp();
public void turnOff();

變數名稱(Variable)

首字小寫,小駝峰式命名法,名稱應為名詞,例如:

String name;
String address;
double amount;

常數名稱(Constant variable)

全部大寫,不同的字間用底線_分隔。名稱應為名詞

private static final int MAX_ROUND = 100;
public static final int DEFAULT_START_VALUE = 10;

Package名稱

全小寫,domain名稱,例如:

com.abc.banana
com.abc.banana.util
com.abc.banana.controller
org.springframework.boot
org.apache.commons

com.abc.demo.helloworld

package名稱若為兩個字時直接全小寫合併,例如hello world在package名稱為helloworld


不過上面所說的命名方式是一種"慣例",也就是說不遵守慣例的話也可以編譯,程式也可以執行,只是你會被其他工程師罵而已。

例如下面用中文來寫Java程式(可正常編譯並執行喔),可讀性好像更高了:p。

public class App {

    public static void main(String[] args) throws Exception {
        String 字串1 = "你好世界";
        System.out.println(字串1);

        使用者 使用者物件1 = new 使用者();
        使用者物件1.設定名稱("王小白");
        使用者物件1.設定地址("台北市中正區重慶南路114號");

        印出文字(使用者物件1);
    }

    public static void 印出文字(使用者 使用者物件) {
        System.out.println(使用者物件);
    }
}

class 使用者 {

    String 名稱;
    String 地址;

    public String 取得名稱() {
        return 名稱;
    }
    public void 設定名稱(String 名稱) {
        this.名稱 = 名稱;
    }
    public String 取得地址() {
        return 地址;
    }
    public void 設定地址(String 地址) {
        this.地址 = 地址;
    }

    @Override
    public String toString() {
        return "名稱 :" + 名稱 + ",地址:" + 地址;
    }

}

參考:

沒有留言:

AdSense