[英]Initializing ivars in Java
聲明和設置默認ivars
之間是否存在差異或偏好設置, ivars
所示:
public class Foo
{
private int yes = 0;
private String name = "";
//...
//constructors, setters, getters, etc.
}
public class Foo
{
private int yes;
private String name;
public Foo()
{
yes = 0;
name = "";
}
//...
//setters, getters, etc.
}
另外,在Foo
中的constructors
和其他方法中,我應該使用accessor
和mutator
方法來設置並獲取ivars
,還是直接將它們分配給它們?
基本類型(在您的情況下為int
)會自動通過默認值進行初始化,因此無需將其顯式設置為0
;
Strings
和其他對象呢:這完全取決於您的偏好。 我不想在構造函數中初始化它。 但是請記住,在初始化構造函數中的字段的情況下,如果字段初始化引發某些異常,則可以處理異常
一樣。 外部類將需要訪問器和更改器方法。
沒關系,這基本上是個人喜好。 Java編譯器將初始化從類復制到每個構造函數(無需額外的調用,它實際上是字節碼中的直接副本)。
就個人而言,我更喜歡將與數據無關的初始化放入類中,而將可能依賴於構造函數參數的數據放入構造函數本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.