Java Bean 爲何必需要有一個無參構造函數

JAVAEE中,javaBean是一個很重要的概念
而JavaBean還有如下的使用習慣
clipboard.pngjava

首先咱們知道,有兩種方法爲java對象中的元素賦值,函數

1. 經過類的帶參數構造函數的方法
2. 經過類的set方法

在javaBean裏,通常參數在4個以上的,極不推薦使用帶參數構造函數賦值:spa

1.  對於一個實體類,對於多個參數,下降可讀性
 2. 須要記住構造參數的順序
 3. 一個參數無效就會形成整個構造函數失效
 4. 當咱們要添加新的屬性時,不只要傳參數,還要修改構造函數,同時以前全部的構造都要修改。
 5. 必須在對象建立以前給參數賦值,而不能夠在對象建立後賦值

使用set方法的優點:code

1.  咱們能夠顯式的看到賦值元素的名稱
 2. 能夠以任何順序賦值
 3. 能夠忽略一些元素的初始化
 4. 添加新屬性時,不須要修改類
 5. 能夠在對象建立後賦值

因此對於javaBean,最好的方法就是隻定義一個無參數構造函數,
而後用set方法來賦值對象

最後複習一下類的構造器概念:ip

//constructor with parameters
public Bicycle(int startCadence, int startSpeed, int startGear) {
    gear = startGear;
    cadence = startCadence;
    speed = startSpeed;
}
Bicycle myBike = new Bicycle(30, 0, 8);
//constructor without parameters
public Bicycle() {
    gear = 1;
    cadence = 10;
    speed = 0;
}
Bicycle yourBike = new Bicycle();

一個類能夠重載多個構造函數,只要他們的參數不一樣
當沒有申明構造函數時,java將自動建立構造函數
若已申明帶參數構造函數,必須申明無參數構造函數
不然當你調用無參數構造函數時,將會編譯錯誤
對於一個普通的沒有父類的類:ci

TO a class that has not a explicit super class
then it has an implicit superclass of Object, which does have a no-argument constructor.
相關文章
相關標籤/搜索