首頁技術(shù)文章正文

Java對象和類的定義以及語法

更新時間:2020-09-09 來源:黑馬程序員 瀏覽量:

在面向?qū)ο蟮乃枷胫?,最核心的就是對象。為了在程序中?chuàng)建對象,首先需要定義一個類。類是對象的抽象,它用于描述一組對象的共同特征和行為,例如人都有姓名、年齡、性別等特征,還有學(xué)習(xí)、工作、購物等行為。以面向?qū)ο蟮木幊趟枷?,就可以將某一類中共同的特征和行為封裝起來,把共同特征作為類的屬性(也叫成員變量),把共同行為作為類的方法(也叫成員方法)。本節(jié)將對Java中類的定義格式、類的成員變量和成員方法進行詳細講解。

1.類的定義格式

Java中的類是通過class關(guān)鍵字來定義的,其語法格式如下:

[修飾符] class 類名 [extends 父類名] [implements 接口名]{
    // 類體,包括類的成員變量和成員方法
 }


在上述語法格式中,class前面的修飾符可以是public,也可以不寫(默認);class之后是定義的類名,類名首字母要大寫,并且其命名要符合標識符的命名規(guī)則;extends和implements是可選項,均為Java中的關(guān)鍵字,其中extends用于說明所定義的類繼承于哪個父類,implements關(guān)鍵字用于說明當(dāng)前類實現(xiàn)了哪些接口(這兩個關(guān)鍵字將在下一章詳細講解,這里作為了解即可)。后面大括號{}中的內(nèi)容是類體,即需要在類中編寫的內(nèi)容,它主要包括類的成員變量和成員方法。

2.聲明(定義)成員變量

類的成員變量也被稱作類的屬性,它主要用于描述對象的特征。例如,一個人的基本屬性特征有姓名、年齡、職業(yè)、住址等信息,在類中要使用姓名、年齡等信息時,就需要先將它們聲明(定義)為成員變量。

聲明(定義)成員變量的語法格式如下:

聲明(定義)成員變量的語法格式如下:
[修飾符] 數(shù)據(jù)類型 變量名 [ = 值];


在上述語法格式中,修飾符為可選項,用于指定變量的訪問權(quán)限,其值可以是public、private等;數(shù)據(jù)類型可以為Java中的任意類型;變量名是變量的名稱,必須符合標識符的命名規(guī)則,它可以賦予初始值,也可以不賦值。通常情況下,將未賦值(沒有被初始化)的變量稱之為聲明變量,而賦值(初始化)的變量稱之為定義變量。

例如,姓名和年齡屬性在類中的聲明和定義方式如下:

private String name; // 聲明一個String類型的name;

private int age = 20; // 定義一個int類型的age,并賦值為20;

3.聲明(定義)成員方法

成員方法也被稱為方法,類似于C語言中的函數(shù),它主要用于描述對象的行為。一個人的基本行為特征有吃飯、睡覺、運動等,這些行為在Java類中,就可以定義成方法。

定義一個方法的語法格式如下:

[修飾符] [返回值類型] 方法名([參數(shù)類型 參數(shù)名1,參數(shù)類型 參數(shù)名2,...]){ 
    //方法體
    ...
     return 返回值; //當(dāng)方法的返回值類型為void時,return及其返回值可以省略
  }

上面語法格式中,[]中的內(nèi)容表示可選,各部分的具體說明如下:

● 修飾符:方法的修飾符比較多,有對訪問權(quán)限進行限定的(如public、protected、private),有靜態(tài)修飾符static,還有最終修飾符final等,這些修飾符在后面的學(xué)習(xí)過程中會逐步講解。

● 返回值類型:用于限定方法返回值的數(shù)據(jù)類型,如果不需要返回值,可以使用void關(guān)鍵字。

● 參數(shù)類型:用于限定調(diào)用方法時傳入?yún)?shù)的數(shù)據(jù)類型。

● 參數(shù)名:是一個變量,用于接收調(diào)用方法時傳入的數(shù)據(jù)。

● return關(guān)鍵字:用于結(jié)束方法以及返回方法指定類型的值,當(dāng)方法的返回值類型為void時,return及其返回值可以省略。

● 返回值:被return語句返回的值,該值會返回給調(diào)用者。

在上述語法中,{}之前的內(nèi)容被稱之為方法簽名(或方法頭),而{}中的執(zhí)行語句被稱為方法體。需要注意的是,方法簽名中的“[參數(shù)類型 參數(shù)名1,參數(shù)類型 參數(shù)名2,...]”被稱作參數(shù)列表,它用于描述方法在被調(diào)用時需要接收的參數(shù),如果方法不需要接收任何參數(shù),則參數(shù)列表為空,即()內(nèi)不寫任何內(nèi)容。關(guān)于上述語法結(jié)構(gòu)中的修飾符內(nèi)容,將在后面進行逐一的講解,這里讀者只需了解如何定義類、成員變量和成員方法即可。

了解了類及其成員的定義方式后,接下來通過一個具體的案例來演示一下類的定義,如文件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; // 方法內(nèi)部定義的變量被稱作局部變量
      System.out.println("我今年" + age + "歲了!");
    }
}

上面的代碼中,speak()方法中的打印語句所訪問的變量age,就是局部變量,也就是說,當(dāng)有另外一個程序來調(diào)用speak()方法時,輸出的值為30,而不是10。




猜你喜歡:

Java中類和對象是什么關(guān)系?

如何理解面向?qū)ο蟮姆庋b、繼承和多態(tài)?

java面向?qū)ο笏枷朐趺蠢斫?

java視頻教程下載

分享到:
在線咨詢 我要報名
和我們在線交談!