c02章.s03節(jié).標(biāo)識(shí)符和編程規(guī)范

標(biāo)識(shí)符和編程規(guī)范

[toc]

一. Java 標(biāo)識(shí)符

Java 所有的組成部分都需要名字才顿。類名逝变、變量名以及方法名都被稱為標(biāo)識(shí)符嗤瞎。

關(guān)于 Java 標(biāo)識(shí)符欧引,有以下幾點(diǎn)需要注意:

  • 所有的標(biāo)識(shí)符都應(yīng)該以字母(A-Z 或者 a-z),美元符($)、或者下劃線(_)開始
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)倔韭、下劃線(_)或數(shù)字的任何字符組合
  • 關(guān)鍵字不能用作標(biāo)識(shí)符. (關(guān)鍵字就是Java有特定意義的名字术浪,下面會(huì)列出。)
  • 標(biāo)識(shí)符是大小寫敏感的狐肢,這就意味著標(biāo)識(shí)符 Hello 與 hello 是不同的添吗。
  • 合法標(biāo)識(shí)符舉例:age、$salary份名、_value碟联、__1_value、sayHelloWorld僵腺、SayHello
  • 非法標(biāo)識(shí)符舉例:123abc鲤孵、-salary

說明,一般命名使用大小寫的字母就可以了辰如。偶爾會(huì)用到數(shù)字作為結(jié)尾普监。

二. 命名規(guī)則

首先要求程序中的各個(gè)要素都遵守命名規(guī)則,然后在編碼中嚴(yán)格按照編碼格式編寫代碼琉兜。命名規(guī)則包括以下幾點(diǎn)凯正。

2.1 包(package)的命名規(guī)則

包(package)的名稱由一個(gè)小寫字母序列組成。比如常見的方式:groupId + artifactId+ functionName

groupId: 一般比如機(jī)構(gòu) org.apache , org.springframework豌蟋, 或者公司 com.microsoft.

artifactId: 就是項(xiàng)目的名字廊散,可以一層到兩層。開源的機(jī)構(gòu)有很多項(xiàng)目梧疲,一般一個(gè)項(xiàng)目就有一個(gè)名字允睹,同時(shí)作為包名。

比如 org.springframework.boot

functionName: 比如名字是controller(控制器)幌氮,還是repository(數(shù)據(jù)層)缭受,這些后面代碼看看就明白了。

說明:本項(xiàng)目的報(bào)名采用了漢字方式该互,這是不得已米者,為了方便大家閱讀學(xué)習(xí)。實(shí)際項(xiàng)目中必須使用小寫字母慢洋。

2.2 類(class)的命名規(guī)則

類(class)的名稱最好由大寫字母開頭塘雳,其他字母都由小寫的單詞組成。如果類名由若干單詞組成普筹,那么每個(gè)單詞的首字母應(yīng)該大寫掌唾,例如 MyEasyJavaBook 牧愁。

注意:源文件名必須和類名相同乔妈。文件名的后綴為 .java魔策。(如果文件名和類名不相同則會(huì)導(dǎo)致編譯錯(cuò)誤)酸员。源文件就是新建的類文件,新建好后讳嘱,手工修改類名與文件名不一致幔嗦,是錯(cuò)誤的。

2.3 方法的命名規(guī)則

所有的方法名都應(yīng)該以小寫字母開頭沥潭。如果方法名含有若干單詞邀泉,則后面的每個(gè)單詞首字母大寫。

2.4 變量的命名規(guī)則

所有的變量名都應(yīng)該以小寫字母開頭钝鸽。如果方法名含有若干單詞汇恤,則后面的每個(gè)單詞首字母大寫。

類的實(shí)例的名稱變量拔恰,一般與類名相同因谎,首字母改為小寫。

2.5 常量的命名規(guī)則

常量的名稱都大寫颜懊,并且指出完整含義财岔,讓人一眼看明白這個(gè)變量的意思最好。常量后面會(huì)講河爹。

2.6 參數(shù)的命名規(guī)則

所有的參數(shù)都應(yīng)該以小寫字母開頭匠璧。如果方法名含有若干單詞,則后面的每個(gè)單詞首字母大寫咸这。參數(shù)后面會(huì)講患朱。

2.7 數(shù)組的命名規(guī)則

數(shù)組的命名使用“類型[] 數(shù)組名”的形式,以小寫字母開頭炊苫。數(shù)組后面會(huì)講。

所有的 Java 程序由 public static void main(String[] args) 方法開始執(zhí)行冰沙。main方法中的參數(shù)形式就是一個(gè)字符串?dāng)?shù)組侨艾。

以下NameRules為命名規(guī)則示例:

import a01.Java語言核心技術(shù).c02.基礎(chǔ)概念和語法.s02.第一個(gè)類和對象.Book;

import java.time.LocalDateTime;
import java.util.Date;

public class NameRules { //類的命名,大寫字母開頭拓挥,多個(gè)字母唠梨,后面的字母同樣大寫字母開頭。
    final static double CIRCLE_PI = 3.1415926; //定義了一個(gè)常量侥啤,圓周率当叭。常量的命名都是大寫字母,表明含義盖灸。
    String variableDefinitionWay; //變量的命名規(guī)則蚁鳖。以小寫字母開頭。

    //方法的命名規(guī)則赁炎, 以及參數(shù)的命名規(guī)則醉箕。
    public void functionDefinitionWay(String argDefinitionWay) {
        System.out.println("方法以小寫字母開頭。");
        System.out.println("參數(shù)以小寫字母開頭。");
    }

    public static void main(String[] args) {
        System.out.println("測試import讥裤,當(dāng)前時(shí)間:" + new Date());
        System.out.println("測試import放棒,當(dāng)前時(shí)間(新方式):" + LocalDateTime.now());
        Book bookHongLouMeng = new Book();//有時(shí)候變量名,實(shí)例名命名按照需要己英,定義的有意義间螟,而不需要額外注釋。
        System.out.println("測試import损肛,打印當(dāng)前對象的內(nèi)存地址:" + bookHongLouMeng);
    }
}

三 編碼格式

編碼格式規(guī)定如下:

  • 程序最開始編寫導(dǎo)入包和類語句厢破,即 import 語句。import 語句可以有多行荧关,編寫完 import 語句后空一行溉奕。
  • 定義 public 類,頂格書寫忍啤。類的主體左括號(hào)“{”不換行書寫加勤,右括號(hào)“}”頂格書寫。
  • 定義 public 類中的變量同波,縮進(jìn)書寫鳄梅。
  • 定義方法用縮進(jìn)書寫,方法的左括號(hào)“{”不換行書寫未檩,右括號(hào)“}”和方法首行第一個(gè)字符對齊戴尸。方法體要再次縮進(jìn)書寫,最后一個(gè)變量定義和第一個(gè)方法定義之間冤狡、方法和方法之間最好空一行孙蒙。

提示:在單一的語句后有“;”,在一對括號(hào)“{}“之外無“;”悲雳。方法調(diào)用名和緊跟在其后的左括號(hào)“(”無空格挎峦,該左括號(hào)和其后的標(biāo)識(shí)符之間無空格。多個(gè)參數(shù)之間的逗號(hào)和前一個(gè)參數(shù)緊靠合瓢,與后一個(gè)參數(shù)空一格坦胶。

編程規(guī)范是對編程的一種約定,主要作用是增強(qiáng)代碼的可讀性和可維護(hù)性晴楔,便于代碼重用顿苇。

一般在手工敲代碼的時(shí)候,就有意識(shí)的編寫税弃,即使沒用Reformat Code功能纪岁,代碼也基本保持良好風(fēng)格。

繼續(xù)下面內(nèi)容將提供示例講解格式規(guī)范钙皮。

四 代碼美化

當(dāng)代碼有點(diǎn)雜亂時(shí)蜂科,需要美化顽决。可以直接使用開發(fā)工具的 《Code》菜單 导匣,《Reformat Code》 功能 才菠。默認(rèn)快捷鍵: Ctrl+Alt+L

以下CodingSpecification代碼需要美化,配合標(biāo)題五撤銷和重做的快捷方式贡定,快速查看掌握編碼格式的要點(diǎn):


import a01.Java語言核心技術(shù).c02.基礎(chǔ)概念和語法.s02.第一個(gè)類和對象.Book;

public class CodingSpecification{
        String variable;//注意觀察赋访,變量的格式與空格。

    public void add(int a,int b){
        System.out.println("注意觀察缓待,參數(shù)的格式與空格蚓耽。");
    }

    public static void main(String[] args){
        System.out.println("使用開發(fā)工具的格式化代碼功能,菜單Code-->Reformat Code功能旋炒〔接疲快捷鍵Ctrl+Alt+L");
        System.out.println("注意觀察,變量的格式與空格瘫镇。");
            Book book1=new Book();
        System.out.println("保持一個(gè)屏幕的合適的寬度--------------------" +
                "保持一個(gè)屏幕的合適的寬度--------------------" +
                "保持一個(gè)屏幕的合適的寬度--------------------");
    }
}

五 撤銷和重做

在IDEA開發(fā)工具的《Edit》菜單鼎兽,有一個(gè)Undo xxx 和 Redo xxx功能。作用就是撤銷剛剛的一個(gè)操作铣除。重做剛剛的操作谚咬。不同的操作,xxx代表那個(gè)操作名字尚粘。

快捷方式分別是 :

Undo撤銷:Ctrl+Z

Redo重做:Ctrl + Shift + Z

配合剛剛的格式化工具择卦,來回切換查看變化內(nèi)容。

部分快捷鍵可能和系統(tǒng)里的其它軟件的快捷鍵沖突郎嫁,關(guān)閉其它軟件即可秉继。

六 Java 關(guān)鍵字

下面列出了 Java 關(guān)鍵字。這些保留字不能用于常量泽铛、變量秕噪、和任何標(biāo)識(shí)符的名稱。保留字有個(gè)大概印象厚宰。后面慢慢學(xué)。

關(guān)鍵字(或者保留字)是對編譯器有特殊意義的固定單詞遂填,不能在程序中做其他目的使用铲觉。關(guān)鍵字具有專門的意義和用途,和自定義的標(biāo)識(shí)符不同吓坚,不能當(dāng)作一般的標(biāo)識(shí)符來使用撵幽。

在開發(fā)工具中,當(dāng)你命名時(shí)使用了關(guān)鍵字礁击,會(huì)有紅色的報(bào)錯(cuò)盐杂。

類別 關(guān)鍵字 說明
訪問控制 private 私有的
protected 受保護(hù)的
public 公共的
default 默認(rèn)
類逗载、方法和變量修飾符 abstract 聲明抽象
class
extends 擴(kuò)充,繼承
final 最終值,不可改變的
implements 實(shí)現(xiàn)(接口)
interface 接口
native 本地,原生方法(非 Java 實(shí)現(xiàn))
new 新,創(chuàng)建
static 靜態(tài)
strictfp 嚴(yán)格,精準(zhǔn)
synchronized 線程,同步
transient 短暫
volatile 易失
程序控制語句 break 跳出循環(huán)
case 定義一個(gè)值以供 switch 選擇
continue 繼續(xù)
default 默認(rèn)
do 運(yùn)行
else 否則
for 循環(huán)
if 如果
instanceof 實(shí)例
return 返回
switch 根據(jù)值選擇執(zhí)行
while 循環(huán)
錯(cuò)誤處理 assert 斷言表達(dá)式是否為真
catch 捕捉異常
finally 有沒有異常都執(zhí)行
throw 拋出一個(gè)異常對象
throws 聲明一個(gè)異沉戳遥可能被拋出
try 捕獲異常
包相關(guān) import 引入
package
基本類型 boolean 布爾型
byte 字節(jié)型
char 字符型
double 雙精度浮點(diǎn)
float 單精度浮點(diǎn)
int 整型
long 長整型
short 短整型
變量引用 super 父類,超類
this 本類
void 無返回值
保留關(guān)鍵字 goto 是關(guān)鍵字厉斟,但不能使用
const 是關(guān)鍵字,但不能使用
null

文章和項(xiàng)目開源地址

一起學(xué)習(xí)强衡,Java最簡單易懂的零基礎(chǔ)入門擦秽,答疑解惑,關(guān)注點(diǎn)贊github開源:https://github.com/BradYan/easy-java

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末漩勤,一起剝皮案震驚了整個(gè)濱河市感挥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌越败,老刑警劉巖触幼,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異究飞,居然都是意外死亡置谦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門噪猾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來霉祸,“玉大人,你說我怎么就攤上這事袱蜡∷坎洌” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵坪蚁,是天一觀的道長奔穿。 經(jīng)常有香客問我,道長敏晤,這世上最難降的妖魔是什么贱田? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮嘴脾,結(jié)果婚禮上男摧,老公的妹妹穿的比我還像新娘。我一直安慰自己译打,他們只是感情好耗拓,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著奏司,像睡著了一般乔询。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上韵洋,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天竿刁,我揣著相機(jī)與錄音黄锤,去河邊找鬼。 笑死食拜,一個(gè)胖子當(dāng)著我的面吹牛鸵熟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播监婶,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼旅赢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了惑惶?” 一聲冷哼從身側(cè)響起煮盼,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎带污,沒想到半個(gè)月后僵控,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鱼冀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年报破,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片千绪。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡充易,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出荸型,到底是詐尸還是另有隱情盹靴,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布瑞妇,位于F島的核電站稿静,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏辕狰。R本人自食惡果不足惜改备,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蔓倍。 院中可真熱鬧悬钳,春花似錦、人聲如沸偶翅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽倒堕。三九已至,卻和暖如春爆价,著一層夾襖步出監(jiān)牢的瞬間垦巴,已是汗流浹背媳搪。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留骤宣,地道東北人秦爆。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像憔披,于是被迫代替她去往敵國和親等限。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容