2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁常見問題正文

JavaBean是用來干嘛的?

更新時間:2023-02-08 來源:黑馬程序員 瀏覽量:

IT培訓班

  在JSP網頁開發的初期階段,并沒有框架與邏輯分層的概念,需要將Java代碼嵌入到網頁中處理JSP頁面中的一些業務邏輯,如字符串處理和數據庫操作等。這種開發方式雖然簡單,但是如果將大量的Java代碼嵌入到JSP頁面,必定會為后期的修改和維護帶來一定的困難。同時,將Java代碼寫入JSP頁面中起不到代碼重用的作用,也不能體現出面向對象的思想。為了彌補這種開發方式的缺點,JavaBean應運而生。

  JavaBean是Java開發語言中一個可以重復使用的組件,它本質上就是一個Java類。我們可以引用JavaBean組件封裝數據或者完成某些業務邏輯,如封裝表單數據、字符串處理和數據庫操作等。使用JavaBean后,人們通常會將HTML與Java代碼相分離,將Java代碼單獨封裝成一個處理某種業務邏輯的類中,然后在JSP頁面中調用此類,這樣就降低了HTML代碼與Java代碼之間的耦合度,簡化了JSP頁面,提高了Java代碼的重用性和靈活性。這種與HTML代碼相分離后,使用Java代碼封裝的類就是JavaBean組件。

  為了規范JavaBean的開發,Sun公司發布了JavaBean的編寫規范,具體如下。

  ·JavaBean必須具有一個公共的、無參的構造方法,這個方法可以是編譯器自動產生的默認構造方法。

  ·JavaBean提供公共的getter和setter方法,以方便對屬性進行讀/寫操作。

  為了讓讀者對JavaBean有一個直觀的認識,下面講解一個簡單的封裝數據的JavaBean,如文件11-10所示。

  文件11-10 Book.java

package com.itheima.javabean;
public class Book {
    private double price;
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price=price;
    }
}


  在文件11-10中,定義了一個Book類,該類就是一個JavaBean,它沒有定義構造方法,Java編譯器在編譯的時候,會自動為這個類提供一個默認的構造方法。Book類中定義了一個price屬性,并提供了公共的getPrice()和setPrice()方法供外界訪問屬性。

  在講解面向對象時,經常會使用類的屬性,類的屬性指類的成員變量。在JavaBean中同樣也有屬性,但是它和成員變量不是一個概念,它是以方法定義的形式出現的,這些方法必須遵循一定的命名規范,例如,如果在JavaBean中包含一個String類型的屬性name,那么在JavaBean中必須至少包含getName()和seName()方法中的一個,這兩個方法的聲明如下所示:

public String getName() {...}
public void setName(String name) {...}

  在上述兩個方法聲明中,方法體內的內容用“...”表示省略。關于這兩個方法的相關講解具體如下。

  ·getName()方法:稱為getter方法或者屬性訪問器,該方法必須以小寫的get前綴開始,后跟屬性名,屬性名的第一個字母必須大寫,例如,nickName屬性的getter方法為getNickName()。

  ·setName()方法:稱為setter方法或者屬性修改器,該方法必須以小寫的set前綴開始,后跟屬性名,屬性名的第一個字母必須大寫,例如,nickName屬性的setter方法為setNickName()。

  如果一個屬性只有getter方法,則該屬性為只讀屬性,如果一個屬性只有setter方法,則該屬性為只寫屬性,如果一個屬性既有getter方法,又有setter方法,則該屬性為讀/寫屬性。通常來說,在開發JavaBean的時候,其屬性都定義為讀/寫屬性。

  需要注意的是,對于JavaBean屬性的命名方式有一個特殊情況,如果屬性的類型為boolean,它的命名方式應該使用is/set而不是get/set。例如,有一個boolean類型的屬性married,則該屬性所對應的方法聲明如下所示:

public boolean isMarried() {...}
public void setMarried(boolean married) {...}

  從上面的代碼中可以看出,married屬性的setter方法命名方式沒有變化,而getter方法變成了isMarried()方法,當然,寫成getMarried()也是可以的,只不過isMarried()更符合命名規范。

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