版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目四類(lèi)與對(duì)象Java程序設(shè)計(jì)4.1面向?qū)ο蠹夹g(shù)簡(jiǎn)介1.面向過(guò)程(又稱為結(jié)構(gòu)化程序設(shè)計(jì)):結(jié)構(gòu)化程序設(shè)計(jì)是最基本的程序設(shè)計(jì)方法。面向過(guò)程的程序設(shè)計(jì)簡(jiǎn)單,可讀性強(qiáng),易于閱讀和理解,便于維護(hù),是面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)。主張按功能把軟件系統(tǒng)逐步細(xì)分。程序=數(shù)據(jù)結(jié)構(gòu)+數(shù)據(jù)+算法。面向過(guò)程把問(wèn)題求解過(guò)程(即算法)放在第一位,主張自頂向下,逐步求精。面向過(guò)程提供順序、分支和循環(huán)三種邏輯結(jié)構(gòu),每種邏輯結(jié)構(gòu)要求單入口和單出口。2.面向?qū)ο螅菏且环N以事物為中心的編程思想,用一種更符合人們認(rèn)識(shí)客觀世界的思維方式進(jìn)行程序設(shè)計(jì)。它克服了面向過(guò)程的缺點(diǎn),用一種更符合人們認(rèn)識(shí)客觀世界的思維方式進(jìn)行程序設(shè)計(jì),達(dá)到了軟件工程的三個(gè)主要目標(biāo):重用性、靈活性和擴(kuò)展性。
面向過(guò)程和面向?qū)ο蟮膶?duì)比Java程序設(shè)計(jì)面向?qū)ο蠹夹g(shù)簡(jiǎn)介面向?qū)ο蟮乃拇筇卣鳎撼橄蟆⒎庋b、繼承和多態(tài)。1.抽象:其實(shí)也是所有計(jì)算機(jī)語(yǔ)言的特征。指從眾多的事物中舍棄個(gè)別的、非本質(zhì)的部分,提煉出計(jì)算機(jī)系統(tǒng)所關(guān)注的、共同的、本質(zhì)的部分(屬性和功能)的過(guò)程。抽象包括過(guò)程抽象和數(shù)據(jù)抽象。面向?qū)ο蟮奶卣鱆ava程序設(shè)計(jì)4.1面向?qū)ο蠹夹g(shù)簡(jiǎn)介面向?qū)ο蠹夹g(shù)簡(jiǎn)介2.封裝封裝(Encapsulation)指屬性和方法的定義都封裝在類(lèi)定義中,然后通過(guò)其可見(jiàn)性(public、protected、private)來(lái)細(xì)粒度控制外部對(duì)類(lèi)成員的可訪問(wèn)性。面向?qū)ο蟮奶卣鱆ava程序設(shè)計(jì)4.1面向?qū)ο蠹夹g(shù)簡(jiǎn)介面向?qū)ο蠹夹g(shù)簡(jiǎn)介3.繼承繼承(Inheritance)以原有的類(lèi)為基礎(chǔ)來(lái)創(chuàng)建一個(gè)新的子類(lèi),子類(lèi)繼承父類(lèi)的所有特性,并可以擴(kuò)充自己的特性,從而達(dá)到代碼復(fù)用的目的。通過(guò)extends關(guān)鍵字繼承原有類(lèi)派生出子類(lèi),進(jìn)而構(gòu)造出更為復(fù)雜的數(shù)據(jù)類(lèi)型。繼承為共享數(shù)據(jù)和操作提供了一種良好的機(jī)制,提高了軟件的重用性、可用性和一致性。面向?qū)ο蟮奶卣鱆ava程序設(shè)計(jì)4.1面向?qū)ο蠹夹g(shù)簡(jiǎn)介面向?qū)ο蠹夹g(shù)簡(jiǎn)介4.多態(tài)多態(tài)性是指程序中出現(xiàn)的方法或變量“重名”現(xiàn)象。(1)
方法的重載(Overload)方法的重載指同一類(lèi)中有相同的方法名但有不同的形式參數(shù)的語(yǔ)法現(xiàn)象。與方法的返回值類(lèi)型、方法修飾符等沒(méi)有關(guān)系。(2)
構(gòu)造方法的重載創(chuàng)建對(duì)象時(shí)根據(jù)參數(shù)的不同引用不同的構(gòu)造方法。(3)
成員方法和成員變量的覆蓋(Override)Java允許子類(lèi)對(duì)父類(lèi)的同名方法進(jìn)行重新定義或修改??梢杂胻his.和super.來(lái)區(qū)分是調(diào)用父類(lèi)還是子類(lèi)的。面向?qū)ο蟮奶卣鱆ava程序設(shè)計(jì)4.1面向?qū)ο蠹夹g(shù)簡(jiǎn)介4.2類(lèi)與對(duì)象類(lèi)是Java程序中基本的結(jié)構(gòu)單位所有Java語(yǔ)句出現(xiàn)在方法中,所有的方法都定義在類(lèi)中。語(yǔ)法格式如下:[類(lèi)修飾符]class<類(lèi)名>[extends<父類(lèi)名>][implements<接口列表>]{[<初始化語(yǔ)句塊>] [<成員變量>][<構(gòu)造方法>] [<成員方法>]…………}提示:類(lèi)實(shí)際上是定義一個(gè)模板,而對(duì)象是由這個(gè)模板產(chǎn)生的一個(gè)實(shí)例。類(lèi)的定義Java程序設(shè)計(jì)類(lèi)的定義Java程序設(shè)計(jì)對(duì)類(lèi)聲明的格式說(shuō)明如下:方括號(hào)“[]”中的內(nèi)容為可選項(xiàng),在下邊的格式說(shuō)明中意義相同,不再重述。2)訪問(wèn)限定符的作用是:確定該定義類(lèi)可以被哪些類(lèi)使用。可用的訪問(wèn)限定符如下:public表明是公有的。可以在任何Java程序中的任何對(duì)象里使用公有的類(lèi)。該限定符也用于限定成員變量和方法。如果定義類(lèi)時(shí)使用public進(jìn)行限定,則類(lèi)所在的文件名必須與此類(lèi)名相同(包括大小寫(xiě))private表明是私有的。該限定符可用于定義內(nèi)部類(lèi),也可用于限定成員變量和方法。protected表明是保護(hù)的。只能為其子類(lèi)所訪問(wèn)。默認(rèn)訪問(wèn)若沒(méi)有訪問(wèn)限定符,則系統(tǒng)默認(rèn)是友元的(friendly)。友元的類(lèi)可以被本類(lèi)包中的所有類(lèi)訪問(wèn)。3)修飾符的作用是:確定該定義類(lèi)如何被其他類(lèi)使用??捎玫念?lèi)修飾符如下:abstract說(shuō)明該類(lèi)是抽象類(lèi)。抽象類(lèi)不能直接生成對(duì)象。final說(shuō)明該類(lèi)是最終類(lèi),最終類(lèi)是不能被繼承的。4)class是關(guān)鍵字,定義類(lèi)的標(biāo)志(注意全是小寫(xiě))。5)類(lèi)名是該類(lèi)的名字,是一個(gè)Java標(biāo)識(shí)符,含義應(yīng)該明確。一般情況下單詞首字大寫(xiě)。6)父類(lèi)名跟在關(guān)鍵字“extends”后,說(shuō)明所定義的類(lèi)是該父類(lèi)的子類(lèi),它將繼承該父類(lèi)的屬性和行為。父類(lèi)可以是Java類(lèi)庫(kù)中的類(lèi),也可以是本程序或其他程序中定義的類(lèi)。7)接口名表是接口名的一個(gè)列表,跟在關(guān)鍵字“implements”后,說(shuō)明所定義的類(lèi)要實(shí)現(xiàn)列表中的所有接口。一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口,接口名之間以逗號(hào)分隔。如前所述,Java不支持多重繼承,類(lèi)似多重繼承的功能是靠接口實(shí)現(xiàn)的。4.2類(lèi)與對(duì)象類(lèi)的定義成員變量(屬性Attribute、字段Field)指定義在類(lèi)中方法外的變量或常量。成員變量的有效范圍是整個(gè)類(lèi),相當(dāng)于類(lèi)的全局變量。1.語(yǔ)法格式[訪問(wèn)限定符][修飾符]數(shù)據(jù)類(lèi)型成員變量名[=初始值];2.格式說(shuō)明1)訪問(wèn)限定符用于限定成員變量被其它類(lèi)中的對(duì)象訪問(wèn)的權(quán)限,和如上所述的類(lèi)訪問(wèn)限定符類(lèi)似。2)修飾符用來(lái)確定成員變量如何在其他類(lèi)中使用??捎玫男揎椃缦拢簊tatic表明聲明的成員變量為靜態(tài)的。靜態(tài)成員變量的值可以由該類(lèi)所有的對(duì)象共享,它屬于類(lèi),而不屬于該類(lèi)的某個(gè)對(duì)象。即使不創(chuàng)建對(duì)象,使用“類(lèi)名.靜態(tài)成員變量”也可訪問(wèn)靜態(tài)成員變量。final表明聲明的成員變量是一個(gè)最終變量,即常量。transient表明聲明的成員變量是一個(gè)暫時(shí)性成員變量。一般來(lái)說(shuō)成員變量是類(lèi)對(duì)象的一部分,與對(duì)象一起被存檔(保存),但暫時(shí)性成員變量不被保存。volatile表明聲明的成員變量在多線程環(huán)境下的并發(fā)線程中將保持變量的一致性。3)數(shù)據(jù)類(lèi)型可以是簡(jiǎn)單的數(shù)據(jù)類(lèi)型,也可以是類(lèi)、字符串等類(lèi)型,它表明成員變量的數(shù)據(jù)類(lèi)型。成員變量Java程序設(shè)計(jì)4.2類(lèi)與對(duì)象類(lèi)的定義3.類(lèi)成員變量(也叫類(lèi)屬性、類(lèi)變量、靜態(tài)變量、靜態(tài)屬性)類(lèi)成員變量指有static修飾的成員變量。類(lèi)成員變量屬于類(lèi)成員,當(dāng)類(lèi)載入內(nèi)存,即分配內(nèi)存和初始化,為該類(lèi)的所有對(duì)象所共享。在靜態(tài)方法和非靜態(tài)方法都可以直接通過(guò)“類(lèi)名.變量名”來(lái)訪問(wèn)類(lèi)成員變量。4.對(duì)象成員變量(也叫對(duì)象屬性、對(duì)象變量、非靜態(tài)變量、動(dòng)態(tài)變量等)對(duì)象成員變量屬于對(duì)象,只有在實(shí)例化對(duì)象時(shí)才能分配內(nèi)存和初始化,為該對(duì)象所有。靜態(tài)方法和非靜態(tài)方法訪問(wèn)對(duì)象成員變量時(shí),需要先new實(shí)例化一個(gè)對(duì)象,然后通過(guò)“對(duì)象名.變量名”的方式來(lái)訪問(wèn)。當(dāng)前對(duì)象可以省略,this.r->r。當(dāng)對(duì)象成員變量和局部變量重名時(shí),用this來(lái)區(qū)分。Java程序設(shè)計(jì)4.2類(lèi)與對(duì)象注意:在
Java中是允許把許多類(lèi)的聲明放在一個(gè)
Java中的,但是這些類(lèi)只能有一個(gè)類(lèi)被聲明為public,而且這個(gè)類(lèi)名必須和
Java文件名相同。對(duì)象Java程序設(shè)計(jì)對(duì)象的創(chuàng)建和使用1.聲明對(duì)象聲明對(duì)象的一般格式如下:類(lèi)名對(duì)象名;例如:Personp1,p2;//聲明了兩個(gè)人的對(duì)象聲明對(duì)象后,系統(tǒng)還沒(méi)有為對(duì)象分配存儲(chǔ)空間,只是建立了空的引用,通常稱之為空對(duì)象(null)。因此對(duì)象還不能使用。2.創(chuàng)建對(duì)象對(duì)象只有在創(chuàng)建后才能使用,創(chuàng)建對(duì)象的一般格式如下:對(duì)象名=new類(lèi)構(gòu)造方法名([實(shí)參表]);其中:類(lèi)構(gòu)造方法名就是類(lèi)名。new運(yùn)算符用于為對(duì)象分配存儲(chǔ)空間,它調(diào)用構(gòu)造方法,獲得對(duì)象的引用(對(duì)象在內(nèi)存中的地址)。例如:p1=newPerson("張英","女","23");注意:聲明對(duì)象和創(chuàng)建對(duì)象也可以合并為一條語(yǔ)名,其一般格式是:類(lèi)名對(duì)象名=new類(lèi)構(gòu)造方法名([實(shí)參表]);例如:Personp1=newPerson("張英","女","23");提示:new運(yùn)算符完成的實(shí)際工作是為對(duì)象分配內(nèi)存。4.2類(lèi)與對(duì)象對(duì)象Java程序設(shè)計(jì)3)引用對(duì)象引用成員變量的一般格式是:對(duì)象名.成員變量名在創(chuàng)建對(duì)象時(shí),某些屬性沒(méi)有給于確定的值,隨后可以修改這些屬性值。例如:Personp2=newPerson("麗麗","女","");對(duì)象p2的別名和出生年月都給了空值,我們可以下邊的語(yǔ)句修正它們:p2.age="20";4)舉例:創(chuàng)建人的對(duì)象,并并顯示對(duì)象的屬性值。publicclassPerson{ Stringname; Stringsex; Stringage;publicstaticvoidmain(Stringargs[]){ Personp1=newPerson();//聲明并創(chuàng)建一個(gè)對(duì)象p1//為對(duì)象附屬性值 ="張麗"; p1.sex="女"; p1.age="18";//輸出對(duì)象的屬性值
System.out.println("對(duì)象的信息為:\n姓名為:"++"\n性別為:"+p1.sex+"\n年齡為:"+p1.age); }4.2類(lèi)與對(duì)象任務(wù)實(shí)踐Java程序設(shè)計(jì)任務(wù)描述購(gòu)物系統(tǒng)后臺(tái)需要對(duì)會(huì)員信息進(jìn)行管理,需要設(shè)計(jì)會(huì)員信息類(lèi),信息中主要包括會(huì)員卡號(hào)、會(huì)員姓名、會(huì)員生日、會(huì)員積分,請(qǐng)用所學(xué)的知識(shí)將會(huì)員信息進(jìn)行輸出。任務(wù)分析:1、能進(jìn)行會(huì)員信息類(lèi)的設(shè)計(jì)與制作。2、能進(jìn)行會(huì)員對(duì)象的引用3、輸出并打印會(huì)員的詳細(xì)信息
實(shí)施步驟:1.創(chuàng)建data包,在包創(chuàng)建一個(gè)cust類(lèi)packageData;publicclassCust{//定義變量為public,可以在不同的包中應(yīng)用,否則只能在本包使用 publicint
custNo; publicStringcustName; publicStringcustBir; publicint
custScore;}任務(wù)實(shí)踐Java程序設(shè)計(jì)2.創(chuàng)建entity包,在包創(chuàng)建一個(gè)custinformaiton類(lèi),在類(lèi)中創(chuàng)建對(duì)象cust1,對(duì)對(duì)象賦值 Custcust1=newCust();cust1.custNo=12345;cust1.custName="張悅";cust1.custBir="12月10日";cust1.custScore=2000;3.輸出對(duì)象的值System.out.println("會(huì)員卡號(hào)為:"+cust1.custNo+"\n"+"會(huì)員姓名為:"+cust1.custName+"\n"+"會(huì)員生日為:"+cust1.custBir+"\n"+"會(huì)員積分為:"+cust1.custScore);
3.全部代碼如下:importData.Cust;publicclassCustInformation{ publicstaticvoidmain(String[]args){
Custcust1=newCust();cust1.custNo=12345;cust1.custName="張悅";cust1.custBir="12月10日";cust1.custScore=2000;
System.out.println("會(huì)員卡號(hào)為:"+cust1.custNo+"\n"+"會(huì)員姓名為:"+cust1.custName+"\n"+"會(huì)員生日為:"+cust1.custBir+"\n"+"會(huì)員積分為:"+cust1.custScore);}}4.3方法成員方法的定義Java程序設(shè)計(jì)成員方法用來(lái)實(shí)現(xiàn)類(lèi)的行為。方法也包含兩部分,方法聲明和方法體(操作代碼)。1.方法定義格式方法定義的一般格式如下:[訪問(wèn)限定符][修飾符]返回值類(lèi)型方法名([形式參數(shù)表])[throws異常表]{[變量聲明]//方法內(nèi)用的變量,局部變量[程序代碼]//方法的主體代碼[return[表達(dá)式]]//返回語(yǔ)句}方法2.成員方法的定義Java程序設(shè)計(jì)在方法聲明中:1)訪問(wèn)限定符如前所述。2)修飾符用于表明方法的使用方式??捎糜诜椒ǖ男揎椃缦拢篴bstract說(shuō)明該方法是抽象方法,即沒(méi)有方法體(只有“{}”引起的空體方法)。final說(shuō)明該方法是最終方法,即不能被重寫(xiě)。static說(shuō)明該方法是靜態(tài)方法,可通過(guò)類(lèi)名直接調(diào)用。native說(shuō)明該方法是本地化方法,它集成了其他語(yǔ)言的代碼。synchronized說(shuō)明該方法用于多線程中的同步處理。3)返回值類(lèi)型應(yīng)是合法的java數(shù)據(jù)類(lèi)型。方法可以返回值,也可不返回值,可視具體需要而定。如果方法沒(méi)有返回值,可用void(空值)指定,則return語(yǔ)句可以省略4)方法名是合法Java標(biāo)識(shí)符,聲明了方法的名字。5)形式參數(shù)表說(shuō)明方法所需要的參數(shù),有兩個(gè)以上參數(shù)時(shí),用“,”號(hào)分隔各參數(shù),說(shuō)明參數(shù)時(shí),應(yīng)聲明它的數(shù)據(jù)類(lèi)型。6)throws異常表定義在執(zhí)行方法的過(guò)程中可能拋出的異常對(duì)象的列表(放在后邊的異常的章節(jié)中討論)。方法體內(nèi)是完成類(lèi)行為的操作代碼。根據(jù)具體需要,有時(shí)會(huì)修改或獲取對(duì)象的某個(gè)屬性值,也會(huì)訪問(wèn)列出對(duì)象的相關(guān)屬性值。4.3方法方法2.成員方法的定義Java程序設(shè)計(jì)2.方法舉例:定義一個(gè)Person類(lèi)的成員方法(人類(lèi)的的行為可以有吃飯、睡覺(jué)等)。這樣在人這個(gè)類(lèi)中就可以進(jìn)行吃飯和睡覺(jué)的方法定義:
publicclassPerson{ Stringname; Stringsex; Stringage;//下邊是成員方法
publicvoideat(){
System.out.println("她在吃飯"); }
publicvoidsleep(){
System.out.println("她在睡覺(jué)"); }}這也是一個(gè)完成的類(lèi)的定義,包括類(lèi)的聲明、成員變量的聲明和成員方法的定義。4.3方法方法方法的調(diào)用原則:先定義(系統(tǒng)、第三方或用戶自定義),用import語(yǔ)句引入所在的類(lèi)后,即可調(diào)用。語(yǔ)法格式:調(diào)用者.方法名([實(shí)際參數(shù)表]);說(shuō)明:實(shí)參的個(gè)數(shù)、順序、類(lèi)型要和形式參數(shù)一一對(duì)應(yīng)。調(diào)用其它包中的方法時(shí),需要先用import語(yǔ)句引入,再調(diào)用。調(diào)用類(lèi)方法的方法:包路徑.類(lèi)名.方法名([實(shí)際參數(shù)表]);或當(dāng)用import語(yǔ)句引入其它包中的類(lèi)時(shí),包路徑可以省略;當(dāng)前類(lèi)可以省略。調(diào)用對(duì)象方法的方法:先實(shí)例化一個(gè)對(duì)象,然后通過(guò)“對(duì)象名.方法名([實(shí)參數(shù)表]);”當(dāng)前對(duì)象this可以省略。3.成員方法的調(diào)用Java程序設(shè)計(jì)4.3方法方法數(shù)學(xué)上的遞歸思想簡(jiǎn)單、直接、有效,用計(jì)算機(jī)編程實(shí)現(xiàn)時(shí)十分方便,易于理解。缺點(diǎn)是是內(nèi)存消耗大、效率較低。為防止出現(xiàn)方法的無(wú)限循環(huán)遞歸調(diào)用,要求使用遞歸調(diào)用的前提是通過(guò)遞歸能夠不斷縮小問(wèn)題規(guī)模,而且縮小到一定規(guī)模有一個(gè)結(jié)束點(diǎn)。以階乘為例說(shuō)明遞歸的用法數(shù)學(xué)上自然數(shù)n(n>1)階乘的定義有兩種:傳統(tǒng)定義:n!=1×2×3×……×n遞歸定義:n!=n×(n-1)!,1!=14.成員方法的遞歸調(diào)用Java程序設(shè)計(jì)4.3方法方法Personp1=newPerson();1.構(gòu)造方法定義構(gòu)造方法(Constructor)是Java類(lèi)中一種特殊方法,是用來(lái)生成實(shí)例對(duì)象,并為對(duì)象分配內(nèi)存空間和成員變量初始化(數(shù)值類(lèi)型byte,short,int,long,float,double初始化為0,boolean初始化為false,char初始化為’\0’,引用類(lèi)型全部初始化為null)。語(yǔ)法格式如下:[public]類(lèi)名([形式參數(shù)列表]){[方法體]}
5.構(gòu)造方法Java程序設(shè)計(jì)4.3方法方法2.默認(rèn)構(gòu)造方法(無(wú)參構(gòu)造):Person類(lèi)的默認(rèn)構(gòu)造方法為:publicPerson(){}實(shí)現(xiàn)的實(shí)際效果如下:PublicPerson(){name=null;sex=null;age=0;}Java程序設(shè)計(jì)3.有參構(gòu)造方法:為定義的Person類(lèi)中添加帶有參數(shù)的構(gòu)造方法:publicPerson(Stringname,Stringsex,Stringage){ =name; this.sex=sex; this.age=age; }4.3方法注意:構(gòu)造函數(shù)的作用是生成對(duì)象,并對(duì)對(duì)象的實(shí)例變量進(jìn)行初始化。系統(tǒng)自帶的默認(rèn)構(gòu)造函數(shù)把所有的數(shù)字變量設(shè)為
0,把所有的boolean型變量設(shè)為
false,
把所有的對(duì)象變量都設(shè)為
null。方法Java程序設(shè)計(jì)4.構(gòu)造方法舉例://定義一個(gè)類(lèi)PersonpublicclassPerson{ Stringname; Stringsex; Stringage;//無(wú)參構(gòu)造方法,輸出“構(gòu)造方法”語(yǔ)句(此構(gòu)造方法不是默認(rèn)構(gòu)造方法)publicPerson(){
System.out.println("無(wú)參構(gòu)造方法"); }//有參構(gòu)造方法定義,輸出傳遞的參數(shù)值publicPerson(Stringname,Stringsex,Stringage){ =name;
this.sex=sex;
this.age=age;
System.out.println("有參構(gòu)造方法");
System.out.println("姓名為:"+name+"\n性別為:"+sex+"\n年齡為:"+age); }publicstaticvoidmain(Stringargs[]){//實(shí)例化一個(gè)Person類(lèi)對(duì)象p1,會(huì)自動(dòng)調(diào)用Person中的無(wú)參構(gòu)造方法 Personp1=newPerson();//實(shí)例化一個(gè)Person類(lèi)對(duì)象p2,會(huì)自動(dòng)調(diào)用Person中的有參構(gòu)造方法,并將進(jìn)行傳遞參數(shù) Personp2=newPerson("張麗","女","20"); }}輸出結(jié)果:無(wú)參構(gòu)造方法有參構(gòu)造方法姓名為:張麗性別為:女年齡為:20
4.3方法方法的調(diào)用1.靜態(tài)方法調(diào)用所謂靜態(tài)方法,就是以“static”修飾符說(shuō)明的方法。一般我們把靜態(tài)方法稱之為類(lèi)方法,在不創(chuàng)建對(duì)象的前提下,可以直接引用靜態(tài)方法。引用的一般格式為:類(lèi)名.靜態(tài)方法名([實(shí)參表])或者靜態(tài)方法名([實(shí)參表])
Java程序設(shè)計(jì)publicclassPerson{ Stringname; Stringsex; Stringage;//在類(lèi)中創(chuàng)建靜態(tài)方法eat()publicstaticvoideat(){System.out.println("她在吃飯"); }//main方法,作為類(lèi)的主入口publicstaticvoidmain(Stringargs[]){eat();//直接方法即可調(diào)用方法Person.eat();//直接用類(lèi)名.方法即可調(diào)用方法 } }輸出結(jié)果為:她在吃飯4.3方法方法的調(diào)用2.非靜態(tài)方法調(diào)用非靜態(tài)方法稱之為類(lèi)的實(shí)例方法,它在使用的時(shí)候必須實(shí)例化一個(gè)該類(lèi)的對(duì)象,然后通過(guò)對(duì)像訪問(wèn)。其引用的一般格式為:類(lèi)名
對(duì)象名=new類(lèi)構(gòu)造方法名([實(shí)參表]);對(duì)象名.非靜態(tài)方法名([實(shí)參表])
注意:使用靜態(tài)方法的時(shí)候需要注意以下兩點(diǎn):靜態(tài)方法不能直接訪問(wèn)非靜態(tài)變量。非靜態(tài)方法可以直接訪問(wèn)靜態(tài)變量。Java程序設(shè)計(jì)publicclassPerson{ Stringname; Stringsex; Stringage;//在類(lèi)中創(chuàng)建非靜態(tài)方法eat()
publicvoideat() {System.out.println("她在吃飯"); }publicstaticvoidmain(Stringargs[]){//調(diào)用類(lèi)Person的非靜態(tài)方法eat(),必須先創(chuàng)建Person類(lèi)的對(duì)象p1Personp1=newPerson();//利用對(duì)象p1.eat();進(jìn)行方法調(diào)用
p1.eat(); } }4.3方法方法的調(diào)用舉例:Java程序設(shè)計(jì)主入口Main調(diào)用Login類(lèi)的登錄界面1.登錄2.退出調(diào)用1登錄方法,進(jìn)入系統(tǒng)界面1.會(huì)員信息管理2.購(gòu)物結(jié)算3.真情回饋4.注銷(xiāo)調(diào)用1會(huì)員信息管理方法,進(jìn)入會(huì)員管理界面1.添加會(huì)員信息2.修改會(huì)員信息3.查詢會(huì)員信息4.顯示會(huì)員信息調(diào)用1會(huì)員信息管理類(lèi)中的add方法Loginlogin=newLogin();Login.mainlogin();Loginlogin=newLogin();Login.custlogin();Loginlogin=newLogin();Login.custinformaiton();custOperationcustoperation=newcustOperation();Custoperation.add();4.3方法Java文檔注釋>javadoc–ddoc–encodingutf8–author–versionBinarySearch.java-d生成API文檔的文件夾相對(duì)路徑-encodingutf81.利用javadoc.exe生成API文檔的方法Java程序設(shè)計(jì)Java文檔注釋File->Export…->Java->javadocjavadoc默認(rèn)讀取操作系統(tǒng)采用的字符編碼(通過(guò)環(huán)境變量,中文windows默認(rèn)GBK)。如果和MyEclipse中編輯Java源文件的文本編輯器編碼不一致,就會(huì)出現(xiàn)“編碼GBK的不可映射字符”的異常信息。解決辦法:在Workspace或project屬性中將字符編碼設(shè)置為GBK;在對(duì)話框的"ExtraJavadocoptions"文本框里面加上:-encodingUTF-8-charsetUTF-82.在MyEclipse中生成API文檔的方法Java程序設(shè)計(jì)Java程序設(shè)計(jì)4.4Java.lang包中的常見(jiàn)類(lèi)Object類(lèi)是所有Java類(lèi)的根父類(lèi),Java中的每一個(gè)類(lèi)都是Object直接或間接子類(lèi)。在Object類(lèi)中已經(jīng)定義了的所有Java類(lèi)經(jīng)常使用的基礎(chǔ)性的方法,子類(lèi)可以直接使用或覆蓋后使用。1.protectedObjectclone()基本數(shù)據(jù)類(lèi)型變量的備份。使用方法見(jiàn)示例程序。2.publicinthashCode()返回該對(duì)象的哈希碼。3.publicbooleanequals(Objectobj))功能默認(rèn)與關(guān)系運(yùn)算符==相同,比較兩個(gè)對(duì)象的地址是否相等。String、Integer、Double等類(lèi)已經(jīng)覆蓋了Object類(lèi)中的equals()方法:比較兩個(gè)對(duì)象的內(nèi)容是否相等。(見(jiàn)示例程序)4.publicStringtoString()返回該對(duì)象的字符串表示。5.protectedvoidfinalize()垃圾回收器。Object類(lèi)Java程序設(shè)計(jì)Class類(lèi)的實(shí)例表示正在運(yùn)行的Java應(yīng)用程序中的類(lèi)和接口。枚舉是一種類(lèi),注釋是一種接口,其它如數(shù)組、八種基本數(shù)據(jù)類(lèi)型、void都被映射成Class的一個(gè)對(duì)象。Class對(duì)象中包含類(lèi)和接口定義信息和成員信息(構(gòu)造方法、屬性、一般方法、注解等)。Class沒(méi)有公共構(gòu)造方法。當(dāng)加載類(lèi)時(shí),Class對(duì)象是在加載類(lèi)時(shí)由JVM以及通過(guò)調(diào)用類(lèi)加載器中的defineClass()自動(dòng)構(gòu)造的。Class類(lèi)是Java反射技術(shù)的基礎(chǔ)。幾乎所有的框架Hibernate、Spring、Struts、JUnit都用到了反射技術(shù)。反射技術(shù)就是把Java中的元素(類(lèi)、接口、數(shù)組構(gòu)造方法、屬性、一般方法、注解等)映射成Java的類(lèi)。
Class類(lèi)Java程序設(shè)計(jì)4.4Java.lang包中的常見(jiàn)類(lèi)1.System類(lèi)System類(lèi)提供了對(duì)外部定義的屬性和環(huán)境變量的訪問(wèn);加載文件和庫(kù)的方法;還有快速?gòu)?fù)制數(shù)組的一部分的實(shí)用方法。System類(lèi)的常用屬性:publicstaticfinalInputStreamin:標(biāo)準(zhǔn)輸入設(shè)備-鍵盤(pán);publicstaticfinalPrintStreamout:標(biāo)準(zhǔn)輸出設(shè)備-屏幕;publicstaticfinalPrintStreamerr:標(biāo)準(zhǔn)出錯(cuò)設(shè)備。System、Runtime類(lèi)Java程序設(shè)計(jì)?2016版Java程序設(shè)計(jì)4.4Java.lang包中的常見(jiàn)類(lèi)System類(lèi)的常用方法:publicstaticlongcurrentTimeMillis():與Date類(lèi)提供getTime()、和Calendar類(lèi)getTimeInMillis()都提供了獲取毫秒數(shù)的方法。publicstaticMap<String,String>getenv():取操作系統(tǒng)的環(huán)境變量,相當(dāng)于Dos命令set。publicstaticPropertiesgetProperties():Properties是Hashtable的子類(lèi)。publicstaticvoidexit(intstatus):終止當(dāng)前正在運(yùn)行的Java虛擬機(jī),status狀態(tài)碼取0時(shí)代表正常終止,否則異常終止,常用于GUI應(yīng)用程序。publicstaticvoidgc():申請(qǐng)進(jìn)行JVM進(jìn)行垃圾回收。(見(jiàn)示例程序)System、Runtime類(lèi)Java程序設(shè)計(jì)?2016版Java程序設(shè)計(jì)4.4Java.lang包中的常見(jiàn)類(lèi)5.1Java.lang包中的常見(jiàn)類(lèi)2.RunTime類(lèi)Runtime類(lèi)用于表示JVM運(yùn)行時(shí)的狀態(tài)。Runtime類(lèi)的常用方法:publicstaticRuntimegetRuntime(),應(yīng)用程序不能通過(guò)new+構(gòu)造方法方式來(lái)創(chuàng)建Runtime類(lèi)實(shí)例,只能通過(guò)System.getRuntime()的方式來(lái)創(chuàng)建Runtime類(lèi)實(shí)例。publicvoidexit(intstatus)publicProcessexec(Stringcommand)publiclongfreeMemory():當(dāng)前JVM可用空閑內(nèi)存數(shù)。ubliclongmaxMemory():當(dāng)前JVM可用最大內(nèi)存數(shù)。publicvoidgc()System、Runtime類(lèi)Java程序設(shè)計(jì)?2016版Java程序設(shè)計(jì)4.4Java.lang包中的常見(jiàn)類(lèi)5.1Java.lang包中的常見(jiàn)類(lèi)1.java.lang.Math類(lèi)提供常用的數(shù)學(xué)常量和數(shù)學(xué)方法。Math類(lèi)中所有的變量和方法都是static和final,可以直接使用“類(lèi)名.方法”的形式調(diào)用。常量:Math.PI和Math.E三角函數(shù):sin()、cos()、tan()、asin()、acos()、atan()……數(shù)學(xué)函數(shù):log()、exp()、pow()、max()、min()、abs()……提示:Math類(lèi)提供了三角函數(shù)及其它的數(shù)學(xué)計(jì)算方法,它們都是static型的,在使用時(shí)直接作為類(lèi)方法使用即可,不需要專門(mén)創(chuàng)建Math類(lèi)的對(duì)象。2.java.util.Random類(lèi)java.lang.Math.random()方法只能產(chǎn)生0.0≤x≤1.0范圍內(nèi)的double的隨機(jī)值。但java.util.Random類(lèi)的對(duì)象可以產(chǎn)生隨機(jī)的boolean,byte,float,double,int,long和高斯值。Math類(lèi)和java.util.Random類(lèi)Java程序設(shè)計(jì)?2016版Java程序設(shè)計(jì)4.4Java.lang包中的常見(jiàn)類(lèi)5.1Java.lang包中的常見(jiàn)類(lèi)publicabstractclassNumberimplementsSerializable抽象類(lèi)Number是BigDecimal、BigInteger、Byte、Double、Float、Integer、Long和Short類(lèi)的超類(lèi)。包含六個(gè)抽象方法,Number的子類(lèi)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 甲苯精餾塔課程設(shè)計(jì)結(jié)論
- 網(wǎng)絡(luò)營(yíng)銷(xiāo)微信課程設(shè)計(jì)
- 醫(yī)院設(shè)備管理制度
- 波浪能發(fā)電裝置課程設(shè)計(jì)
- 舞蹈機(jī)構(gòu)古典舞課程設(shè)計(jì)
- 用天正暖通進(jìn)行課程設(shè)計(jì)
- 會(huì)計(jì)師工作總結(jié)細(xì)心核算確保賬目準(zhǔn)確無(wú)誤
- 數(shù)字時(shí)代品牌營(yíng)銷(xiāo)的新趨勢(shì)計(jì)劃
- 日常教學(xué)反思與總結(jié)計(jì)劃
- 裝修合同簡(jiǎn)易版
- 通力電梯KCE電氣系統(tǒng)學(xué)習(xí)指南
- 風(fēng)電場(chǎng)崗位任職資格考試題庫(kù)大全-下(填空題2-2)
- 九年級(jí)數(shù)學(xué)特長(zhǎng)生選拔考試試題
- 幼兒園交通安全宣傳課件PPT
- 門(mén)窗施工組織設(shè)計(jì)與方案
- 健身健美(課堂PPT)
- (完整版)財(cái)務(wù)管理學(xué)課后習(xí)題答案-人大版
- 錨索試驗(yàn)總結(jié)(共11頁(yè))
- 移動(dòng)腳手架安全交底
- 人教版“課標(biāo)”教材《統(tǒng)計(jì)與概率》教學(xué)內(nèi)容、具體目標(biāo)和要求
- 矩形鋼板水箱的設(shè)計(jì)與計(jì)算
評(píng)論
0/150
提交評(píng)論