Files
freeCodeCamp/guide/arabic/java/static/index.md
2019-06-20 16:49:26 -05:00

4.3 KiB

title, localeTitle
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();
  }
}

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