標(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