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