CodeGym /مدونة جافا /Random-AR /المتغيرات الثابتة في جافا
John Squirrels
مستوى
San Francisco

المتغيرات الثابتة في جافا

نشرت في المجموعة

ما هي المتغيرات الثابتة؟

تتم مشاركة المتغيرات الثابتة أو متغيرات الفئة بين جميع مثيلات الفصل ويمكن الوصول إليها وتعديلها دون إنشاء مثيل للفئة. دعونا نلقي نظرة عميقة لفهم استخدامات وتنفيذ المتغيرات الثابتة في Java.

مثال متغير ثابت في جافا

أحد الاستخدامات الأكثر شيوعًا للمتغيرات الثابتة هو المشاركة بين جميع مثيلات الفصل. على سبيل المثال، متغير عداد يتتبع عدد المثيلات التي تم إنشاؤها، أو متغير CONSTANT الذي يحتفظ بقيمة لا تتغير أبدًا. فكر في فئة تمثل حسابًا مصرفيًا. يوضح مقتطف الكود التالي كيف يمكن استخدام المتغير الثابت nextAccountNumber لتعيين أرقام حسابات فريدة لكل حساب جديد:

مثال

// BankAccount class definition
class BankAccount {
  // Declare static variable nextAccountNumber
  static int nextAccountNumber = 1001;

  // Declare instance variables for accountNumber and balance.
  int accountNumber;
  double balance;

  // BankAccount constructor that assigns unique account number to each instance
  BankAccount() {
    // Assign the current value of nextAccountNumber to accountNumber.
    accountNumber = nextAccountNumber;

    // Increment nextAccountNumber for the next BankAccount object.
    nextAccountNumber++;
  }

  // Method to get the account number of this BankAccount object.
  int getAccountNumber() {
    return accountNumber;
  }

  // Method to get the balance of this BankAccount object.
  double getBalance() {
    return balance;
  }

  // Method to deposit an amount into this BankAccount object.
  void deposit(double amount) {
    // Increase balance by the amount deposited.
    balance += amount;
  }

  // Method to withdraw an amount from this BankAccount object.
  void withdraw(double amount) {
    // Decrease balance by the amount withdrawn.
    balance -= amount;
  }
}

// Main method definition
class Main {
  static void main(String[] args) {
    // Create three BankAccount objects: account1, account2, and account3.
    BankAccount account1 = new BankAccount();
    BankAccount account2 = new BankAccount();
    BankAccount account3 = new BankAccount();

    // Display the value of the static variable nextAccountNumber after creating each BankAccount object.
    System.out.println("Value of nextAccountNumber after creating account1: " + account1.getAccountNumber());
    System.out.println("Value of nextAccountNumber after creating account2: " + account2.getAccountNumber());
    System.out.println("Value of nextAccountNumber after creating account3: " + account3.getAccountNumber());
  }
}

انتاج |

قيمة nextAccountNumber بعد إنشاء الحساب1: 1001 قيمة nextAccountNumber بعد إنشاء الحساب2: 1002 قيمة nextAccountNumber بعد إنشاء الحساب3: 1003
في هذا المثال، تقوم الطريقة الرئيسية بإنشاء ثلاث مثيلات لفئة BankAccount . يقوم منشئ BankAccount بتعيين nextAccountNumber للحساب الجديد وزيادة المتغير nextAccountNumber بمقدار 1. تقوم طريقة getAccountNumber بإرجاع رقم الحساب لكل حساب. تقوم الطريقة الرئيسية بعد ذلك بطباعة رقم الحساب والمتغير nextAccountNumber لكل حساب. يمكنك أن ترى أن كل رقم حساب فريد وأن المتغير nextAccountNumber يتزايد بمقدار واحد لكل حساب جديد يتم إنشاؤه. يمكن أيضًا استخدام المتغيرات الثابتة لتنفيذ نمط التصميم المفرد، حيث يمكن إنشاء مثيل واحد فقط للفئة. الفئة المفردة هي فئة يمكن أن تحتوي على مثيل واحد فقط في أي تطبيق Java وتوفر في نفس الوقت نقطة وصول عامة إلى هذا المثيل. يوضح مقتطف التعليمات البرمجية التالي كيف يمكن استخدام مثيل متغير ثابت لتنفيذ فئة مفردة:

مثال

public class Singleton {
    // using static variable in the singleton class
    private static Singleton instance;
    private Singleton() { }

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }

    public void displayMessage() {
        System.out.println("This is a singleton class");
    }

    public static void main(String[] args) {
        Singleton singleton1 = Singleton.getInstance();
        singleton1.displayMessage();

        Singleton singleton2 = Singleton.getInstance();
        singleton2.displayMessage();

        Singleton singleton3 = Singleton.getInstance();
        singleton3.displayMessage();
    }
}

انتاج |

هذه فئة فردية هذه فئة فردية هذه فئة فردية
في هذا المثال، تقوم الطريقة الرئيسية بإنشاء ثلاث مثيلات لفئة Singleton عن طريق استدعاء طريقة getInstance() . تقوم طريقة getInstance () بإرجاع مثيل الفئة وإنشاء مثيل جديد إذا لم يكن موجودا. تقوم طريقة DisplayMessage بطباعة رسالة فقط. ثم تستدعي الطريقة الرئيسية طريقة DisplayMessage لكل مثيل. كما ترون، على الرغم من أننا نقوم بإنشاء ثلاث مثيلات، إلا أنه يتم إنشاء كائن واحد فقط ومشاركته بين جميع المثيلات. إنه يثبت أنه تم إنشاء مثيل واحد فقط للفئة ومشاركته بين جميع المثيلات وأن المتغير الثابت "المثيل" محتجز. من المهم أن تتذكر أن قيمة المتغير الثابت تتم مشاركتها بين جميع مثيلات الفئة، لذا فإن التغييرات التي يتم إجراؤها على المتغير بواسطة مثيل واحد ستكون مرئية لجميع المثيلات الأخرى. ينبغي النظر بعناية في المتغيرات الثابتة لتجنب التعارضات والأخطاء المحتملة في التعليمات البرمجية الخاصة بك. على سبيل المثال، لا يوصى باستخدام متغير ثابت للاحتفاظ بقيمة خاصة بمثيل فئة، مثل رصيد الحساب. لتعزيز ما تعلمته، نقترح عليك مشاهدة درس فيديو من دورة Java الخاصة بنا

خاتمة

لإنهاء هذا الأمر، يسمح المتغير الثابت في Java بمشاركة البيانات بين جميع مثيلات الفصل. ويمكن استخدامها للمتغيرات المشتركة بين كافة المثيلات، مثل العدادات والثوابت أو لتنفيذ نمط تصميم Singleton. ومع ذلك، من المهم أن تضع في اعتبارك أن قيمة المتغير الثابت تتم مشاركتها بين جميع مثيلات الفئة، لذا فإن التغييرات التي يتم إجراؤها على المتغير بواسطة مثيل واحد ستكون مرئية لجميع المثيلات الأخرى.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION