類:類是組成Java程序的基本要素。類封裝了一類對(duì)象的狀態(tài)和方法。類是用來(lái)定義對(duì)象的模板。 類的實(shí)現(xiàn)包括兩部分:類聲明和類體;靖袷綖椋 class 類名 { 類體的內(nèi)容 } class是關(guān)鍵字,用來(lái)定義類!癱lass 類名”是類的聲明部分,類名必須是合法的Java標(biāo)識(shí)符。兩個(gè)大括號(hào)以及之間的內(nèi)容是類體。
構(gòu)建方法與對(duì)象的創(chuàng)建:類是面向?qū)ο笳Z(yǔ)言中最重用的一種數(shù)據(jù)類型,那么就可以用它來(lái)聲明變量。在面向?qū)ο笳Z(yǔ)言中,用類聲明的變量被稱作對(duì)象。和基本數(shù)據(jù)類型不同,在用類聲明對(duì)象后,還必須要?jiǎng)?chuàng)建對(duì)象,即為聲明的對(duì)象分配變量(確定對(duì)象所具有的屬性),當(dāng)使用一個(gè)類創(chuàng)建一個(gè)對(duì)象時(shí),也稱給出了這個(gè)類的一個(gè)實(shí)例。通俗的講,類是創(chuàng)建對(duì)象的“模板”,沒(méi)有類就沒(méi)有對(duì)象。構(gòu)造方法和對(duì)象的創(chuàng)建密切相關(guān)。 構(gòu)造方法:構(gòu)造方法是一種特殊方法,它的名字必須與它所在的類的名字完全相同,而且沒(méi)有類型。 允許一個(gè)類中編寫若干個(gè)構(gòu)造方法,但必須保證他們的參數(shù)不同,即參數(shù)的個(gè)數(shù)不同,或者是參數(shù)的類型不同。 需要注意的是 (1) 如果類中沒(méi)有編寫構(gòu)造方法,系統(tǒng)會(huì)默認(rèn)該類只有一個(gè)構(gòu)造方法,該默認(rèn)的構(gòu)造方法是無(wú)參數(shù)的,且方法體中沒(méi)有語(yǔ)句。 (2)如果類里定義了一個(gè)或多個(gè)構(gòu)造方法,那么Java不提供默認(rèn)的構(gòu)造方法 。 創(chuàng)建對(duì)象:1.對(duì)象的聲明 一般格式為: 類的名字 對(duì)象名字;如: Vehicle car; 這里Vehicle是一個(gè)類的名字,car是我們聲明的對(duì)象的名字。
2.為聲明的對(duì)象分配內(nèi)存 使用new運(yùn)算符和類的構(gòu)造方法為聲明的對(duì)象分配變量,即創(chuàng)建對(duì)象。如果類中沒(méi)有構(gòu)造方法,系統(tǒng)會(huì)調(diào)用默認(rèn)的構(gòu)造方法,默認(rèn)的構(gòu)造方法是無(wú)參數(shù)的,且方法體中沒(méi)有語(yǔ)句。如: car=new Vehiclee(); 使用對(duì)象:對(duì)象不僅可以操作自己的變量改變狀態(tài),而且能調(diào)用類中的方法產(chǎn)生一定的行為。 通過(guò)使用運(yùn)算符“.”,對(duì)象可以實(shí)現(xiàn)對(duì)自己變量的訪問(wèn)和方法的調(diào)用。 1.對(duì)象操作自己的變量(對(duì)象的屬性) 對(duì)象.變量; 2.對(duì)象調(diào)用類中的方法(對(duì)象的功能) 對(duì)象.方法; 3.體現(xiàn)封裝 當(dāng)對(duì)象調(diào)用方法時(shí),方法中出現(xiàn)的成員變量就是指分配給該對(duì)象的變量。 對(duì)象的引用和實(shí)體:類是體現(xiàn)封裝的一種數(shù)據(jù)類型,類聲明的變量稱做對(duì)象,對(duì)象中負(fù)責(zé)存放引用,以確保對(duì)象可以操作分配給該對(duì)象的變量以及調(diào)用類中的方法。分配給對(duì)象的變量習(xí)慣地稱做對(duì)象的實(shí)體。 1.避免使用空對(duì)象 沒(méi)有實(shí)體的對(duì)象稱作空對(duì)象,空對(duì)象不能使用,即不能讓一個(gè)空對(duì)象去調(diào)用方法產(chǎn)生行為。 2.垃圾收集 一個(gè)類聲明的兩個(gè)對(duì)象如果具有相同的引用,那么二者就具有完全相同的實(shí)體,而且Java有所謂“垃圾收集”機(jī)制,這種機(jī)制周期地檢測(cè)某個(gè)實(shí)體是否已不再被任何對(duì)象所擁有(引用),如果發(fā)現(xiàn)這樣的實(shí)體,就釋放實(shí)體占有的內(nèi)存。
|