على سبيل المثال، اكتب قطعة من التعليمات البرمجية مثل هذا:
انسخ رمز الكود كما يلي:
كثافة العمليات أنا؛
{
كثافة العمليات ي = 1؛
أنا=ي;
}
إذا كان هذا الرمز موجودًا في منطقة تعريف الفئة، فنحن نعلم أنه عبارة عن كتلة بيان عادية تُستخدم لتهيئة محتوى سمات الفئة، وسيتم استدعاؤها عند إنشاء مثيل للفئة، ويمكن تنفيذ بعض الطرق فيها.
في العديد من الحالات، سيتم استخدامه في الوضع المفرد والأوضاع الأخرى، أضف ثابتًا قبله لتهيئة المحتوى للفئات المعقدة، والتي يمكن أن تتجنب بعض استثناءات وقت التشغيل الناتجة عن تسلسل التحميل.
ولكن ماذا لو ظهر هذا الرمز في إحدى الطرق؟
في الأساس لا معنى له على الإطلاق. في أفكاري السابقة، كان مجرد تنسيق لإدراج التعليمات البرمجية، ولا شيء آخر.
كتبت اليوم رمزًا صغيرًا يتعلق بـ "علامات البيان":
انسخ رمز الكود كما يلي:
label17: int i;
كثافة العمليات ي؛
ThreadGroup[] arrayOfThreadGroup;
إذا (العلم)
كسر التسمية17؛
العودة 0؛
حدث الاستثناء "خطأ في بناء الجملة على الرمز المميز": "، { المتوقع بعد هذا الرمز المميز" في الموضع: ".
وهذا يعني أنه عندما لا يمكن أن يوجد الكود في سطر واحد (يجب أن يكون لدي موضع إنشاء/تعيين واضح داخل نص الطريقة)، يجب وضع علامة على label17 بكتلة بيان.
التنسيق الصحيح هو:
انسخ رمز الكود كما يلي:
التسمية17: {
كثافة العمليات أنا؛
كثافة العمليات ي؛
ThreadGroup[] arrayOfThreadGroup;
إذا (العلم)
كسر التسمية17؛
العودة 0؛
}
أو:
التسمية17:
كثافة العمليات أنا؛
كثافة العمليات ي؛
ThreadGroup[] arrayOfThreadGroup;
إذا (العلم){
كسر التسمية17؛
العودة 0؛}
دعونا نلقي نظرة على الاستخدام غير الصحيح:
انسخ رمز الكود كما يلي:
label13: int x = 0;
من الواضح أن هناك كتلة بيان افتراضية من سطر واحد بعد التسمية ولا يمكن استخدام x في أي مكان في المستقبل، خطأ. النصائح هي كما يلي:
علامات متعددة على هذا الخط
- لا يمكن حل x إلى متغير
- خطأ في بناء الجملة على الرمز المميز "int"، احذف هذا الرمز المميز
هناك صيغتان صحيحتان:
انسخ رمز الكود كما يلي:
كثافة العمليات س = 0؛
التسمية13: س = 0؛
أو
التسمية 13: {كثافة العمليات س = 0؛}
لذلك توقعت أن سوء فهم سابق كان أنه في استخدامات مثل for(){} وif(){}، يجب أن يكون if() المنطقي وكتلة البيان {} صيغتين مستقلتين.