面向?qū)ο笃?/h1>1.類和對象
[修飾符] class 類名? ? ?// 修飾符:public嗅义、final昧识、abstract谊却、省略
{
? ? ? 零到多個構(gòu)造器定義
? ? ? 零到多個成員變量
? ? ? 零到多個方法
}
[修飾符] class 類名? ? ?// 修飾符:public嗅义、final昧识、abstract谊却、省略
{
? ? ? 零到多個構(gòu)造器定義
? ? ? 零到多個成員變量
? ? ? 零到多個方法
}
定義成員變量:
[修飾符] 類型 成員變量名 [ = 默認值]搪搏;
修飾符:public灰追、protected、private拟淮、static干茉、final、省略
類型:基本類型很泊、引用類型
成員變量名:合法標識符
默認值:可以指定一個可選默認值
定義方法:
[修飾符] 方法返回值類型 方法名(形參列表)
{
? ? ? 零到多條可執(zhí)行語句組成的方法體
}
修飾符:public角虫、protected沾谓、private、static戳鹅、final均驶、省略
方法返回值類型:基本類型、引用類型
? ? ? ? 如果聲明了返回值類型枫虏,方法體內(nèi)需要有一個有效的return語句
? ? ? ? 如果沒有返回值妇穴,則需要用void來聲明沒有返回值
方法名:合法標識符
形參列表:定義該方法可接受的參數(shù), “形參類型 形參名”,
static : static修飾的成員表明它屬于這個類本身隶债,而不屬于該類的單個實例腾它,static修飾的成員不能訪問沒有static修飾的成員
定義構(gòu)造器:
[修飾符] 構(gòu)造器名(形參列表)
{
? ? ? ?零到多條可執(zhí)行語句組成的構(gòu)造器執(zhí)行體
}
修飾符:public、protected死讹、private瞒滴、省略
構(gòu)造器名:必須同類名相同
形參列表:定義該方法可接受的參數(shù),?“形參類型 形參名”,
如果構(gòu)造器中定義了返回值赞警,或使用void聲明構(gòu)造器沒有返回值妓忍,則構(gòu)造器變?yōu)榉椒ǎ辉偈菢?gòu)造器
定義一個Person類
Java 類的作用:
定義變量
創(chuàng)建對象
調(diào)用類的類方法或訪問類的類變量
創(chuàng)建對象:創(chuàng)建對象的根本途徑是構(gòu)造器单默,通過new關(guān)鍵字來調(diào)用某個類的構(gòu)造器即可創(chuàng)建這個類的實例
Java 對象的作用:
訪問對象的實例變量
調(diào)用對象的方法
路徑下必須有類,才能夠調(diào)用
否則編譯時出錯:
對象this的引用:
this關(guān)鍵字最大的作用是:讓類中的一個方法忘瓦,訪問該類里的另一個方法或?qū)嵗?/b>
this關(guān)鍵字總是指向調(diào)用該方法的對象
this作為對象的默認引用的兩種形式:
*構(gòu)造器中引用該構(gòu)造器正在初始化的對象
*在方法中引用調(diào)用該方法的對象
調(diào)用run方法:
大部分情況,this可以省略
靜態(tài)成員(stastic)不能直接訪問非靜態(tài)成員
Java編程時引颈,不要使用對象去調(diào)用static修飾的成員變量耕皮、方法,而是使用類去調(diào)用
this在構(gòu)造器里的作用:
使用this作為方法的返回值可以讓代碼更加簡潔蝙场,但可能造成實際意義的模糊
2.方法詳解
方法不能獨立定義凌停,只能在類體里定義
方法要么屬于類的本身,要么屬于該類的一個對象
永遠不能獨立執(zhí)行方法售滤,執(zhí)行方法必須使用類或?qū)ο笞鳛檎{(diào)用者
參數(shù)傳遞:
基本類型
運行結(jié)果
swap()方法的a罚拟、b只是main()里的復制品
引用類型:
運行結(jié)果
main()的成員變量的值被交換了
swap()復制main()的dw引用變量后,實際上操作的是DateWrap對象
形參個數(shù)可變的方法:
遞歸方法:
eg:? ?f(n+2) = 2*f(n+1)+f(n)
小的一端已知
由小到大 f(0)=1,f(1)=4;
大的一端已知
由大到小: f(20)=1, f(21)=4;
方法重載:同一個類中包含了兩個或者兩個以上方法的方法名相同完箩,但形參列表不同
確定一個方法的三個要素:
調(diào)用者赐俗,就是方法的所屬者,既可以是類也可以是對象
方法名弊知,方法的標識
形參列表:當調(diào)用方法時阻逮,系統(tǒng)將會根據(jù)傳入的實參列表匹配
3. 成員變量和局部變量
程序中訪問類變量
類.類變量
程序中訪問類變量
實例.實例變量
實例訪問類變量
實例.類變量
運行結(jié)果
局部變量:
代碼塊局部變量
方法局部變量
引用被覆蓋的成員變量
變量的使用規(guī)則
直接使用類變量或者實例變量的弊端:
*增大了變量的生存時間,將導致更大的內(nèi)存開銷
*擴大了變量的作用域秩彤,這不利于提高程序的內(nèi)聚性
比較三個程序
三個程序運行結(jié)果完全相同叔扼,但第三個程序最符合開發(fā)規(guī)范
使用成員變量的情況:
*需要定義的變量是用于描述某個類或者某個對象的固有信息事哭,如果這個信息對這個類的所有實例完全相同,或類相關(guān)瓜富,應該定義成類變量鳍咱;如果這個信息是實例相關(guān)的,應該定義成實例變量与柑。
*在某個類中需要以一個變量來保存該類或者實例運行時的狀態(tài)信息流炕,通常使用成員變量。
*在某個類的多個方法之間進行共享仅胞,應該使用成員變量每辟。
在使用局部變量時,盡可能地縮小局部變量的作用范圍干旧。