一個Java程序可以認為是一系列對象的集合兄淫,而這些對象通過調(diào)用彼此的方法來協(xié)同工作。下面簡要介紹下類蔓姚、對象拖叙、方法和實例變量的概念。
- 對象:對象是類的一個實例赂乐,有狀態(tài)和行為。例如咖气,一條狗是一個對象挨措,它的狀態(tài)有:顏色、名字崩溪、品種浅役;行為有:搖尾巴、叫伶唯、吃等觉既。
- 類:類是一個模板,它描述一類對象的行為和狀態(tài)乳幸。
- 方法:方法就是行為瞪讼,一個類可以有很多方法。邏輯運算粹断、數(shù)據(jù)修改以及所有動作都是在方法中完成的符欠。
- 實例變量:每個對象都有獨特的實例變量,對象的狀態(tài)由這些實例變量的值決定瓶埋。
基本語法
編寫Java程序時希柿,應(yīng)注意以下幾點:
- 大小寫敏感:Java是大小寫敏感的,這就意味著標(biāo)識符Hello與hello是不同的养筒。
- 類名:對于所有的類來說曾撤,類名的首字母應(yīng)該大寫。如果類名由若干單詞組成晕粪,那么每個單詞的首字母應(yīng)該大寫挤悉,例如 MyFirstJavaClass (駝峰)。
- 方法名:所有的方法名都應(yīng)該以小寫字母開頭兵多。如果方法名含有若干單詞尖啡,則后面的每個單詞首字母大寫橄仆。
- 源文件名:源文件名必須和類名相同。當(dāng)保存文件的時候衅斩,你應(yīng)該使用類名作為文件名保存(切記Java是大小寫敏感的)盆顾,文件名的后綴為.java。(如果文件名和類名不相同則會導(dǎo)致編譯錯誤)畏梆。
- 主方法入口:所有的Java 程序由public static void main(String []args)方法開始執(zhí)行您宪。
Java標(biāo)識符
Java所有的組成部分都需要名字。類名奠涌、變量名以及方法名都被稱為標(biāo)識符宪巨。
關(guān)于Java標(biāo)識符,有以下幾點需要注意:
- 所有的標(biāo)識符都應(yīng)該以字母(A-Z或者a-z),美元符($)溜畅、或者下劃線(_)開始
- 首字符之后可以是字母(A-Z或者a-z),美元符($)捏卓、下劃線(_)或數(shù)字的任何字符組合
- 關(guān)鍵字不能用作標(biāo)識符
- 標(biāo)識符是大小寫敏感的
- 合法標(biāo)識符舉例:age、$salary慈格、_value怠晴、__1_value
- 非法標(biāo)識符舉例:123abc、-salary
Java修飾符
像其他語言一樣浴捆,Java可以使用修飾符來修飾類中方法和屬性蒜田。主要有兩類修飾符:
- 訪問控制修飾符 : default, public , protected, private
- 非訪問控制修飾符 : final, abstract, static, synchronized
在后面的章節(jié)中我們會深入討論Java修飾符。
Java變量
Java中主要有如下幾種類型的變量
- 局部變量
- 類變量(靜態(tài)變量)
- 成員變量(非靜態(tài)變量选泻、全局變量)
Java數(shù)組
數(shù)組是儲存在堆上的對象冲粤,可以保存多個同類型變量。
Java枚舉
Java 5.0引入了枚舉页眯,枚舉限制變量只能是預(yù)先設(shè)定好的值梯捕。使用枚舉可以減少代碼中的bug。
例如餐茵,我們?yōu)楣暝O(shè)計一個程序科阎,它將限制果汁為小杯、中杯忿族、大杯锣笨。這就意味著它不允許顧客點除了這三種尺寸外的果汁。
實例
class FreshJuice {
enum FreshJuiceSize{ SMALL, MEDIUM , LARGE }
FreshJuiceSize size;
}
public class FreshJuiceTest {
public static void main(String []args){
FreshJuice juice = new FreshJuice();
juice.size = FreshJuice.FreshJuiceSize.MEDIUM ;
}
}
注意:枚舉可以單獨聲明或者聲明在類里面道批。方法错英、變量、構(gòu)造函數(shù)也可以在枚舉中定義隆豹。
Java 關(guān)鍵字
下面列出了Java 關(guān)鍵字椭岩。這些保留字不能用于常量、變量、和任何標(biāo)識符的名稱判哥。
類別 | 關(guān)鍵字 | 說明 |
---|---|---|
訪問控制 | private | 私有的 |
訪問控制 | protected | 受保護的 |
訪問控制 | public | 公共的 |
類献雅、方法和變量修飾符 | abstract | 聲明抽象 |
類、方法和變量修飾符 | class | 類 |
類塌计、方法和變量修飾符 | extends | 擴充,繼承 |
類挺身、方法和變量修飾符 | final | 最終值,不可改變的 |
類、方法和變量修飾符 | implements | 實現(xiàn)(接口) |
類锌仅、方法和變量修飾符 | interface | 接口 |
類章钾、方法和變量修飾符 | native | 本地,原生方法(非Java實現(xiàn)) |
類热芹、方法和變量修飾符 | new | 新,創(chuàng)建 |
類贱傀、方法和變量修飾符 | static | 靜態(tài) |
類、方法和變量修飾符 | strictfp | 嚴格,精準(zhǔn) |
類伊脓、方法和變量修飾符 | synchronized | 線程,同步 |
類府寒、方法和變量修飾符 | transient | 短暫 |
類、方法和變量修飾符 | volatile | 易失 |
程序控制語句 | break | 跳出循環(huán) |
程序控制語句 | case | 定義一個值以供switch選擇 |
程序控制語句 | continue | 繼續(xù) |
程序控制語句 | default | 默認 |
程序控制語句 | do | 運行 |
程序控制語句 | else | 否則 |
程序控制語句 | for | 循環(huán) |
程序控制語句 | if | 如果 |
程序控制語句 | instanceof | 實例 |
程序控制語句 | return | 返回 |
程序控制語句 | switch | 根據(jù)值選擇執(zhí)行 |
程序控制語句 | while | 循環(huán) |
錯誤處理 | assert | 斷言表達式是否為真 |
錯誤處理 | catch | 捕捉異常 |
錯誤處理 | finally | 有沒有異常都執(zhí)行 |
錯誤處理 | throw | 拋出一個異常對象 |
錯誤處理 | throws | 聲明一個異潮ㄇ唬可能被拋出 |
錯誤處理 | try | 捕獲異常 |
包相關(guān) | import | 引入 |
包相關(guān) | package | 包 |
基本類型 | boolean | 布爾型 |
基本類型 | byte | 字節(jié)型 |
基本類型 | char | 字符型 |
基本類型 | double | 雙精度浮點 |
基本類型 | float | 單精度浮點 |
基本類型 | int | 整型 |
基本類型 | long | 長整型 |
基本類型 | short | 短整型 |
變量引用 | super | 父類,超類 |
變量引用 | this | 本類 |
變量引用 | void | 無返回值 |
保留關(guān)鍵字 | goto | 是關(guān)鍵字椰棘,但不能使用 |
保留關(guān)鍵字 | const | 是關(guān)鍵字,但不能使用 |
保留關(guān)鍵字 | null | 空 |
Java注釋
類似于C/C++榄笙,Java也支持單行以及多行注釋。注釋中的字符將被Java編譯器忽略祷蝌。
public class HelloWorld {
/* 這是第一個Java程序
*它將打印Hello World
* 這是一個多行注釋的示例
*/
public static void main(String []args){
// 這是單行注釋的示例
/* 這個也是單行注釋的示例 */
System.out.println("Hello World");
}
}
Java 空行
空白行茅撞,或者有注釋的行,Java編譯器都會忽略掉巨朦。
繼承
在Java中米丘,一個類可以由其他類派生。如果你要創(chuàng)建一個類糊啡,而且已經(jīng)存在一個類具有你所需要的屬性或方法拄查,那么你可以將新創(chuàng)建的類繼承該類。
利用繼承的方法棚蓄,可以重用已存在類的方法和屬性堕扶,而不用重寫這些代碼。被繼承的類稱為超類(super class)梭依,派生類稱為子類(subclass)稍算。
接口
在Java中,接口可理解為對象間相互通信的協(xié)議役拴。接口在繼承中扮演著很重要的角色糊探。
接口只定義派生要用到的方法,但是方法的具體實現(xiàn)完全取決于派生類。
Java 源程序與編譯型運行區(qū)別
如下圖所示: