簡體   English   中英

用Java初始化ivars

[英]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和其他方法中,我應該使用accessormutator方法來設置並獲取ivars ,還是直接將它們分配給它們?

基本類型(在您的情況下為int )會自動通過默認值進行初始化,因此無需將其顯式設置為0

Strings和其他對象呢:這完全取決於您的偏好。 不想在構造函數中初始化它。 但是請記住,在初始化構造函數中的字段的情況下,如果字段初始化引發某些異常,則可以處理異常

一樣。 外部類將需要訪問器和更改器方法。

沒關系,這基本上是個人喜好。 Java編譯器將初始化從類復制到每個構造函數(無需額外的調用,它實際上是字節碼中的直接副本)。

就個人而言,我更喜歡將與數據無關的初始化放入類中,而將可能依賴於構造函數參數的數據放入構造函數本身。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM