更新時(shí)間:2020-09-09 來(lái)源:黑馬程序員 瀏覽量:
在面向?qū)ο蟮乃枷胫?,最核心的就是?duì)象。為了在程序中創(chuàng)建對(duì)象,首先需要定義一個(gè)類。類是對(duì)象的抽象,它用于描述一組對(duì)象的共同特征和行為,例如人都有姓名、年齡、性別等特征,還有學(xué)習(xí)、工作、購(gòu)物等行為。以面向?qū)ο蟮木幊趟枷?,就可以將某一類中共同的特征和行為封裝起來(lái),把共同特征作為類的屬性(也叫成員變量),把共同行為作為類的方法(也叫成員方法)。本節(jié)將對(duì)Java中類的定義格式、類的成員變量和成員方法進(jìn)行詳細(xì)講解。
Java中的類是通過(guò)class關(guān)鍵字來(lái)定義的,其語(yǔ)法格式如下:
[修飾符] class 類名 [extends 父類名] [implements 接口名]{ // 類體,包括類的成員變量和成員方法 }
在上述語(yǔ)法格式中,class前面的修飾符可以是public,也可以不寫(xiě)(默認(rèn));class之后是定義的類名,類名首字母要大寫(xiě),并且其命名要符合標(biāo)識(shí)符的命名規(guī)則;extends和implements是可選項(xiàng),均為Java中的關(guān)鍵字,其中extends用于說(shuō)明所定義的類繼承于哪個(gè)父類,implements關(guān)鍵字用于說(shuō)明當(dāng)前類實(shí)現(xiàn)了哪些接口(這兩個(gè)關(guān)鍵字將在下一章詳細(xì)講解,這里作為了解即可)。后面大括號(hào){}中的內(nèi)容是類體,即需要在類中編寫(xiě)的內(nèi)容,它主要包括類的成員變量和成員方法。
類的成員變量也被稱作類的屬性,它主要用于描述對(duì)象的特征。例如,一個(gè)人的基本屬性特征有姓名、年齡、職業(yè)、住址等信息,在類中要使用姓名、年齡等信息時(shí),就需要先將它們聲明(定義)為成員變量。
聲明(定義)成員變量的語(yǔ)法格式如下:
聲明(定義)成員變量的語(yǔ)法格式如下: [修飾符] 數(shù)據(jù)類型 變量名 [ = 值];
在上述語(yǔ)法格式中,修飾符為可選項(xiàng),用于指定變量的訪問(wèn)權(quán)限,其值可以是public、private等;數(shù)據(jù)類型可以為Java中的任意類型;變量名是變量的名稱,必須符合標(biāo)識(shí)符的命名規(guī)則,它可以賦予初始值,也可以不賦值。通常情況下,將未賦值(沒(méi)有被初始化)的變量稱之為聲明變量,而賦值(初始化)的變量稱之為定義變量。
例如,姓名和年齡屬性在類中的聲明和定義方式如下:
private String name; // 聲明一個(gè)String類型的name; private int age = 20; // 定義一個(gè)int類型的age,并賦值為20;
成員方法也被稱為方法,類似于C語(yǔ)言中的函數(shù),它主要用于描述對(duì)象的行為。一個(gè)人的基本行為特征有吃飯、睡覺(jué)、運(yùn)動(dòng)等,這些行為在Java類中,就可以定義成方法。
定義一個(gè)方法的語(yǔ)法格式如下:
[修飾符] [返回值類型] 方法名([參數(shù)類型 參數(shù)名1,參數(shù)類型 參數(shù)名2,...]){ //方法體 ... return 返回值; //當(dāng)方法的返回值類型為void時(shí),return及其返回值可以省略 }
上面語(yǔ)法格式中,[]中的內(nèi)容表示可選,各部分的具體說(shuō)明如下:
● 修飾符:方法的修飾符比較多,有對(duì)訪問(wèn)權(quán)限進(jìn)行限定的(如public、protected、private),有靜態(tài)修飾符static,還有最終修飾符final等,這些修飾符在后面的學(xué)習(xí)過(guò)程中會(huì)逐步講解。
● 返回值類型:用于限定方法返回值的數(shù)據(jù)類型,如果不需要返回值,可以使用void關(guān)鍵字。
● 參數(shù)類型:用于限定調(diào)用方法時(shí)傳入?yún)?shù)的數(shù)據(jù)類型。
● 參數(shù)名:是一個(gè)變量,用于接收調(diào)用方法時(shí)傳入的數(shù)據(jù)。
● return關(guān)鍵字:用于結(jié)束方法以及返回方法指定類型的值,當(dāng)方法的返回值類型為void時(shí),return及其返回值可以省略。
● 返回值:被return語(yǔ)句返回的值,該值會(huì)返回給調(diào)用者。
在上述語(yǔ)法中,{}之前的內(nèi)容被稱之為方法簽名(或方法頭),而{}中的執(zhí)行語(yǔ)句被稱為方法體。需要注意的是,方法簽名中的“[參數(shù)類型 參數(shù)名1,參數(shù)類型 參數(shù)名2,...]”被稱作參數(shù)列表,它用于描述方法在被調(diào)用時(shí)需要接收的參數(shù),如果方法不需要接收任何參數(shù),則參數(shù)列表為空,即()內(nèi)不寫(xiě)任何內(nèi)容。關(guān)于上述語(yǔ)法結(jié)構(gòu)中的修飾符內(nèi)容,將在后面進(jìn)行逐一的講解,這里讀者只需了解如何定義類、成員變量和成員方法即可。
了解了類及其成員的定義方式后,接下來(lái)通過(guò)一個(gè)具體的案例來(lái)演示一下類的定義,如文件1所示。
文件1 Person.java
public class Person { int age; // 聲明int類型的變量age // 定義 speak() 方法 void speak() { System.out.println("我今年" + age + "歲了!"); } }
文件1中定義了一個(gè)Person類,并在類中定義了類的成員變量和成員方法。其中,Person是類名,age是類的成員變量,speak()是類的成員方法。在成員方法speak()中可以直接訪問(wèn)成員變量age。
在Java中,定義在類中的變量被稱為成員變量,定義在方法中的變量被稱為局部變量。如果在某一個(gè)方法中定義的局部變量與成員變量同名,這種情況是允許的,此時(shí)方法中通過(guò)變量名訪問(wèn)到的是局部變量,而并非成員變量,請(qǐng)閱讀下面的示例代碼:
public class Person { int age = 10; // 類中定義的變量被稱作成員變量 void speak() { int age = 30; // 方法內(nèi)部定義的變量被稱作局部變量 System.out.println("我今年" + age + "歲了!"); } }
上面的代碼中,speak()方法中的打印語(yǔ)句所訪問(wèn)的變量age,就是局部變量,也就是說(shuō),當(dāng)有另外一個(gè)程序來(lái)調(diào)用speak()方法時(shí),輸出的值為30,而不是10。
猜你喜歡: