Kata Kunci Statik Java (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang kata kunci statik Java bersama dengan kaedah statik, pemboleh ubah statik, dan blok statik dengan bantuan contoh.

Apakah kata kunci statik di Java?

Di Jawa, jika kita ingin mengakses ahli kelas, kita mesti membuat contoh kelas terlebih dahulu. Tetapi akan ada situasi di mana kita mahu mengakses ahli kelas tanpa membuat pemboleh ubah.

Dalam situasi seperti itu, kita dapat menggunakan statickata kunci di Java. Sekiranya kita ingin mengakses ahli kelas tanpa membuat contoh kelas, kita perlu menyatakan ahli kelas itu statik.

The Mathkelas di Jawa mempunyai hampir semua statik ahli-ahlinya. Oleh itu, kita dapat mengakses ahlinya tanpa membuat contoh kelas Matematik. Sebagai contoh,

 public class Main ( public static void main( String() args ) ( // accessing the methods of the Math class System.out.println("Absolute value of -12 = " + Math.abs(-12)); System.out.println("Value of PI = " + Math.PI); System.out.println("Value of E = " + Math.E); System.out.println("2^2 = " + Math.pow(2,2)); ) )

Keluaran :

 Nilai mutlak -12 = 12 Nilai PI = 3.141592653589793 Nilai E = 2.718281828459045 2 2 = 4.0

Dalam contoh di atas, kami belum membuat contoh Mathkelas. Tetapi kita dapat mengakses kaedahnya: abs()dan pow()dan pemboleh ubah: PIdan E.

Ini mungkin kerana kaedah dan pemboleh ubah Mathkelas adalah statik.

Kaedah Statik

Kaedah statik juga dipanggil kaedah kelas. Ini kerana kaedah statik tergolong dalam kelas dan bukannya objek kelas.

Dan kita boleh menggunakan kaedah statik secara langsung menggunakan nama kelas. Sebagai contoh,

 class Test ( // static method inside the Test class public static void method() (… ) ) class Main ( // invoking the static method Test.method(); )

Di sini, kita dapat melihat bahawa kaedah statik dapat diakses terus dari kelas lain menggunakan nama kelas.

Dalam setiap program Java, kami telah menyatakan mainmetode tersebut static. Ini kerana untuk menjalankan program, JVM seharusnya dapat menggunakan kaedah utama semasa fasa awal di mana tidak ada objek dalam memori.

Contoh 1: Kaedah statik dan bukan statik Java

 class StaticTest ( // non-static method int multiply(int a, int b)( return a * b; ) // static method static int add(int a, int b)( return a + b; ) ) public class Main ( public static void main( String() args ) ( // create an instance of the StaticTest class StaticTest st = new StaticTest(); // call the nonstatic method System.out.println(" 2 * 2 = " + st.multiply(2,2)); // call the static method System.out.println(" 2 + 3 = " + StaticTest.add(2,3)); ) )

Keluaran :

 2 * 2 = 4 2 + 3 = 5

Dalam program di atas, kami telah menyatakan kaedah tidak statik bernama multiply()dan kaedah statik dinamakan add()di dalam kelas StaticTest.

Di dalam kelas Utama, kita dapat melihat bahawa kita memanggil kaedah bukan statik menggunakan objek kelas ( st.multiply(2, 2)). Walau bagaimanapun, kami memanggil kaedah statik dengan menggunakan nama kelas ( StaticTest.add(2, 3)).

Pemboleh ubah Statik

Di Jawa, ketika kita membuat objek kelas, maka setiap objek akan memiliki salinan tersendiri dari semua pemboleh ubah kelas. Sebagai contoh,

 class Test ( // regular variable int age; ) class Main ( // create instances of Test Test test1 = new Test(); Test test2 = new Test(); )

Di sini, kedua objek test1 dan test2 akan mempunyai salinan berasingan dari usia berubah. Dan, mereka berbeza antara satu sama lain.

Walau bagaimanapun, jika kita menyatakan pemboleh ubah statik, semua objek kelas mempunyai pemboleh ubah statik yang sama. Ini kerana seperti kaedah statik, pemboleh ubah statik juga dikaitkan dengan kelas. Dan, kita tidak perlu membuat objek kelas untuk mengakses pemboleh ubah statik. Sebagai contoh,

 class Test ( // static variable static int age; ) class Main ( // access the static variable Test.age = 20; )

Di sini, kita dapat melihat bahawa kita mengakses pemboleh ubah statik dari kelas lain menggunakan nama kelas.

Contoh 2: Pembolehubah statik dan bukan statik Java

 class Test ( // static variable static int max = 10; // non-static variable int min = 5; ) public class Main ( public static void main(String() args) ( Test obj = new Test(); // access the non-static variable System.out.println("min + 1 = " + (obj.min + 1)); // access the static variable System.out.println("max + 1 = " + (Test.max + 1)); ) )

Keluaran :

 min + 1 = 6 maks + 1 = 11

Dalam program di atas, kami telah menyatakan pemboleh ubah tidak statik bernama min dan pemboleh ubah statik bernama max di dalam kelas Uji.

Di dalam kelas Utama, kita dapat melihat bahawa kita memanggil pemboleh ubah tidak statik menggunakan objek kelas ( obj.min + 1). Walau bagaimanapun, kami memanggil pemboleh ubah statik dengan menggunakan nama kelas ( Test.max + 1).

Catatan : Pemboleh ubah statik jarang digunakan di Jawa. Sebaliknya, pemalar statik digunakan. Pemalar statik ini didefinisikan berdasarkan static finalkata kunci dan ditunjukkan dalam huruf besar. Inilah sebabnya mengapa sesetengah orang lebih suka menggunakan huruf besar untuk pemboleh ubah statik juga.

Akses Pembolehubah dan Kaedah statik dalam Kelas

Kami mengakses pemboleh ubah statik dari kelas lain. Oleh itu, kami telah menggunakan nama kelas untuk mengaksesnya. Namun, jika kita ingin mengakses ahli statik dari dalam kelas, ia boleh diakses secara langsung. Sebagai contoh,

 public class Main ( // static variable static int age; // static method static void display() ( System.out.println("Static Method"); ) public static void main(String() args) ( // access the static variable age = 30; System.out.println("Age is " + age); // access the static method display(); ) )

Keluaran :

 Umur adalah 30 Kaedah Statik

Di sini, kita dapat mengakses pemboleh ubah statik dan kaedah secara langsung tanpa menggunakan nama kelas. Ini kerana pemboleh ubah dan kaedah statik secara umum. Oleh kerana kita mengakses dari kelas yang sama, kita tidak perlu menentukan nama kelas.

Blok Statik

Di Jawa, blok statik digunakan untuk menginisialisasi pemboleh ubah statik. Sebagai contoh,

 class Test ( // static variable static int age; // static block static ( age = 23; ) )

Di sini kita dapat melihat bahawa kita telah menggunakan blok statik dengan sintaks:

 static ( // variable initialization )

The static block is executed only once when the class is loaded in memory. The class is loaded if either the object of the class is requested in code or the static members are requested in code.

A class can have multiple static blocks and each static block is executed in the same sequence in which they have been written in a program.

Example 3: Use of static block in java

 class Main ( // static variables static int a = 23; static int b; static int max; // static blocks static ( System.out.println("First Static block."); b = a * 4; ) static ( System.out.println("Second Static block."); max = 30; ) // static method static void display() ( System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("max = " + max); ) public static void main(String args()) ( // calling the static method display(); ) )

Output:

 First Static block. Second Static block. a = 23 b = 92 max = 30

In the above program. as soon as the Main class is loaded,

  • The value of a is set to 23.
  • The first static block is executed. Hence, the string First Static block is printed and the value of b is set to a * 4.
  • The second static block is executed. Hence, the string Second Static block is printed and the value of max is set to 30.
  • Dan akhirnya, pernyataan cetak di dalam kaedah display()dijalankan.

Kelas Statik Bersarang

Di Jawa, kita dapat menyatakan kelas di dalam kelas lain. Kelas sedemikian dikenali sebagai kelas bersarang. Kelas bersarang terdiri daripada 2 jenis:

  • Kelas Bersarang Statik
  • Kelas Bersarang Bukan statik

Sebagai contoh,

 class OuterClass ( // static nested class static class NestedClass (… ) // non-static nested class class InnerClass (… ) )

Untuk mengetahui lebih lanjut, kunjungi Java Nested Class.

Artikel menarik...