בלוג זה ימחיש את השימוש בלוקים סטטיים ב-Java.
מה הם 'בלוקים סטטיים' ב-Java?
בלוק מוקצה כ' סטָטִי ' על ידי שיוך מילת המפתח הסטטית אליה. לחסימות אלו יש עדיפות גבוהה יותר מאשר ' רָאשִׁי ' כך שהם מבוצעים לפני ' רָאשִׁי() ' שיטה.
תחביר
classMain {
סטָטִי {
מערכת . הַחוּצָה . println ( 'שלום עולם' ) ;
} }
בתחביר לעיל, הבלוק הכלול מוקצה כ' סטָטִי ” ויופעל לפני העיקר.
שיקולים חשובים לגבי 'בלוקים סטטיים'
- בלוקים סטטיים ב-Java מופעלים באופן אוטומטי כאשר המחלקה נטענת בזיכרון.
- אלה מבוצעים פעם אחת בלבד, גם אם נוצרים מספר אובייקטי מחלקה.
- אין הגבלה/הגבלה על מספר בלוקי האתחול הסטטי בתוך מחלקה.
- ניתן להשתמש בלוקים אלה כדי לאתחל את המשתנים הסטטיים גם כן.
דוגמה 1: שימוש ב'בלוקים סטטיים' ב-Java
בדוגמה זו, ניתן להשתמש בבלוק הסטטי כדי לצפות ברצף שבו ניתן לבצע אותו ביחס ל-main:
דוגמה ציבורית {
סטָטִי {
מערכת . הַחוּצָה . println ( 'זהו בלוק סטטי!' ) ;
}
publicstaticvoidmain ( חוּט [ ] args ) {
מערכת . הַחוּצָה . println ( 'זה עיקרי!' ) ;
} }
בגוש הקוד שלמעלה, פשוט כלול את ' סטָטִי ' לחסום את צבירת ההודעה האמורה ובשלב הבא, הצג את ההודעה הנתונה ב' רָאשִׁי '.
תְפוּקָה
בפלט זה, ניתן לנתח שהבלוק הסטטי מופעל לפני ה-main.
דוגמה 2: ביצוע ערך סטטי בתוך 'בלוק סטטי' ב-Java
באיור הספציפי הזה, ניתן לאתחל ערך סטטי בבלוק הסטטי ולאחר מכן להציג אותו בראש:
classcustom {סטטיקנט i ;
סטָטִי {
אני = 10 ;
מערכת . הַחוּצָה . println ( 'התקשר בלוק סטטי!' ) ;
} }
דוגמה ציבורית {
publicstaticvoidmain ( חוּט [ ] args ) {
מערכת . הַחוּצָה . println ( המותאם אישית. אני ) ;
} }
בשורות הקוד לעיל:
- קודם כל, צור מחלקה בשם ' המותאם אישית '.
- בתוך הכיתה, ציין ' סטָטִי ' משתנה ואתחול אותו ב- ' המוקצה ' סטָטִי ' לחסום.
- לבסוף, הפעל את המשתנה המאותחל ב-main על ידי התייחסות למחלקה שבה הוא כלול.
תְפוּקָה
בתוצאה לעיל, ניתן לראות כי, כמו כן, ' סטָטִי ' בלוק מבוצע תחילה, והערך המאותחל בבלוק זה מוצג גם כן, בהתאמה.
דוגמה 3: ביצוע 'בלוק סטטי' לפני קונסטרוקטור
בדוגמה זו, ניתן לציין את הבלוק הסטטי לפני הבנאי, וניתן לראות את קדימותו וביצועו בהתאם:
classcustom {סטָטִי {
מערכת . הַחוּצָה . println ( 'זהו בלוק סטטי' ) ;
}
המותאם אישית ( ) {
מערכת . הַחוּצָה . println ( 'זה קונסטרוקטור' ) ;
} }
דוגמה ציבורית {
publicstaticvoidmain ( חוּט [ ] args ) {
obj1 = חָדָשׁ המותאם אישית ( ) ;
obj2 מותאם אישית = חָדָשׁ המותאם אישית ( ) ;
} }
בשורות הקוד לעיל:
- באופן דומה, הגדר מחלקה בשם ' המותאם אישית '.
- כעת, ציין את ' סטָטִי ' לחסום ולכלול את בנאי המחלקה, כלומר ' המותאם אישית() ' עם ההודעות האמורות, בהתאמה.
- בעיקרון, צור שני אובייקטים של המחלקה שנוצרה כדי להפעיל את פונקציונליות המחלקה בסדר העדיפות בהתאם.
תְפוּקָה
בפלט זה, ניתן לבצע את השיקולים הבאים:
- הבלוק הסטטי מקבל עדיפות גבוהה יותר בהשוואה לבנאי הכלול.
- נוצרים שני אובייקטים של המחלקה, אך הבלוק הסטטי מבוצע פעם אחת, כפי שנדון קודם לכן.
סיכום
ה ' בלוקים סטטיים ' ב-Java להפעיל רק פעם אחת כאשר מחלקה נטענת לזיכרון ומבוצעת לפני ' רָאשִׁי() ' שיטה. הדוגמאות הנדונות במאמר מוכיחות שלבלוקים אלה יש עדיפות גבוהה יותר מבנאי הראשי ומחלקה, בהתאמה, והם מופעלים פעם אחת בלבד, ללא קשר למספר האובייקטים שנוצרו. בלוג זה דן בשימוש בלוקים סטטיים ב-Java.