簡體   English   中英

布爾實例變量的默認值是true還是false

[英]Is a boolean instance variable default value true or false

  1. 如果在類中創建實例變量,則默認值為true或false,否則更改?

  2. 將實例變量設為ex是一種好習慣。 如果為true,則將值更改為false並在整個類中使用該變量? 或者你應該在概念上避免使用實例變量?

如果在類中創建實例變量,則默認值為true或false,否則更改?

默認值為false JLS 4.12.5

將實例變量設為ex是一種好習慣。 如果為true,則將值更改為false並在整個類中使用該變量?

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

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

  • 這是很好的做法 ,定義實例變量,以便他們是有意義的代碼的讀者:

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

    (現在,如果變量被否定,它可能會使您的代碼更容易理解......但重點是您應該根據使代碼易於理解的內容來決定 ...而不是基於利用默認初始化。)

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

JLS 4.12.5

  • 每個類變量,實例變量或數組組件在創建時都會使用默認值進行初始化(§15.9,§15.10):

    • 對於type byte ,默認值為零,即(byte)0的值。

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

    • 對於int類型,默認值為零,即0

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

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

    • 對於double類型,默認值為正零,即0.0d

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

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

    • 對於所有引用類型(第4.3節),默認值為null

如果在類中創建實例變量,則默認值為true或false,否則更改?

如果變量是布爾類型,則默認值為false,基元變量默認值為id 0 ,對象變量/引用變量默認值為null

將實例變量設為ex是一種好習慣。 如果為true,則將值更改為false並在整個類中使用該變量?

你可以這樣做,這取決於你的要求。

如果在類中創建實例變量,則默認值為true或false,否則更改?

如果成員是原始的,則為false 如果是包裝器,則為null

將實例變量設為ex是一種好習慣。 如果為true,則將值更改為false並在整個類中使用該變量? 或者你應該在概念上避免使用實例變量?

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

例如:您正在創建一個客戶對象並且具有一個實例memeber isActive。 如果您的設計允許所有客戶默認處於活動狀態,那么喲是正確的。

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);
     }
   }

在此輸入圖像描述

暫無
暫無

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

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