鍍金池/ 教程/ Java/ Java類基礎(chǔ)
Java參數(shù)傳遞
Java靜態(tài)內(nèi)部類
Java final關(guān)鍵字
http://www.yiibai.com/java_object_oriented_design/java_inheritan
Java泛型類
Java標(biāo)準(zhǔn)注解
Java接口教程
Java注解
Java枚舉類型
http://www.yiibai.com/java_object_oriented_design/java_class_ins
Java接口實(shí)現(xiàn)
Java哈希編碼
Java泛型約束
http://www.yiibai.com/java_object_oriented_design/java_import.ht
Java注解默認(rèn)值
Java異常拋出
Java不可變對(duì)象
Java類基礎(chǔ)
Java接口繼承
Java類方法
Java訪問(wèn)級(jí)別
Java對(duì)象克隆
Java初始化塊
Java可變長(zhǎng)度參數(shù)
Java接口字段
Java對(duì)象相等比較(Equals)
Java實(shí)例和靜態(tài)方法
Java繼承方法隱藏(覆蓋)
Java面向?qū)ο笤O(shè)計(jì)
Java對(duì)象finalize()方法
Java抽象類和方法
Java Object類
Java泛型方法和構(gòu)造函數(shù)
Java枚舉體
Java接口方法
Java this關(guān)鍵字
Java注解類型的限制
Java main()方法
Java Enum類
Java注解用法
Java枚舉比較
Java注解類型
Java內(nèi)部類成員
Java繼承和構(gòu)造函數(shù)
Java類實(shí)例化
Java內(nèi)部類類型
Java對(duì)象toString()方法
Java finally塊
Java繼承教程
Java自定義異常
Java枚舉值
Java接口作為類型
Java異常類
Java方法覆蓋教程
http://www.yiibai.com/java_object_oriented_design/java_class_bas
Java枚舉方法
Java方法重載
http://www.yiibai.com/java_object_oriented_design/java_interface
Java異常用法
Java內(nèi)部類
Java類成員訪問(wèn)級(jí)別
Java異常處理教程
Java注解反射
Java構(gòu)造函數(shù)(構(gòu)造器)
Java導(dǎo)入(import語(yǔ)句的用法)

Java類基礎(chǔ)

類是什么?

類在面向?qū)ο蟮木幊谭妒降幕締挝?。它們用作模板?lái)創(chuàng)建對(duì)象。
Java中的類可以包含五個(gè)組件:

  • 字段(域)
  • 方法
  • 構(gòu)造器(也叫構(gòu)造函數(shù))
  • 靜態(tài)初始化器
  • 實(shí)例初始化程序

字段和方法也稱為類的成員。類和接口也可以是一個(gè)類的成員。類可以有零個(gè)或多個(gè)類成員。
構(gòu)造函數(shù)用于創(chuàng)建類的對(duì)象。所以必須至少有一個(gè)類的構(gòu)造函數(shù)。

初始化器用于初始化類的字段。在一個(gè)類中可以有零個(gè)或多個(gè)靜態(tài)或?qū)嵗愋偷某跏蓟鳌?/p>

聲明一個(gè)類

在Java中聲明類的一般語(yǔ)法如下 -

<modifiers> class <class name> {
    // Body of the class
}

是對(duì)類聲明有特殊含義的關(guān)鍵字。類聲明可以有零個(gè)或多個(gè)修飾符(modifiers)。

關(guān)鍵字 class 用于聲明一個(gè)類。

<class name>是用戶定義的類名稱,它應(yīng)該是有效的標(biāo)識(shí)符組成。
每個(gè)類都有一個(gè)主體(body),它在一對(duì)大括號(hào)({})中指定。類的主體包含其不同的組件,例如字段,方法等。

下面的代碼定義了一個(gè)名為Dog的類,它具有一個(gè)空主體。Dog類不使用任何修飾符。如下代碼所示 -

class Dog  {
// 主體是空的,什么也沒(méi)有定義
}

類中的字段

類的字段表示類的屬性。

Dog類的每個(gè)對(duì)象都有兩個(gè)屬性:名稱(name)和性別(gender)。Dog類應(yīng)包括兩個(gè)字段的聲明:一個(gè)表示名稱,一個(gè)表示性別。

這些字段在類的主體中聲明。 在類中聲明一個(gè)字段的一般語(yǔ)法是 -

<modifiers> class  className {
   <modifiers> <data type> <field name> = initialvalue;
   <modifiers> <data type> fieldName;
}
<modifiers> class  className {
   <modifiers> <data type> <field name> = initialvalue;
   <modifiers> <data type> fieldName;
}

字段聲明可以使用零個(gè)或多個(gè)修飾符。字段的數(shù)據(jù)類型位于其名稱之前。 或者還可以使用值來(lái)初始化每個(gè)字段的值。

以下代碼顯示如何向Dog類添加字段:

class Dog  {
    String  name; 
    String gender;
}

在java中,一般是用大寫字母開始一個(gè)類的名稱(比較規(guī)范,推薦的用法),并大寫后續(xù)的單詞,例如:Table,FirstTime,OrderDetail等等。而使用 tablefirstTime,order_detail 等這樣的形式來(lái)命名類不是一個(gè)規(guī)范的作法。

字段和方法的名稱應(yīng)以小寫字母開頭,后面的單詞的第一個(gè)字母應(yīng)該大寫,例如:name,firstName,orderList等等。

Dog類聲明兩個(gè)字段:namegender。兩個(gè)字段都是可存儲(chǔ)字符串的String類型。
Dog類的每個(gè)實(shí)例都有這兩個(gè)字段的副本。

Java中一個(gè)類有兩種類型的字段:

  • 類字段
  • 實(shí)例字段

有時(shí)屬性屬于類本身,不屬于該類的任何特定實(shí)例。
所有狗的數(shù)量應(yīng)屬于狗類本身。狗的數(shù)量不存在于狗類的任何特定實(shí)例。

只有一個(gè)類屬性的副本存在,而不考慮實(shí)例數(shù)。類字段也稱為類變量。實(shí)例字段也稱為實(shí)例變量。

namegenderDog類的兩個(gè)實(shí)例變量。而類的變量必須使用static關(guān)鍵字作為修飾符聲明。

以下代碼帶中,Dog類的聲明有一個(gè)類變量 - count。如下所示 -

class Dog  {
    String name;           // An  instance variable
    String gender;         // An  instance variable
    static long  count;    // A  class  variable  because of  the   static  modifier
}

類變量稱為靜態(tài)變量。 實(shí)例變量被稱為非靜態(tài)變量。

使用示例

在這個(gè)示例中,定義一個(gè) Dog 類,并實(shí)例化三個(gè) Dog 類的實(shí)例,每次實(shí)例化類的實(shí)例時(shí),自動(dòng)將類變量count的值加1,用來(lái)統(tǒng)計(jì)當(dāng)前有多少 Dog 類被實(shí)例化。


class Dog  {
    String name;           // An  instance variable
    String gender;         // An  instance variable
    static long  count;    // A  class  variable  because of  the   static  modifier

    Dog(String name, String gender){
        this.name = name;
        this.gender = gender;
        // 每實(shí)例化一個(gè)對(duì)象, 類變量 count 的值加  1 。 
        count = count + 1;
    }
}

class Main {
   public static void main(String[] args) {

       Dog dog1 = new Dog("旺財(cái)", "公");
       Dog dog2 = new Dog("阿貴", "公");
       Dog dog3 = new Dog("悠悠", "母");
       // 以下都是訪問(wèn)類變量的方法
       System.out.println("dog1.count=>"+dog1.count);
       System.out.println("dog2.count=>"+dog2.count);
       System.out.println("dog3.count=>"+dog3.count);
       System.out.println("Dog::count=>"+Dog.count);
   }
}

執(zhí)行上面代碼,得到如下結(jié)果 -

dog1.count=>3
dog2.count=>3
dog3.count=>3
Dog::count=>3

上一篇:Java異常拋出下一篇:Java內(nèi)部類