CodeGym/Java Blog/Acak/Variabel Statis di Java
John Squirrels
Level 41
San Francisco

Variabel Statis di Java

Dipublikasikan di grup Acak
anggota

Apa itu variabel Statis?

Variabel statis atau variabel kelas dibagikan di antara semua instance kelas dan dapat diakses dan dimodifikasi tanpa membuat instance kelas tersebut. Mari selami lebih dalam untuk memahami penggunaan dan implementasi variabel statis di Java.

Contoh variabel statis di Java

Salah satu kegunaan paling umum dari variabel statis adalah untuk berbagi di antara semua instance kelas. Misalnya, variabel penghitung yang melacak jumlah instance yang dibuat, atau variabel KONSTAN yang menyimpan nilai yang tidak pernah berubah. Pertimbangkan kelas yang mewakili rekening bank. Cuplikan kode berikut menunjukkan bagaimana variabel statis nextAccountNumber dapat digunakan untuk menetapkan nomor akun unik ke setiap akun baru:

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

Keluaran

Nilai nextAccountNumber setelah membuat akun1: 1001 Nilai nextAccountNumber setelah membuat akun2: 1002 Nilai nextAccountNumber setelah membuat akun3: 1003
Dalam contoh ini, metode utama membuat tiga instance kelas BankAccount . Konstruktor BankAccount menugaskan nextAccountNumber ke akun baru dan menambah variabel nextAccountNumber sebesar 1. Metode getAccountNumber mengembalikan nomor akun setiap akun. Metode utama kemudian mencetak nomor akun dan variabel nextAccountNumber untuk setiap akun. Anda dapat melihat bahwa setiap nomor akun bersifat unik dan variabel nextAccountNumber bertambah satu untuk setiap akun baru yang dibuat. Variabel statis juga dapat digunakan untuk mengimplementasikan pola desain Singleton, di mana hanya satu instance kelas yang dapat dibuat. Kelas singleton adalah kelas yang hanya dapat memiliki satu instance dalam aplikasi Java apa pun dan secara bersamaan menyediakan jalur akses global ke instance tersebut. Cuplikan kode berikut menunjukkan bagaimana instance variabel statis dapat digunakan untuk mengimplementasikan 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();
    }
}

Keluaran

Ini adalah kelas tunggal Ini adalah kelas tunggal Ini adalah kelas tunggal
Dalam contoh ini, metode utama membuat tiga instance kelas Singleton dengan memanggil metode getInstance() . Metode getInstance () mengembalikan instance kelas dan membuat instance baru jika tidak ada. Metode displayMessage hanya mencetak pesan. Kemudian metode utama memanggil metode displayMessage untuk setiap instance. Seperti yang Anda lihat, meskipun kita membuat tiga instance, hanya satu objek yang dibuat dan dibagikan ke semua instance. Ini membuktikan bahwa hanya satu instance dari kelas yang dibuat dan dibagikan di antara semua instance dan variabel statis 'instance' tetap ada. Penting untuk diingat bahwa nilai variabel statis dibagikan di antara semua instance kelas, sehingga perubahan pada variabel yang dilakukan oleh satu instance akan terlihat oleh semua instance lainnya. Pertimbangan yang cermat harus diberikan pada variabel statis untuk menghindari potensi konflik dan bug dalam kode Anda. Misalnya, tidak disarankan menggunakan variabel statis untuk menyimpan nilai yang spesifik untuk instance kelas, seperti saldo akun. Untuk memperkuat apa yang Anda pelajari, kami sarankan Anda menonton video pelajaran dari Kursus Java kami

Kesimpulan

Untuk menyelesaikannya, variabel statis di Java memungkinkan berbagi data di antara semua instance kelas. Mereka dapat digunakan untuk variabel yang dibagikan di antara semua instance, seperti penghitung, dan konstanta atau untuk mengimplementasikan pola desain Singleton. Namun, penting untuk diingat bahwa nilai variabel statis dibagi di antara semua instance kelas, sehingga perubahan pada variabel yang dilakukan oleh satu instance akan terlihat oleh semua instance lainnya.
Komentar
  • Populer
  • Baru
  • Lama
Anda harus login untuk memberikan komentar
Halaman ini belum memiliki komentar