سؤال

بينما أعلم أنه بحكم تعريفه يتكون منطقية من دولتين فقط، صحيح أو خطأ. كنت أتساءل ما القيمة التي تحتوي عليها المنطقي قبل تهيئة واحدة من هذه الدول.

هل كانت مفيدة؟

المحلول

انها الافتراضات إلى false.

يحرر: حسب الطلب الشعبي:

إلا إذا كنت تستخدم ملفوفة منطقية, ، التي الافتراضي إلى null. - Sudhir.j.

نصائح أخرى

إذا كان ذلك متغيرا محليا، فهذا خطأ مترجم للرجوع إليه قبل تهيئةه. إذا كان حقل، يتم تهيئته إلى FALSE.

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

أعلم أن هذا كان أكثر فلسفية سؤالا، ولكن بفضل توجيه الاستهلاابي يمكنك استخدام Java بلغة OO حقا تقريبا (أكره وجود أنواع بدائية ... الآن فقط إذا كان يعمل في الاتجاه المعاكس أيضا). ومع ذلك، قم بتغيير السلوك عند استخدام كائن (لأفضل IMO).

لا توجد دولة ثالثة. كما قال Yishai، إذا كنت لا تقوم بتعيين قيمة، فإن الحقول المنطقية الافتراضية إلى False. يجب تعيين المتغيرات المحلية قبل الاستخدام:

الوصول إلى متغير محلي غير مهم سيؤدي إلى خطأ في وقت الترجمة

يرى وثيقة.

في جافا أنواع boolean الافتراضي إلى false.

FYI، Doolean الإعدادات الافتراضية للأرقام الخاطئة أو البدائية الافتراضية إلى 0 أو 0L أو 0F أو 0D حسب الاقتضاء، سحر الافتراضات إلى " 0"، مراجع الكائنات (مثل المنطقي) الافتراضي إلى NULL.

هذا ينطبق أيضا على محتويات الصفائف. (Gotcha مشترك هو أن مجموعة من الكائنات مليئة بالقيم الفارغة في البداية)

أنه خاطئة

إذا كان لديك شيء مثل

boolean isTrue;

System.out.println(isTrue);

يجب أن تحصل على خطأ في وقت الترجمة لأن المنطقية لم تتم تهيئته. بشكل افتراضي عند محاولة تهيئة هذا سيتم تعيينه إلى FALSE؛

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top