CodeGym /جاوا بلاگ /Random-SD /جاوا ۾ جامد متغير
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 جو قدر 2: 1002 کاتو ٺاهڻ کان پوءِ nextAccountNumber جو قدر 3: 1003
هن مثال ۾، مکيه طريقو بئنڪ اڪائونٽ ڪلاس جا ٽي مثال ٺاهي ٿو. BankAccount ٺاھيندڙ نئين اڪائونٽ کي nextAccountNumber تفويض ڪري ٿو ۽ nextAccountNumber variable کي 1 وڌائي ٿو . getAccountNumber طريقو هر اڪائونٽ جو اڪائونٽ نمبر واپس ڪري ٿو. مکيه طريقو پوءِ پرنٽ ڪري ٿو اڪائونٽ نمبر ۽ هر اڪائونٽ لاءِ ايندڙ اڪائونٽ نمبر متغير. توهان ڏسي سگهو ٿا ته هر اڪائونٽ نمبر منفرد آهي ۽ ايندڙ اڪائونٽ نمبر متغير هر نئين ٺاهيل اڪائونٽ لاءِ هڪ طرفان وڌايو ويو آهي. Static variables پڻ استعمال ڪري سگھجن ٿا سنگلٽن ڊيزائن جي نموني کي لاڳو ڪرڻ لاءِ، جتي ڪلاس جو صرف ھڪڙو مثال ٺاھي سگھجي ٿو. سنگلٽن ڪلاس هڪ ڪلاس آهي جيڪو ڪنهن به جاوا ايپليڪيشن ۾ صرف هڪ مثال رکي سگهي ٿو ۽ انهي سان گڏ هن مثال کي عالمي رسائي پوائنٽ فراهم ڪري ٿو. هيٺ ڏنل ڪوڊ جو ٽڪرو ڏيکاري ٿو ته ڪيئن هڪ جامد متغير مثال استعمال ڪري سگهجي ٿو سنگلٽن ڪلاس کي لاڳو ڪرڻ لاءِ:

مثال

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 () طريقو ڪلاس جي مثال کي واپس ڪري ٿو ۽ هڪ نئون مثال ٺاهي ٿو جيڪڏهن ڪو موجود ناهي. ڊسپلي ميسيج جو طريقو صرف هڪ پيغام پرنٽ ڪري ٿو. پوء مکيه طريقو هر مثال لاء ڊسپلي ميسيج طريقو سڏيندو آهي. جيئن توهان ڏسي سگهو ٿا، جيتوڻيڪ اسين ٽي مثال ٺاهي رهيا آهيون، صرف هڪ اعتراض پيدا ڪيو ويو آهي ۽ سڀني مثالن ۾ حصيداري ڪئي وئي آهي. اهو ثابت ٿئي ٿو ته ڪلاس جو صرف هڪ مثال ٺاهيو ويو آهي ۽ سڀني مثالن ۾ حصيداري ڪئي وئي آهي ۽ جامد متغير 'مثال' رکيل آهي. اهو ياد رکڻ ضروري آهي ته جامد متغير جي قيمت هڪ طبقي جي سڀني مثالن جي وچ ۾ حصيداري ڪئي وئي آهي، تنهنڪري هڪ مثال طرفان ڪيل تبديلين کي ٻين سڀني مثالن تي نظر ايندو. توهان جي ڪوڊ ۾ امڪاني تڪرارن ۽ بگن کان بچڻ لاءِ جامد متغيرن تي ڌيان ڏنو وڃي. مثال طور، هڪ جامد متغير استعمال ڪرڻ لاءِ هڪ قدر رکڻ لاءِ جيڪا مخصوص آهي طبقي جي مثال لاءِ، جهڙوڪ اڪائونٽ بيلنس، سفارش نه ڪئي وئي آهي. جيڪو توهان سکيو ان کي مضبوط ڪرڻ لاءِ، اسان توهان کي اسان جي جاوا ڪورس مان هڪ وڊيو سبق ڏسڻ جي صلاح ڏيون ٿا

نتيجو

هن کي ختم ڪرڻ لاء، جاوا ۾ هڪ جامد متغير هڪ طبقي جي سڀني مثالن جي وچ ۾ ڊيٽا جي حصيداري جي اجازت ڏئي ٿو. اهي متغيرن لاءِ استعمال ڪري سگھجن ٿا سڀني مثالن جي وچ ۾ ورهايل، جهڙوڪ ڳڻپيندڙ، ۽ مستقل يا سنگلٽن ڊيزائن جي نموني کي لاڳو ڪرڻ لاءِ. بهرحال، اهو ذهن ۾ رکڻ ضروري آهي ته هڪ جامد متغير جي قيمت هڪ طبقي جي سڀني مثالن جي وچ ۾ حصيداري ڪئي وئي آهي، تنهنڪري هڪ مثال طرفان متغير ۾ تبديليون ٻين سڀني مثالن تي نظر اينديون.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION