Kata Kunci Statis Java (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang kata kunci statis Java bersama dengan metode statis, variabel statis, dan blok statis dengan bantuan contoh.

Apa itu kata kunci statis di Java?

Di Java, jika kita ingin mengakses anggota kelas, pertama-tama kita harus membuat instance kelas. Tetapi akan ada situasi di mana kita ingin mengakses anggota kelas tanpa membuat variabel apa pun.

Dalam situasi tersebut, kita dapat menggunakan statickata kunci di Java. Jika kita ingin mengakses anggota kelas tanpa membuat instance kelas, kita perlu mendeklarasikan anggota kelas statis.

The Mathkelas di Jawa memiliki hampir semua anggota statis. Jadi, kita dapat mengakses anggotanya tanpa membuat instance kelas Matematika. 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 absolut -12 = 12 Nilai PI = 3.141592653589793 Nilai E = 2.718281828459045 2 2 = 4.0

Dalam contoh di atas, kami belum membuat instance Mathkelas apa pun. Tetapi kita dapat mengakses metodenya: abs()dan pow()dan variabel: PIdan E.

Hal ini dimungkinkan karena metode dan variabel Mathkelas bersifat statis.

Metode Statis

Metode statis juga disebut metode kelas. Itu karena metode statis milik kelas daripada objek kelas.

Dan kita bisa memanggil metode statis 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 bahwa metode statis dapat diakses langsung dari kelas lain dengan menggunakan nama kelas.

Di setiap program Java, kami telah mendeklarasikan mainmetode tersebut static. Itu karena untuk menjalankan program JVM harus dapat memanggil metode utama selama fase awal di mana tidak ada objek yang ada di memori.

Contoh 1: Metode statis dan non-statis 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 mendeklarasikan metode non-statis bernama multiply()dan metode statis bernama add()di dalam kelas StaticTest.

Di dalam kelas Main, kita dapat melihat bahwa kita memanggil metode non-statis menggunakan objek kelas ( st.multiply(2, 2)). Namun, kami memanggil metode statis dengan menggunakan nama kelas ( StaticTest.add(2, 3)).

Variabel Statis

Di Java, ketika kita membuat objek kelas, maka setiap objek akan memiliki salinannya sendiri dari semua variabel 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, objek test1 dan test2 akan memiliki salinan terpisah dari variabel usia. Dan, mereka berbeda satu sama lain.

Namun, jika kita mendeklarasikan variabel statis, semua objek kelas berbagi variabel statis yang sama. Itu karena seperti metode statis, variabel statis juga dikaitkan dengan kelas. Dan, kita tidak perlu membuat objek kelas untuk mengakses variabel statis. Sebagai contoh,

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

Di sini, kita dapat melihat bahwa kita mengakses variabel statis dari kelas lain menggunakan nama kelas.

Contoh 2: Variabel statis dan non-statis 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 mendeklarasikan variabel non-statis bernama min dan variabel statis bernama max di dalam kelas Test.

Di dalam kelas Main, kita dapat melihat bahwa kita memanggil variabel non-statis menggunakan objek dari kelas ( obj.min + 1). Namun, kami memanggil variabel statis dengan menggunakan nama kelas ( Test.max + 1).

Catatan : Variabel statis jarang digunakan di Java. Sebagai gantinya, digunakan konstanta statis. Konstanta statis ini ditentukan oleh static finalkata kunci dan direpresentasikan dalam huruf besar. Inilah sebabnya mengapa beberapa orang lebih suka menggunakan huruf besar untuk variabel statis juga.

Akses Variabel dan Metode statis dalam Kelas

Kami mengakses variabel statis dari kelas lain. Karenanya, kami telah menggunakan nama kelas untuk mengaksesnya. Namun, jika kita ingin mengakses static member dari dalam kelas, maka dapat 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 :

 Usia 30 Metode Statis

Di sini, kita dapat mengakses variabel dan metode statis secara langsung tanpa menggunakan nama kelas. Itu karena variabel dan metode statis secara default adalah publik. Dan, karena kita mengakses dari kelas yang sama, kita tidak perlu menentukan nama kelas.

Blok Statis

Di Java, blok statis digunakan untuk menginisialisasi variabel statis. Sebagai contoh,

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

Di sini kita dapat melihat bahwa kita telah menggunakan blok statis 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 metode display()dijalankan.

Kelas Statis Bersarang

Di Java, kita bisa mendeklarasikan kelas di dalam kelas lain. Kelas semacam itu dikenal sebagai kelas bersarang. Kelas bertingkat terdiri dari 2 jenis:

  • Kelas Bersarang Statis
  • Kelas Bersarang Non-statis

Sebagai contoh,

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

Untuk mempelajari lebih lanjut, kunjungi Java Nested Class.

Artikel yang menarik...