2014-02-22 83 views
4
  1. 如果你在類中創建了一個實例變量,那麼默認值是true還是false,直到否則改變?是一個布爾實例變量默認值true或false

  2. 是否有一個實例變量爲ex的好習慣。那麼將該值更改爲false並在整個班級中使用該變量?或者,你應該從概念上避免使用實例變量?

+3

這可以通過官方文檔,教程甚至JLS輕鬆解答。 –

回答

7

如果你在一個類中創建一個實例變量,是默認值true或false,直至以其他方式改變了嗎?

默認值是false。 (JLS 4.12.5

是否有一個實例變量爲ex的好習慣。那麼將該值更改爲false並在整個班級中使用該變量?

我假設你的意思是,定義你的布爾實例變量是一個很好的習慣,這樣你就可以依靠默認的初始化。

答案是:不。這是不好的做法:

  • 這是很好的做法讓他們有意義的代碼的閱讀器來定義實例變量:

    // Good (probably) 
        private boolean isValid = true; 
    
        // Bad (probably) 
        private boolean isNotValid; // so that I can rely on default init 
    

    (現在,它可能使你的代碼更容易理解,如果變量是否定的...但重點是,你應該決定什麼使得代碼容易t Ø瞭解 ...不是基於利用默認初始化。)

  • 這是不好的做法花時間在這個級別的粒度的擔心性能問題。避免顯式初始化的性能好處的可能性是微不足道的。

+0

isInvalid聽起來不像isNotValid那樣糟糕,如果你想使用false作爲默認值 – zod

+0

你錯過了我的觀點。問題不在於名稱。問題是使用'isInvalid'或'idNotValid'而不是'isValid'的**動機**。 –

+0

我想我明白了,我認爲我同意你的看法。我只是提出了一種不同的方式來編寫你選擇的特定例子,這個例子對我個人來說更加可以接受(我的意思是,一個布爾變量中帶有「not」的單詞看起來很奇怪)。 – zod

3

,如果你在一個類中創建一個實例變量,是默認值 真或假,直到以其它方式改變?

如果變量是布爾類型,則默認值是假的,原語的變量默認值id 0,對象變量/引用變量的默認值是null

它是很好的做法,有一個實例變量如前。 true然後 將該值更改爲false並在整個班級中使用該變量?

您可以做到這一點,這取決於您的要求。

1

如果你在一個類中創建了一個實例變量,那麼默認值是true還是false,直到否則改變?

如果該成員是原始的,那麼false。如果它是一個包裝,那麼null

是否有一個實例變量爲ex的好習慣。那麼將該值更改爲false並在整個班級中使用該變量?或者,你應該從概念上避免使用實例變量?

設置true或false將取決於您的類上下文。它根本沒有問題。

例如:您正在創建一個客戶對象並擁有一個實例註冊表isActive。如果您的設計允許所有客戶默認活動,那麼喲是正確的。

4

JLS 4.12.5

  • 每個類變量,實例變量,或陣列部件被初始化時創建它的默認值(§15.9,§15.10):

    • 對於類型爲byte,默認值爲零,即值爲(byte)0

    • 對於類型short,默認值爲零,即值爲(short)0。對於int類型,默認值爲零,即0

    • 對於long類型,默認值爲零,即0L

    • 對於float類型,默認值爲正零,即0.0f

    • double對於類型,默認值是正零,也就是0.0d

    • 對於類型char,默認值爲空字符,即'\u0000'

    • 對於boolean類型,默認值是false

    • 對於所有參考類型(§4.3),默認值爲null

1
when you crate a variable of boolean 
public class check { 
static boolean b; 
    public static void main(String args[]) { 
      System.out.print("The Default Value of Boolean is="+b); 
    } 
    } 

enter image description here

相關問題