一、首先我們要弄清楚什么是類?什么是對(duì)象?
類——是抽象的。是具有共同屬性和服務(wù)的對(duì)象的抽象(或集合),其內(nèi)部包括屬性和服務(wù)兩個(gè)主要部分;
對(duì)象——是具體的。是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。
類與對(duì)象的關(guān)系就如模具和鑄件的關(guān)系,類的實(shí)例化結(jié)果就是對(duì)象,而對(duì)一類對(duì)象的抽象就是類。
二、類的定義
1.Java中定義類的通用格式:修飾符class類名{成員}
理解:修飾符是可選的,有public(公共)或不加;
class——關(guān)鍵詞,必須有;
類名——首字母大寫(xiě),且按駝峰命名規(guī)則起名,必須有;
成員——有成員屬性和成員方法,下面會(huì)詳細(xì)講解。
三、成員(fields)定義
1.成員屬性定義
格式:[public|private|protected][static][final]類型成員名
理解:類型和成員名是必須的,其他都是可選項(xiàng);
public公共成員——不同包也可訪問(wèn);
private私有成員——只能在本類中訪問(wèn);
protected保護(hù)成員——同包及子類可訪問(wèn);
上面三個(gè)都不加默認(rèn)——同包可訪問(wèn);
static靜態(tài)成員——屬于類的,它不屬于具體的對(duì)象,該類的所有對(duì)象共享該成員。所有不是static的對(duì)象的對(duì)象都要實(shí)例化才能訪問(wèn)。
Static成員或方法直接通過(guò)類名訪問(wèn)(通過(guò):類名.引用);
final成員——最終成員,其值不能被改變;
final類——最終類,不能被繼承;
final方法——最終方法,該方法不能被重寫(xiě);
注意:final和public可以加載類上面,而static不能。
2.成員方法定義
格式:
[public|private|protected]?[static]?[final]?類型?方法名(形參){ 方法體; return表達(dá)式; }
理解:類型(首字母大寫(xiě))(必須):指返回值的類型(既可以是基本類型,也可以是對(duì)象類型);
方法名(必須):做什么;
方法體:定義了方法的具體內(nèi)容,通常起到兩個(gè)作用:一是圍繞類的屬性進(jìn)行各種操作,二是與其他的類與對(duì)象進(jìn)行數(shù)據(jù)交流、消息傳遞的操作;
形參(可選):只有兩種類型:基本類型和對(duì)象類型。方法調(diào)用中參數(shù)用來(lái)傳遞數(shù)值、傳遞引用,同時(shí)方法還可以嵌套、遞歸調(diào)用;
return除了能返回值,還可以結(jié)束此方法體,值得注意的是:方法體中如果指定了非void的返回類型,方法中就必須包含一條return語(yǔ)句保證任何情況下都有返回?cái)?shù)值,
return語(yǔ)句后面不能跟任何表達(dá)式。
注意:在一個(gè)方法中定義另一個(gè)方法將產(chǎn)生語(yǔ)法錯(cuò)誤(方法不能嵌套定義,類可以),最好避免局部變量”屏蔽“實(shí)例(成員)變量,在一個(gè)類中不使用同名標(biāo)識(shí)符就可以做到這一點(diǎn)。
若同名了成員變量被屏蔽,此時(shí)又要訪問(wèn)成員變量,可用this.成員變量。
(理解:1.局部變量:在方法中聲明或定義的變量,當(dāng)此方法被調(diào)用時(shí)創(chuàng)建變量,當(dāng)此方法執(zhí)行完時(shí)變量被釋放;2.實(shí)例變量:在所有方法之外但在類體中聲明或定義的變量,
有效范圍是整個(gè)類;3.屏蔽不是覆蓋)
四、至此一個(gè)類就算創(chuàng)建好了,當(dāng)然你可以定義只包含成員變量或只包含方法的類,如果一個(gè)類只有成員變量,那么這個(gè)類不能干任何事,要讓類能做事,必須為這個(gè)類定義方法,
因?yàn)轭惖姆椒梢宰屍渌愅ㄟ^(guò)對(duì)象來(lái)調(diào)用,所以又稱為類的接口。
五、簡(jiǎn)例如下:
public?class?Student?{ //創(chuàng)建了一個(gè)名為Student的公共類????public?String?name;//定義name屬性???在String前加上public,則其他包也能調(diào)用此屬性,不加則無(wú)法調(diào)用????public?void?study(){????????System.out.println("我是學(xué)生"+name+",正在學(xué)習(xí)");????}???//寫(xiě)一個(gè)公共方法study()????public?static?void?hi(){????????System.out.println("hi,everybody!");????}???//寫(xiě)一個(gè)靜態(tài)的公共方法hi()}
以上就是長(zhǎng)沙一度軟件培訓(xùn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ)Java如何創(chuàng)建類”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。