2009-06-04 13 views
26

जबकि मुझे पता है कि परिभाषा के अनुसार एक बुलियन में केवल दो राज्य होते हैं, सत्य या झूठे होते हैं। मैं सोच रहा था कि बूलियन के पास इन राज्यों में से एक के साथ शुरू होने से पहले क्या मूल्य है।जावा में तीसरा बूलियन राज्य क्या है?

+48

तीसरा बूलियन राज्य आमतौर पर FileNotFound होता है। – Brian

+6

@ ब्रायन, क्या यह इस बात पर निर्भर नहीं है कि आप पाउला बीन को लागू करते हैं या नहीं? –

+11

@ पॉल: जब आप देख नहीं रहे हैं, तो यह अस्तित्व में नहीं है। जब आप दरवाजा खोलते हैं तो क्वांटम फ़ंक्शन ध्वस्त हो जाता है: डी – talonx

उत्तर

69

It defaults to false.

संपादित करें: लोकप्रिय मांग द्वारा:

जब तक आप लिपटे Boolean उपयोग कर रहे हैं, जो चूक शून्य पर। - sudhir.j

+3

सामान्य रूप से, जावा वेरिएबल्स डिफ़ॉल्ट रूप से सी प्रोग्रामर "झूठी" मान कह सकते हैं-उदाहरण के लिए। 0, शून्य, झूठी, आदि – hbw

+11

जब तक आप लिपटे बूलियन का उपयोग नहीं कर रहे हैं, जो शून्य पर डिफ़ॉल्ट है। –

+0

@ sudhir.j बिल्कुल सही। मुझे उम्मीद है कि जवाब को शामिल करने के लिए संपादित किया जाएगा। –

16

यदि यह एक स्थानीय चर रहा है, यह इसके संदर्भ के लिए इससे पहले कि यह प्रारंभ किया गया था एक संकलक त्रुटि है। यदि यह एक क्षेत्र है, तो इसे गलत माना जाता है।

+0

एरे सामग्री के लिए समान होता है –

1

जावा में बूलियन प्रकार डिफ़ॉल्ट रूप से गलत हैं।

2

कोई तीसरा राज्य नहीं है। @Yishai के रूप में, यदि आप एक मान असाइन नहीं करते हैं, तो बुलियन फ़ील्ड गलत पर डिफ़ॉल्ट हैं। स्थानीय चर उपयोग करने से पहले सौंपा जाना चाहिए:

तक पहुंचने में एक अप्रारंभीकृत स्थानीय चर एक संकलन समय त्रुटि

देखें the doc का परिणाम देगा।

0

आप की तरह

boolean isTrue; 

System.out.println(isTrue); 

कुछ तुम एक संकलन समय त्रुटि मिलना चाहिए क्योंकि बूलियन आरंभ नहीं किया गया था, तो यह झूठी

0

है। डिफ़ॉल्ट रूप से जब आप इसे प्रारंभ करने का प्रयास करते हैं तो इसे गलत पर सेट किया जाएगा;

+2

हां, लेकिन यदि बूलियन एक आवृत्ति चर है, तो यह गलत है, कोई चेतावनी नहीं है। –

9
public class NewMain { 

    boolean foo; 
    Boolean bar; 

    public static void main(String[] args) { 
     NewMain obj = new NewMain(); 

     obj.whatBoolean(); 
    } 

    public void whatBoolean() { 
     System.out.println(foo); 
     System.out.println(bar); 
    } 
} 

आउटपुट

false 
null 

मैं जानता हूँ कि यह एक सवाल का अधिक दार्शनिक था, लेकिन autoboxing आप एक लगभग सही मायने में OO भाषा के रूप में जावा का उपयोग कर सकते (मैं आदिम प्रकार के होने से नफरत है ... अब केवल करने के लिए धन्यवाद अगर यह भी विपरीत में काम करेगा)। हालांकि, जब आप किसी ऑब्जेक्ट का उपयोग करते हैं (बेहतर आईएमओ के लिए) व्यवहार को बदलता है।

1

एफवाईआई, बुलियन डिफ़ॉल्ट पर डिफ़ॉल्ट, आदिम संख्या 0, 0 एल, 0 एफ या 0 डी उचित के रूप में डिफ़ॉल्ट, '\ 0' पर चार डिफ़ॉल्ट, ऑब्जेक्ट संदर्भ (जैसे बूलियन) डिफ़ॉल्ट रूप से शून्य है।

यह भी सरणी की सामग्री पर लागू होता है। (एक आम गोचा यह है कि ऑब्जेक्ट्स की एक सरणी प्रारंभ में शून्य मानों से भरी हुई है)