CodeGym /جاوا بلاگ /Random-UR /جاوا میں جامد متغیرات
John Squirrels
سطح
San Francisco

جاوا میں جامد متغیرات

گروپ میں شائع ہوا۔

جامد متغیرات کیا ہیں؟

جامد متغیرات یا کلاس متغیرات کو کلاس کی تمام مثالوں میں اشتراک کیا جاتا ہے اور کلاس کی مثال بنائے بغیر ان تک رسائی اور ترمیم کی جا سکتی ہے۔ آئیے جاوا میں جامد متغیرات کے استعمال اور نفاذ کو سمجھنے کے لیے ایک گہرا غوطہ لگائیں۔

جاوا میں جامد متغیر کی مثال

جامد متغیر کے سب سے عام استعمال میں سے ایک کلاس کی تمام مثالوں میں اشتراک کرنا ہے۔ مثال کے طور پر، ایک کاؤنٹر متغیر جو تخلیق کردہ مثالوں کی تعداد پر نظر رکھتا ہے، یا ایک 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());
  }
}

آؤٹ پٹ

اکاؤنٹ 1 بنانے کے بعد nextAccountNumber کی قدر: 1001 اکاؤنٹ بنانے کے بعد nextAccountNumber کی قدر: 1002 اکاؤنٹ بنانے کے بعد nextAccountNumber کی قدر: 1003
اس مثال میں، مرکزی طریقہ بینک اکاؤنٹ کلاس کی تین مثالیں بناتا ہے۔ BankAccount کنسٹرکٹر نئے اکاؤنٹ کو nextAccountNumber تفویض کرتا ہے اور nextAccountNumber متغیر کو 1 تک بڑھاتا ہے ۔ getAccountNumber طریقہ ہر اکاؤنٹ کا اکاؤنٹ نمبر لوٹاتا ہے۔ اس کے بعد مرکزی طریقہ ہر اکاؤنٹ کے لیے اکاؤنٹ نمبر اور NextAccountNumber متغیر کو پرنٹ کرتا ہے۔ آپ دیکھ سکتے ہیں کہ ہر اکاؤنٹ نمبر منفرد ہے اور اگلا اکاؤنٹ نمبر متغیر ہر نئے اکاؤنٹ کے لیے ایک سے بڑھا ہوا ہے۔ جامد متغیرات کو سنگلٹن ڈیزائن پیٹرن کو نافذ کرنے کے لیے بھی استعمال کیا جا سکتا ہے، جہاں کلاس کی صرف ایک مثال بنائی جا سکتی ہے۔ سنگلٹن کلاس ایک ایسی کلاس ہے جس کی کسی بھی جاوا ایپلیکیشن میں صرف ایک مثال ہو سکتی ہے اور ساتھ ہی اس مثال کے لیے عالمی رسائی پوائنٹ فراہم کرتا ہے۔ درج ذیل کوڈ کا ٹکڑا ظاہر کرتا ہے کہ سنگلٹن کلاس کو لاگو کرنے کے لیے ایک جامد متغیر مثال کیسے استعمال کی جا سکتی ہے۔

مثال

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

آؤٹ پٹ

یہ سنگلٹن کلاس ہے یہ سنگلٹن کلاس ہے یہ سنگلٹن کلاس ہے۔
اس مثال میں، مرکزی طریقہ getInstance() طریقہ کو کال کرکے سنگلٹن کلاس کی تین مثالیں بناتا ہے۔ getInstance () طریقہ کلاس کی مثال واپس کرتا ہے اور اگر کوئی موجود نہیں ہے تو ایک نئی مثال بناتا ہے۔ ڈسپلے میسج کا طریقہ صرف ایک پیغام پرنٹ کرتا ہے۔ پھر مرکزی طریقہ ہر مثال کے لئے displayMessage طریقہ کو کال کرتا ہے۔ جیسا کہ آپ دیکھ سکتے ہیں، اگرچہ ہم تین مثالیں بنا رہے ہیں، صرف ایک چیز بنائی گئی ہے اور تمام مثالوں میں شیئر کی گئی ہے۔ یہ ثابت کرتا ہے کہ کلاس کی صرف ایک مثال بنائی گئی ہے اور تمام مثالوں کے درمیان شیئر کی گئی ہے اور جامد متغیر 'مثال' ہولڈ ہے۔ یہ یاد رکھنا ضروری ہے کہ ایک جامد متغیر کی قدر کلاس کی تمام مثالوں کے درمیان مشترک ہوتی ہے، اس لیے ایک مثال کے ذریعے کی جانے والی تبدیلیاں دیگر تمام مثالوں کے لیے نظر آئیں گی۔ آپ کے کوڈ میں ممکنہ تنازعات اور کیڑے سے بچنے کے لیے جامد متغیرات پر احتیاط سے غور کیا جانا چاہیے۔ مثال کے طور پر، ایک ایسی قدر رکھنے کے لیے جامد متغیر کا استعمال کرنا جو کلاس کی مثال کے لیے مخصوص ہے، جیسے کہ اکاؤنٹ بیلنس، کی سفارش نہیں کی جاتی ہے۔ جو کچھ آپ نے سیکھا ہے اس کو تقویت دینے کے لیے، ہمارا مشورہ ہے کہ آپ ہمارے جاوا کورس سے ایک ویڈیو سبق دیکھیں

نتیجہ

اس کو سمیٹنے کے لیے، جاوا میں ایک جامد متغیر کسی کلاس کی تمام مثالوں کے درمیان ڈیٹا کے اشتراک کی اجازت دیتا ہے۔ ان کا استعمال تمام مثالوں کے درمیان مشترکہ متغیرات کے لیے کیا جا سکتا ہے، جیسے کاؤنٹرز، اور مستقل یا سنگلٹن ڈیزائن پیٹرن کو نافذ کرنے کے لیے۔ تاہم، یہ ذہن میں رکھنا ضروری ہے کہ ایک جامد متغیر کی قدر کلاس کی تمام مثالوں کے درمیان مشترک ہوتی ہے، اس لیے ایک مثال کے ذریعے کی جانے والی تبدیلیاں دیگر تمام مثالوں کے لیے نظر آئیں گی۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION