freeCodeCamp/guide/arabic/java/static/index.md

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 .

طرق ثابتة

ينتمي الأسلوب الثابت إلى الفئة بدلاً من الحالات. وبالتالي ، يمكن استدعائها دون إنشاء مثيل للفئة. يتم استخدامه لتغيير محتويات ثابتة للفئة. هناك بعض القيود على الأساليب الثابتة:

  1. لا يمكن للطريقة الثابتة استخدام أعضاء غير ثابت (متغيرات أو وظائف) للفئة.
  2. لا يمكن للطريقة الساكنة استخدام 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(); } }

واحدة من حالات الاستخدام للدروس المتداخلة الثابتة في نموذج البناء المستخدمة بشكل شائع في جافا.