4.3 KiB
title | localeTitle |
---|---|
Static | ثابتة |
ثابتة
عندما تقوم بتعريف متغير أو طريقة بأنها ثابتة ، فإنها تنتمي إلى الفئة ، بدلاً من نسخة محددة. هذا يعني أنه يوجد مثيل واحد فقط من عضو ثابت ، حتى إذا قمت بإنشاء كائنات متعددة للفئة ، أو إذا لم تقم بإنشاء أي. ستتم مشاركتها بواسطة جميع الكائنات.
يمكن استخدام الكلمة الأساسية الثابتة مع المتغيرات والطرق ومقاطع التعليمات البرمجية والفئات المتداخلة.
المتغيرات الثابتة
مثال:
public class Counter { public static int COUNT = 0; Counter() { COUNT++; } }
ستتم مشاركة المتغير COUNT
بواسطة جميع كائنات تلك الفئة. عندما نقوم بإنشاء كائنات من صف مكافحة لدينا في الرئيسي ، والوصول إلى متغير ثابت.
public class MyClass { public static void main(String[] args) { Counter c1 = new Counter(); Counter c2 = new Counter(); System.out.println(Counter.COUNT); } } // Outputs "2"
Outout هو 2 ، لأن متغير COUNT
ثابت ويتم زيادته بمقدار واحد في كل مرة يتم إنشاء كائن جديد لفئة Counter. يمكنك أيضًا الوصول إلى المتغير الثابت باستخدام أي كائن من هذه الفئة ، مثل c1.COUNT
.
طرق ثابتة
ينتمي الأسلوب الثابت إلى الفئة بدلاً من الحالات. وبالتالي ، يمكن استدعائها دون إنشاء مثيل للفئة. يتم استخدامه لتغيير محتويات ثابتة للفئة. هناك بعض القيود على الأساليب الثابتة:
- لا يمكن للطريقة الثابتة استخدام أعضاء غير ثابت (متغيرات أو وظائف) للفئة.
- لا يمكن للطريقة الساكنة استخدام
this
الرئيسية أوsuper
.
مثال:
`public class Counter { public static int COUNT = 0; Counter() { COUNT++; }
public static void increment(){ COUNT++; } } `
يمكن أيضًا استدعاء أساليب ثابتة من مثيل الطبقة.
public class MyClass { public static void main(String[] args) { Counter.increment(); Counter.increment(); System.out.println(Counter.COUNT); } } // Outputs "2"
هو 2 الإخراج لأنه يحصل زيادة بواسطة increament()
الأسلوب increament()
. على غرار المتغيرات الثابتة ، يمكن أيضًا الوصول إلى الطرق الثابتة باستخدام متغيرات الحالة.
كتل ثابتة
يتم استخدام كتل التعليمات البرمجية الثابتة لتهيئة المتغيرات الثابتة. يتم تنفيذ هذه الكتل مباشرة بعد إعلان المتغيرات الثابتة.
مثال:
`public class Saturn { public static final int MOON_COUNT;
static { MOON_COUNT = 62; } } `
public class Main { public static void main(String[] args) { System.out.println(Saturn.MOON_COUNT); } } // Outputs "62"
الإخراج هو 62 ، لأنه يتم تعيين متغير MOON_COUNT
تلك القيمة في كتلة ثابتة.
فئات متداخلة ثابتة
يمكن أن يكون للفئة فئة متداخلة ثابتة يمكن الوصول إليها باستخدام اسم الفئة الخارجية.
مثال:
`public class Outer {
public Outer() { }
public static class Inner { public Inner() { } } } `
في المثال أعلاه ، يمكن الوصول إلى الطبقة Inner
مباشرة كعضو ثابت في الفصل Outer
.
public class Main { public static void main(String[] args) { Outer.Inner inner = new Outer.Inner(); } }
واحدة من حالات الاستخدام للدروس المتداخلة الثابتة في نموذج البناء المستخدمة بشكل شائع في جافا.