變量:變量代表程序的狀態。程序通過改變變量的值來改變整個程序的狀態,或者說得更大一些,也就是實現程序的功能邏輯。 為了方便的引用變量的值,在程序中需要為變量設定一個名稱,這就是變量名。例如在2D游戲程序中,需要代表人物的位置,則需要2個變量,一個是x坐標,一個是y坐標,在程序運行過程中,這兩個變量的值會發生改變。 由于Java語言是一種強類型的語言,所以變量在使用以前必須首先聲明,在程序中聲明變量的語法格式如下: 數據類型 變量名稱; 例如:int x; 在該語法格式中,數據類型可以是Java語言中任意的類型,包括前面介紹到的基本數據類型以及后續將要介紹的復合數據類型。變量名稱是該變量的標識符,需要符合標識符的命名規則,在實際使用中,該名稱一般和變量的用途對應,這樣便于程序的閱讀。數據類型和變量名稱之間使用空格進行間隔,空格的個數不限,但是至少需要1個。語句使用“;”作為結束。 也可以在聲明變量的同時,設定該變量的值,語法格式如下: 數據類型 變量名稱 = 值; 例如:int x = 10; 在該語法格式中,前面的語法和上面介紹的內容一致,后續的“=”代表賦值,其中的“值”代表具體的數據,注意區別“==”代表為判斷是否相等。在該語法格式中,要求值的類型需要和聲明變量的數據類型一致。 在程序中,變量的值代表程序的狀態,在程序中可以通過變量名稱來引用變量中存儲的值,也可以為變量重新賦值。例如: int n = 5; n = 10; 在實際開發過程中,需要聲明什么類型的變量,需要聲明多少個變量,需要為變量賦什么數值,都根據程序邏輯決定,這里列舉的只是表達的格式而已。
常量 常量代表程序運行過程中不能改變的值。 常量在程序運行過程中主要有2個作用: 1. 代表常數,便于程序的修改(例如:圓周率的值) 2. 增強程序的可讀性(例如:常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其數值分別是1、2、3和4) 常量的語法格式和變量類型,只需要在變量的語法格式前面添加關鍵字final即可。在Java編碼規范中,要求常量名必須大寫。 則常量的語法格式如下: final 數據類型 常量名稱 = 值; final 數據類型 常量名稱1 = 值1, 常量名稱2 = 值2,……常量名稱n = 值n; 例如: final double PI = 3.14; final char MALE=‘M’,FEMALE=‘F’; 在Java語法中,常量也可以首先聲明,然后再進行賦值,但是只能賦值一次,示例代碼如下: final int UP; UP = 1; 運算符和表達式 算術運算符:1.加減運算符: +,- 加減運算符是二目運算符;加減運算符的結合方向是從左到右;加減運算符的操作元是整型或浮點型數據,加減運算符的優先級是4級。 2.乘、除和求余運算符: *,/,% 以上運算符是二目運算符,結合方向是從左到右,乘、除和求余運算符的操作元是整型或浮點型數據。運算符的優先級是3級。 3.算術表達式 用算術符號和括號連接起來的符合java語法規則的式子,稱為算術表達式。 4.自增自減運算符:++,-- 是單目運算符,可以放在操作元之前,也可以放在操作元之后。操作元必須是一個整型或浮點型變量。作用是使變量的值增1或減1,如: ++x(--x)表示在使用x之前,先使x的值增(減)1。 x++(x--)表示在使用x之后,使x的值增(減)1。 運算精度:精度從“低”到“高”排列的順序是: byte short char int long float double Java在計算算術表達式的值時,使用下列計算精度規則: 1.如果表達式中有雙精度浮點數(double型數據),則按雙精度進行運算。 2.如果表達式中最高精度是單精度浮點數(float型數據),則按單精度進行運算。 3.如果表達式中最高精度是long型整數,則按long精度進行運算。 4.如果表達式中最高精度低于int型整數,則按int精度進行運算 關系運算符:關系運算符是二目運算符,用來比較兩個值的關系。關系運算符的運算結果是boolean型,當運算符對應的關系成立時,運算結果是true,否則是false。 file:///C:/Users/馮強/AppData/Local/Temp/ksohtml/wpsC3FE.tmp.jpg 邏輯運算符:邏輯運算符包括:&&,||,! 其中&&、||為二目運算符,實現邏輯與、邏輯或。 !為單目運算符實現邏輯非。 邏輯運算符的操作元必須是boolean型數據,邏輯運算符可以用來連接關系表達式。 file:///C:/Users/馮強/AppData/Local/Temp/ksohtml/wpsC3FF.tmp.jpg 位運算符:兩個整型數據實施位運算,即對兩個整型數據對應的位進行運算得到一個新的整型數據。 1.按位與”運算 “按位與”運算符“&”是二目運算符。 2.按位或”運算 “按位或”運算符:“|”是二目運算符。 3.按位非”運算 “按位非”運算符:“~”是單目運算符。 4.按位異或”運算 “按位異或”運算符:“^”是二目運算符。 其他:1、賦值運算符和賦值表達式:= 賦值運算符是二目運算符,左面的操作元必須是變量,不能是常量或表達式。 賦值運算符的優先級較低,是14級,結合方向右到左。 賦值表達式的值就是“=”左面變量的值。 注意:不要將賦值運算符“=”與關系運算符“==”混淆。 2、instanceof運算符 instanceof 運算符是二目運算符,左面的操作元是一個對象;右面是一個類。當左面的對象是右面的類或子類創建的對象時,該運算符運算的結果是true ,否則是false。 流程控制 條件語句:條件分支語句按著語法格式可細分為三種形式, if語句 if-else語句 if-else if- ……-else 語句 開關語句:switch 語句是單條件多分支的開關語句,它的一般格式定義如下(其中break語句是可選的): switch(表達式) { case 常量值: 若干個語句 break; case 常量值: 若干個語句 break; ... case 常量值n: 若干個語句 break; default: 若干語句 } switch語句中的“表達式”和“常量值”的值必須為byte、short、int、char型或者枚舉類型,而且互不相同。 循環語句for循環:or語句的語法格式: for (表達式1;表達式2;表達式3){ 若干語句 } for語句的執行規則是: (1)計算“表達式1”,完成必要的初始化工作。 (2)判斷“表達式2”的值,若“表達式2”的值為true,則進行(3),否則進行(4)。 (3)執行循環體,然后計算“表達式3”,以便改變循環條件,進行(2)。 (4)結束for語句的執行。 While循環:while語句的語法格式: while (表達式) { 若干語句 } while語句的執行規則是: (1)計算表達式的值,如果該值是true時,就進行(2),否則執行(3)。 (2)執行循環體,再進行(1)。 (3)結束while語句的執行。 Do while循環:do-while語句的語法格式: do { 若干語句 } while(表達式); do- while語句的執行規則是: (1)執行循環體,再進行(2)。 (2)計算表達式的值,如果該值是true時,就進行(1),否則執行(3)。 (3)結束while語句的執行。 break和continue break和continue語句是用關鍵字break或continue加上分號構成的語句。 在循環體中可以使用break語句和continue語句。 如果在某次循環中執行了break語句,那么整個循環語句就結束。 如果在某次循環中執行了continue語句,那么本次循環就結束,即不再執行本次循環中循環體中continue語句后面的語句,而轉入進行下一次循環。 從抽象到類 類:類是組成Java程序的基本要素。類封裝了一類對象的狀態和方法。類是用來定義對象的模板。 類的實現包括兩部分:類聲明和類體。基本格式為: class 類名 { 類體的內容 } class是關鍵字,用來定義類。“class 類名”是類的聲明部分,類名必須是合法的Java標識符。兩個大括號以及之間的內容是類體 構造方法與對象的創建: 類是面向對象語言中最重用的一種數據類型,那么就可以用它來聲明變量。在面向對象語言中,用類聲明的變量被稱作對象。和基本數據類型不同,在用類聲明對象后,還必須要創建對象,即為聲明的對象分配變量(確定對象所具有的屬性),當使用一個類創建一個對象時,也稱給出了這個類的一個實例。通俗的講,類是創建對象的“模板”,沒有類就沒有對象。構造方法和對象的創建密切相關。 構造方法: 構造方法是一種特殊方法,它的名字必須與它所在的類的名字完全相同,而且沒有類型。 允許一個類中編寫若干個構造方法,但必須保證他們的參數不同,即參數的個數不同,或者是參數的類型不同。 需要注意的是 (1) 如果類中沒有編寫構造方法,系統會默認該類只有一個構造方法,該默認的構造方法是無參數的,且方法體中沒有語句。 (2)如果類里定義了一個或多個構造方法,那么Java不提供默認的構造方法 創建對象:1.對象的聲明 一般格式為: 類的名字 對象名字;如: Vehicle car; 這里Vehicle是一個類的名字,car是我們聲明的對象的名字。 2.為聲明的對象分配內存 使用new運算符和類的構造方法為聲明的對象分配變量,即創建對象。如果類中沒有構造方法,系統會調用默認的構造方法,默認的構造方法是無參數的,且方法體中沒有語句。如: car=new Vehiclee(); PS:見示例。 使用對象:對象不僅可以操作自己的變量改變狀態,而且能調用類中的方法產生一定的行為。 通過使用運算符“.”,對象可以實現對自己變量的訪問和方法的調用。 1.對象操作自己的變量(對象的屬性) 對象.變量; 2.對象調用類中的方法(對象的功能) 對象.方法; 3.體現封裝 當對象調用方法時,方法中出現的成員變量就是指分配給該對象的變量。 對象的引用和實體:類是體現封裝的一種數據類型,類聲明的變量稱做對象,對象中負責存放引用,以確保對象可以操作分配給該對象的變量以及調用類中的方法。分配給對象的變量習慣地稱做對象的實體。 1.避免使用空對象 沒有實體的對象稱作空對象,空對象不能使用,即不能讓一個空對象去調用方法產生行為。 2.垃圾收集 一個類聲明的兩個對象如果具有相同的引用,那么二者就具有完全相同的實體,而且Java有所謂“垃圾收集”機制,這種機制周期地檢測某個實體是否已不再被任何對象所擁有(引用),如果發現這樣的實體,就釋放實體占有的內存 參數傳值:方法中最重要的部分之一就是方法的參數,參數屬于局部變量,當對象調用方法時,參數被分配內存空間,并要求調用者向參數專遞值,即方法被調用時,參數變量必須有具體的值。 方法重載:方法重載的意思是:一個類中可以有多個方法具有相同的名字,但這些方法的參數必須不同,即或者是參數的個數不同,或者是參數的類型不同。 class A { float add(int a,int b) { return a+b; } float add(long a,int b) { return a+b; } double add(double a,int b) { return a+b; } } This關鍵字:this是Java的一個關鍵字,表示某個對象。this可以出現在實例方法和構造方法中,但不可以出現在類方法中。 實例方法可以操作類的成員變量,當實例成員變量在實例方法中出現時,默認的格式是: this.成員變量; 當static成員變量在實例方法中出現時,默認的格式是: 類名.成員變量; 當一個對象調用方法時,方法中的實例成員變量就是指分配給該對象的實例成員變量,而static變量則和其他對象共享。因此,通常情況下,可以省略實例成員變量名字前面的“this.”,以及static變量前面的“類名.”。 但是,當實例成員變量的名字和局部變量的名字相同時,成員變量前面的“this.”或“類名.”就不可以省略。 注:this不能出現在類方法中,這是因為,類方法可以通過類名直接調用,這時,可能還沒有任何對象誕生。 包:包是Java語言中有效地管理類的一個機制。 包名的目的是有效的區分名字相同的類。不同Java源文件中兩個類名字相同時,它們可以通過隸屬不同的包來相互區分。 import語句:一個類可能需要另一個類聲明的對象作為自己的成員或方法中的局部變量,如果這兩個類在同一個包中,當然沒有問題。 如果一個類想要使用的那個類和它不在一個包中,要使用import語句完成使命。 訪問權限:當用一個類創建了一個對象之后,該對象可以通過“.”運算符操作自己的變量、使用類中的方法,但對象操作自己的變量和使用類中的方法是有一定限制的。 所謂訪問權限是指對象是否可以通過“.”運算符操作自己的變量或通過“.”運算符使用類中的方法。 訪問限制修飾符有private、protected和public,都是Java的關鍵字,用來修飾成員變量或方法。
|