CodeGym /Blog Java /rawak /Pembolehubah Statik di Jawa
John Squirrels
Tahap
San Francisco

Pembolehubah Statik di Jawa

Diterbitkan dalam kumpulan

Apakah pembolehubah statik?

Pembolehubah statik atau pembolehubah kelas dikongsi antara semua kejadian kelas dan boleh diakses dan diubah suai tanpa membuat kejadian kelas. Mari kita mendalami untuk memahami penggunaan dan pelaksanaan pembolehubah statik di Jawa.

Contoh pembolehubah statik dalam Java

Salah satu kegunaan paling biasa untuk pembolehubah statik ialah berkongsi antara semua kejadian kelas. Sebagai contoh, pembolehubah pembilang yang menjejaki bilangan kejadian yang dibuat atau pembolehubah MAHAL yang memegang nilai yang tidak pernah berubah. Pertimbangkan kelas yang mewakili akaun bank. Coretan kod berikut menunjukkan cara pembolehubah statik nextAccountNumber boleh digunakan untuk menetapkan nombor akaun unik kepada setiap akaun baharu:

Contoh


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

Pengeluaran

Nilai nextAccountNumber selepas mencipta akaun1: 1001 Nilai nextAccountNumber selepas mencipta akaun2: 1002 Nilai nextAccountNumber selepas mencipta akaun3: 1003
Dalam contoh ini, kaedah utama mencipta tiga contoh kelas BankAccount . Pembina BankAccount memberikan nextAccountNumber kepada akaun baharu dan menambah pembolehubah nextAccountNumber sebanyak 1. Kaedah getAccountNumber mengembalikan nombor akaun setiap akaun. Kaedah utama kemudian mencetak nombor akaun dan pembolehubah nextAccountNumber untuk setiap akaun. Anda boleh melihat bahawa setiap nombor akaun adalah unik dan pembolehubah nextAccountNumber ditambah satu untuk setiap akaun baharu yang dibuat. Pembolehubah statik juga boleh digunakan untuk melaksanakan corak reka bentuk Singleton, di mana hanya satu contoh kelas boleh dibuat. Kelas tunggal ialah kelas yang boleh mempunyai hanya satu contoh dalam mana-mana aplikasi Java dan pada masa yang sama menyediakan pusat akses global kepada contoh ini. Coretan kod berikut menunjukkan cara contoh pembolehubah statik boleh digunakan untuk melaksanakan kelas tunggal:

Contoh


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

Pengeluaran

Ini ialah kelas tunggal Ini ialah kelas tunggal Ini ialah kelas tunggal
Dalam contoh ini, kaedah utama mencipta tiga contoh kelas Singleton dengan memanggil kaedah getInstance() . Kaedah getInstance () mengembalikan contoh kelas dan mencipta tika baharu jika tidak wujud. Kaedah displayMessage hanya mencetak mesej . Kemudian kaedah utama memanggil kaedah displayMessage untuk setiap contoh. Seperti yang anda boleh lihat, walaupun kami mencipta tiga kejadian, hanya satu objek dibuat dan dikongsi antara semua kejadian. Ia membuktikan bahawa hanya satu contoh kelas dibuat dan dikongsi di antara semua kejadian dan 'contoh' pembolehubah statik sedang dipegang. Adalah penting untuk diingat bahawa nilai pembolehubah statik dikongsi antara semua kejadian kelas, jadi perubahan kepada pembolehubah yang dibuat oleh satu tika akan dapat dilihat oleh semua kejadian lain. Pertimbangan yang teliti harus diberikan kepada pembolehubah statik untuk mengelakkan kemungkinan konflik dan pepijat dalam kod anda. Sebagai contoh, menggunakan pembolehubah statik untuk menyimpan nilai yang khusus kepada tika kelas, seperti baki akaun, tidak disyorkan. Untuk mengukuhkan perkara yang anda pelajari, kami cadangkan anda menonton pelajaran video daripada Kursus Java kami

Kesimpulan

Untuk menyelesaikan perkara ini, pembolehubah statik dalam Java membenarkan perkongsian data antara semua kejadian kelas. Ia boleh digunakan untuk pembolehubah yang dikongsi antara semua keadaan, seperti pembilang dan pemalar atau untuk melaksanakan corak reka bentuk Singleton. Walau bagaimanapun, adalah penting untuk diingat bahawa nilai pembolehubah statik dikongsi antara semua kejadian kelas, jadi perubahan kepada pembolehubah yang dibuat oleh satu tika akan dapat dilihat oleh semua kejadian lain.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION