關鍵字&識別符號
關鍵字的概念與特征
概念:Java關鍵字是事先定義好的對Java的編譯器有特殊的意義,他們用來表示一種資料型別,或者表示程式的結構等,關鍵字不能用作變數名、方法名、類名、包名和引數,
特征:
- 完全小寫
- 在增強版記事本中(例如Notepad++)有特殊顏色
識別符號的概念與規則
- 什么是識別符號?
凡是可以由自己命名的地方都稱為識別符號.
例: 專案名 ,包名 ,類名 .方法名
2. 命名規范
① 不可使用java關鍵字和保留字,但是可以包含關鍵字和保留字.
② 可以使用26個字母大小寫,數字0-9,$和_.
③ 可以使用數字,但不可放在首位.
④ 長度理論上沒有限制,但命名最好能反映出其作用,遵循”駝峰形式”,見命知意
⑤ 包名全部小寫,類名全部大駝峰式
⑥ 變數名、方法名首字母小寫,如果名稱由多個單詞組成,每個單詞的首字母都要大寫
⑦ 常量(特指被 final 修飾的常量)名全部大寫,如果是單個字母,需要大寫,如果是多個單詞,需要用下劃線分開,并且都大寫
例:寫一個ajax的專案實體,
專案名:ajaxtest 包名:com.liu.ajax 類名:AjaxDemo
常量&變數
常量的概念:在程式運行期間,固定不變的量,
常量的分類:
1. 字符常量:凡是用單引號引起來的單個字符,就做字符常量,例如:、‘b'、9’、‘中
2. 字串常量:凡是用雙引號引起來的部分,叫做字串常量,例如:"abc"、"Hello”、“123"
3. 整數常量:直接寫上的數字,沒有小數點,例如:100、200、0、-250
4. 浮點數常量:直接寫上的數字,有小數點,例如:2.5、-3.14、0.0
5. 布爾常量:只有兩種取值 true | false
基本資料型別:
型別 位元組數 二進制位數
byte (位元組型) 1 8
short(短整型) char (字符型) 2 16
int (整型) float (單精度浮點數) 4 32
long (長整型) double(雙精度浮點數) 8 64
注意事項:
- Java中的默認型別:整數型別是 int 、浮點型別是double
- 資料范圍與位元組數不一定相關,例如float資料范圍比 long 更加廣泛,但是float是4位元組,1ong是8位元組,
- 浮點型可能只是一個近似值,并非精確的值,
- 浮點數當中默認型別是double,如果一定要使用float型別,需要加上一個后綴F,
- 字串不是基本型別,而是參考型別
- 如果是整數,默認為int型別,如果一定要使用long型別,需要加上一個后綴L,推薦使用大寫字母后綴,
變數: 程式運行期間,內容可以改變的量,
創建一個變數并且使用的格式:
資料型別 變數名稱; //創建了一個變數
變數名稱 = 資料值; //賦值,將右邊的資料值,賦值交給左邊的變數
一步到位的格式:
資料型別 變數名稱 = 資料值; //在創建一個變數的同時,立刻放入指定的資料值
注意事項:
1.如果創建多個變數,那么變數之間的名稱不可以重復,
2.對于float和long型別來說,字母后綴F 和 L不要丟掉,
3.沒有進行賦值的變數,不能直接使用;一定要賦值之后,才能使用,
作用域 : 從定義變數的一行開始,一直到直接所屬的大括號結束,
資料型別轉換
當效據型別不一樣時,就會發生資料型別轉換
自動型別轉換(隱式)
1.特點:代碼不需要進行特殊處理,自動完成
2.規則:資料范圍從小到大
long num1 = 100;System.out.println(num1)
// 左邊是long型別,右邊是默認的int型別,左右不一樣
// int-->long,符合了資料范圍從小到大的要求
強制型別轉換(顯式)
1.特點:代碼需要進行特殊的格式處理,不能自動完成
2.格式:范圍小的型別范圍小的變數名=(范圍小的型別)原本范圍大的資料
int num=(int)100L;System.out.print1n(num);
//左邊是int型別,右邊是long型別,不一樣
//格式范圍小的型別 范圍小的變數名 =(范圍小的型別) 原本范圍大的資料 ;
注意事項:
1.強制型別轉換一般不推薦使用,因為有可能發生精度損失、資料溢位,
2.byte / short / char這三種型別都可以發生數學運算,例如加法“+”.
3.byte/short/char這三種型別在運算的時候,都會被首先向上提升成為int型別,然后再計算,符合ASCII編碼表,
例3:byte num4 = 40;//注意!右側的數值大小不能超過左側的型別范圍byte num5 = 50;//當byte + byte,會先向上提升稱為int型別,所以結果就是--> int + int ,回傳型別也應該是int
int result1 = num4 + num5;
System.out.println(result1);//90
運算子 :進行特定操作的符號,例如:+
運算式:用運算子連起來的式子叫做運算式,例如:20+5 , 又例如:a+b
四則運算:加+ 減 - 乘 * 除 /
取模(取余數):%
只有對于整數的除法來說,取模運算子才有余數的意義,
int x = 10;
int y = 3;
int resultl = x / y ;
System.out.println(result1);//3
int result2 = x % y ;
System.out.println(result2);//余數,模,1
算術運算子

四則運算當中的加號“+”有常見的三種用法:
1.對于數值來說,+ 就是加法,
2.對于字符char型別來說,在計算之前,char會被提升成為int,然后再計算,
char型別字符,和int型別數字,之間的對照關系表:ASCII、Unicode
3.對于字串String來說,+ 代表字串連接操作, () 小括號的優先級最高
例3:
String str = "Java";
//String + int --> String
System.out.println(str2+20);//Java20
自增運算子:++
例如: a++; 先使用a值,再執行a = a + 1 ;int a = 1;int b = 2;b = a++; //在這一步,a的值還沒有改變,所以是將a=1的值賦給了b,然后再進行改變,System.out.println("a:"+a); //a:2System.out.println("b:"+b); //b:1
自減運算子:- -
例如: ++a; 先執行a = a + 1 ; 再使用a值,int a = 1;int b = 2;b = --a;System.out.println("a:"+a);System.out.println("b:"+b);
a++ : 在變數值被使用之后才增加的值
++a : 在變數值在被使用之前增加它的值
- - 運算子的作業原理與此相同,只是它所執行的是減值操作而非增值操作,
賦值運算子
賦值運算子是指為變數或常量指定數值的符號,如可以使用 “=” 將右邊的運算式結果賦給左邊的運算元,
Java 支持的常用賦值運算子,如下表所示:

比較運算子
比較運算子用于判斷兩個資料的大小,例如:大于、等于、不等于,比較的結果是一個布林值( true 或 false ),
Java 中常用的比較運算子如下表所示:

注意事項:
1、 > 、 < 、 >= 、 <= 只支持左右兩邊運算元是數值型別
2、 == 、 != 兩邊的運算元既可以是數值型別,也可以是參考型別
邏輯運算子
主要用于進行邏輯運算,連接兩個Boolean值,代表兩個條件,
Java 中常用的邏輯運算子如下表所示:

我們可以從“投票選舉”的角度理解邏輯運算子:
1、 與:要求所有人都投票同意,才能通過某議題
2、 或:只要求一個人投票同意就可以通過某議題
3、 非:某人原本投票同意,通過非運算子,可以使其投票無效
4、 異或:有且只能有一個人投票同意,才可以通過某議題
當使用邏輯運算子時,我們會遇到一種很有趣的 “短路” 現象 >> 如果根據左邊已經可以判斷得到最終結果,那么右邊的代碼將不再執行,從而節省一定的性能,
譬如:( 1 > 2 ) && ( 1 < 3 ) 中,如果能確定左邊 1 > 2 運行結果為 false , 則系統就認為已經沒有必要執行右側的 1 < 3 啦,
條件運算子
條件運算子( ? : )也稱為 “三元運算子”,
- 一元運算子:只需要一個資料就可以進行操作的運算子,例如:取反!、自增++、自減--
- 二元運算子:需要兩個資料才可以進行操作的運算子,例如:加法+、賦值=
- 三元運算子:需要三個資料才可以進行操作的運算子,
語法形式:布爾運算式 ? 運算式1 :運算式2
運算程序:如果布爾運算式的值為 true ,則回傳 運算式1 的值,否則回傳 運算式2 的值
例如 :

因為,運算式 8>5 的值為 true ,所以,回傳: 8大于5
方法 ♦ ♦
所謂方法,就是用來解決一類問題的代碼的有序組合,是一個功能模塊,
一般情況下,定義一個方法的語法是:
訪問修飾符 回傳值型別 方法名(引數串列){
方法體
}
其中:
1、 訪問修飾符:方法允許被訪問的權限范圍, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示該方法可以被其他任何代碼呼叫
2、 回傳值型別:方法回傳值的型別,如果方法不回傳任何值,則回傳值型別指定為 void ; 如果方法具有回傳值,則需要指定回傳值的型別,并且在方法體中使用 return 陳述句回傳值
3、 方法名:定義的方法的名字,必須使用合法的識別符號
4、 引數串列:傳遞給方法的引數串列,引數可以有多個,多個引數間以逗號隔開,每個引數由引數型別和引數名組成,以空格隔開
根據方法是否帶參、是否帶回傳值,可將方法分為四類:
無參無回傳值方法
如果方法不包含引數,且沒有回傳值,我們稱為無參無回傳值的方法,
方法的使用分兩步:
第一步,定義方法
例如:下面代碼定義了一個方法名為 show ,沒有引數,且沒有回傳值的方法,執行的操作為輸出 “ welcome to imooc. ”

注意 :
1、 方法體放在一對大括號中,實作特定的操作
2、 方法名主要在呼叫這個方法時使用,需要注意命名的規范,一般采用第一個單詞首字母小寫,其它單詞首字母大寫的形式
第二步,呼叫方法
當需要呼叫方法執行某個操作時,可以先創建類的物件,然后通過 物件名.方法名(); 來實作
例如:在下面的代碼中,我們創建了一個名為 hello 的物件,然后通過呼叫該物件的 show( ) 方法輸出資訊

運行結果為: welcome to imooc.
無參帶回傳值方法
如果方法不包含引數,但有回傳值,我們稱為無參帶回傳值的方法,
例如:下面的代碼,定義了一個方法名為 calSum ,無引數,但回傳值為 int 型別的方法,執行的操作為計算兩數之和,并回傳結果

在 calSum( ) 方法中,回傳值型別為 int 型別,因此在方法體中必須使用 return 回傳一個整數值
呼叫帶回傳值的方法時需要注意,由于方法執行后會回傳一個結果,因此在呼叫帶回傳值方法時一般都會接收其回傳值并進行處理,如下:第6行

運行結果為: 兩數之和為:17
不容忽視的“小陷阱”:
1、 如果方法的回傳型別為 void ,則方法中不能使用 return 回傳值!

2、 方法的回傳值最多只能有一個,不能回傳多個值

3、 方法回傳值的型別必須兼容,例如,如果回傳值型別為 int ,則不能回傳 String 型值

帶參無回傳值方法
有時方法的執行需要依賴于某些條件,換句話說,要想通過方法完成特定的功能,需要為其提供額外的資訊才行,
例如,現實生活中電飯鍋可以實作“煮飯”的功能,但前提是我們必須提供食材,如果我們什么都不提供,那就真是的“巧婦難為無米之炊”了,
我們可以通過在方法中加入引數串列接收外部傳入的資料資訊,引數可以是任意的基本型別資料或參考型別資料,
我們先來看一個帶引數,但沒有回傳值的方法:

上面的代碼定義了一個 show 方法,帶有一個引數 name ,實作輸出歡迎訊息,
呼叫帶參方法與呼叫無參方法的語法類似,但在呼叫時必須傳入實際的引數值

例如:

運行結果為: 歡迎您,愛慕課!
很多時候,我們把定義方法時的引數稱為形參,目的是用來定義方法 需要傳入引數的個數和型別;把呼叫方法時的引數稱為實參,是傳遞給方法真正被處理的值,
一定不可忽視的問題:
1、 呼叫帶參方法時,必須保證實參的數量、型別、順序與形參一一對應

2、 呼叫方法時,實參不需要指定資料型別,如 
3、 方法的引數可以是基本資料型別,如 int、double 等,也可以是參考資料型別,如 String、陣列等

第10行,Array.toString()方法將陣列轉換為字串輸出
4、 當方法引數有多個時,多個引數間以逗號分隔

帶參帶回傳值方法
如果方法既包含引數,又帶有回傳值,我們稱為帶參帶回傳值的方法,
例如:
下面的代碼,定義了一個 show 方法,帶有一個引數 name ,方法執行后回傳一個 String 型別的結果

呼叫帶參帶回傳值的方法:

運行結果為: 歡迎您,愛慕課!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/3072.html
標籤:面向對象
