Perbedaan Static Class dan Non Static Class Java
- Kelas Statis (Static Class):
- Kelas statis adalah kelas yang dideklarasikan dengan kata kunci static.
- Kelas statis tidak dapat diinstansiasi dengan menggunakan operator new.
- Kelas statis dapat memiliki anggota statis (static members) dan metode statis (static methods), tetapi tidak dapat memiliki anggota atau metode non-statis.
- Kelas statis sering digunakan untuk mengelompokkan fungsi-fungsi yang terkait secara logis bersama-sama, tanpa memerlukan pembuatan objek.
- Kelas Non-Statis (Non-Static Class):
- Kelas non-statis adalah kelas yang tidak dideklarasikan dengan kata kunci static.
- Kelas non-statis dapat diinstansiasi dengan menggunakan operator new.
- Kelas non-statis dapat memiliki anggota non-statis (non-static members) dan metode non-statis (non-static methods), serta anggota dan metode statis.
- Kelas non-statis sering digunakan untuk membuat blueprint untuk objek-objek yang dapat dibuat dan digunakan dalam program.
- Kelas Statis:
- Kelas statis sering digunakan untuk menyediakan fungsi utilitas (utility functions) yang dapat digunakan secara langsung tanpa perlu membuat objek.
- Contoh kelas statis adalah java.lang.Math, yang menyediakan metode-metode matematika statis seperti Math.max() dan Math.min().
- Kelas statis juga digunakan dalam pola desain tertentu, seperti pola singleton (singleton pattern) atau kelas utilitas (utility class).
- Kelas Non-Statis:
- Kelas non-statis digunakan untuk membuat objek-objek yang dapat disesuaikan dengan kebutuhan aplikasi.
- Contoh kelas non-statis adalah String, ArrayList, atau File, yang dapat diinstansiasi untuk membuat objek-objek unik dengan perilaku dan sifat yang berbeda.
- Kelas non-statis sering digunakan dalam pemrograman berorientasi objek untuk memodelkan konsep atau entitas dalam aplikasi.
- Kelas Statis:
- Anggota statis dari kelas statis dapat diakses langsung menggunakan nama kelas, tanpa perlu membuat objek.
- Contoh: StaticClass.staticMethod()
- Kelas Non-Statis:
- Untuk mengakses anggota non-statis dari kelas non-statis, pengembang perlu membuat objek dari kelas tersebut dan menggunakan objek tersebut untuk memanggil metode atau mengakses variabel non-statis.
- Contoh: NonStaticClass obj = new NonStaticClass(); obj.nonStaticMethod();
- Fungsionalitas Utilitas yang Mandiri: Kelas statis sering digunakan untuk menyediakan fungsi utilitas (utility functions) yang mandiri. Fungsi-fungsi ini dapat digunakan secara langsung tanpa perlu membuat objek dari kelas tersebut, sehingga memudahkan penggunaan dan mengurangi overhead pembuatan objek.
- Tidak Memerlukan Pembuatan Objek: Karena kelas statis tidak dapat diinstansiasi, tidak perlu membuat objek dari kelas tersebut untuk menggunakan metode atau variabel statisnya. Hal ini menghemat memori dan waktu komputasi yang diperlukan untuk pembuatan objek.
- Pembatasan Akses ke Anggota: Kelas statis hanya dapat memiliki anggota statis, yang dapat diakses langsung menggunakan nama kelas tanpa perlu membuat objek. Hal ini memudahkan penggunaan dan meminimalkan kompleksitas akses ke anggota kelas.
- Penggunaan dalam Pola Desain Tertentu: Kelas statis sering digunakan dalam pola desain tertentu, seperti pola singleton (singleton pattern) atau kelas utilitas (utility class). Hal ini memungkinkan pengembang untuk mengimplementasikan pola desain yang umum digunakan dengan lebih mudah dan efisien.
- Kemudahan Penggunaan dalam Lingkungan Paralel: Karena kelas statis tidak memiliki keadaan objek yang berubah, maka kelas tersebut akan lebih mudah digunakan dalam lingkungan paralel atau multithreaded. Tidak ada kebutuhan untuk sinkronisasi akses ke objek karena tidak ada objek yang dibuat.
- Meningkatkan Keterbacaan dan Kepahaman Kode: Penggunaan kelas statis untuk menyimpan fungsi-fungsi utilitas atau metode-metode yang terkait secara logis dapat meningkatkan keterbacaan dan kepahaman kode. Fungsi-fungsi tersebut dikelompokkan bersama-sama dalam satu tempat yang mudah diakses dan dipahami.
- Kemampuan untuk Membuat Objek yang Berbeda: Kelas non-statis dapat diinstansiasi untuk membuat objek yang berbeda dengan perilaku dan sifat yang dapat disesuaikan. Hal ini memungkinkan pembuatan objek yang unik untuk mewakili entitas atau konsep dalam aplikasi.
- Fleksibilitas dalam Pemrograman Berorientasi Objek: Penggunaan kelas non-statis mendukung konsep pemrograman berorientasi objek dengan memungkinkan pembuatan objek yang memenuhi kebutuhan spesifik aplikasi. Kelas non-statis dapat digunakan untuk mewakili entitas, mengelola data, atau menyediakan fungsi khusus dalam aplikasi.
- Perilaku dan Keadaan Objek yang Dinamis: Kelas non-statis dapat memiliki anggota dan metode non-statis, yang memungkinkan perilaku dan keadaan objek yang dinamis. Dengan menggunakan objek yang dibuat dari kelas non-statis, pengembang dapat memanfaatkan keadaan objek yang berubah selama siklus hidup aplikasi.
- Fleksibilitas dalam Penerapan Pola Desain: Kelas non-statis sering digunakan dalam penerapan pola desain tertentu, seperti pola fabrik (factory pattern), pola penghubung (proxy pattern), atau pola pengamat (observer pattern). Hal ini memungkinkan penggunaan pola desain yang fleksibel dan kuat dalam pengembangan aplikasi Java.
- Penggunaan dalam Pemrograman Berorientasi Objek: Kelas non-statis adalah inti dari pemrograman berorientasi objek dalam Java. Kelas tersebut memungkinkan pembuatan objek, pewarisan, enkapsulasi, dan polimorfisme, yang merupakan konsep-konsep dasar dalam pemrograman berorientasi objek.
- Fleksibilitas dalam Pengujian dan Debugging: Objek yang dibuat dari kelas non-statis dapat dengan mudah diuji dan dibug. Hal ini memungkinkan pengembang untuk menguji perilaku objek secara terpisah dan memperbaiki bug dengan lebih mudah daripada kelas statis.
Perbedaan Antara Static dan Non Static Nested Class
Beberapa perbedaan umum antara class nested static dan class nested nonstatic adalah sebagai berikut:- Nested static class tidak membutuhkan referensi dari outer class, tetapi non static nested class atau inner class membutuhkan referensi outer class.
- Inner class atau non static nested class dapat mengakses keduanya baik itu anggota static dan non static dari outer class. Sebuah class static tidak dapat mengakses anggota non static dari outer class. Non static class hanya bisa mengakses anggota static dari outer class.
- Instance dari inner class tidak bisa diciptakan tanpa instance dari outer class dan inner class bisa mendefinisikan referensi data dan method di dalam outer class dan juga nested-nya, jadi tidak perlu melewati referensi dari object ke constructor dari inner class. Untuk alasan ini inner class dapat membuat program yang sederhana dan ringkas.
// Program Java
// mendemonstrasikan bagaimana
// cara implementasi static
// dan non static class pada
// program Java.
class OuterClass
{
private static String msg = "MakanNasiPadang";
/* Static nested class */
public static class NestedStaticClass {
// Hanya anggota static dari
// outer class yang diakses
// secara langsung dalam
// nested.
/* Static class */
public void printMessage() {
// Mencoba membuat 'message'
// sebuah non static variabel,
// akan terdapat kompilator
// error.
System.out.println("Pesan "
+"dari class nested static: "
+msg);}
}
// Class nested non static
// atau juga disebut sebagai
// inner class.
public class InnerClass {
// Keduanya baik anggota
// static dan non static dari
// outer class dapat diakses
// dalam inner class pada
// bagian ini.
public void display()
{System.out.println("Pesan"
+" dari class nested"
+" non-static: "
+msg);}}
}
class Main
{
// Bagaimana cara menciptakan
// instance dari static dan
// non static nested class.
public static void main(String args[]){
// Menciptakan instance dari
// nested static class.
OuterClass.NestedStaticClass printer = new OuterClass.NestedStaticClass();
// Memanggil non static method
// dari nested static class.
printer.printMessage();
// Untuk menciptakan instance
// dari inner class dibutuhkan
// instance outer class.
// Ciptakan instance outer
// class untuk menciptakan non
// static nested class.
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
// Memanggil non static method
// dari inner class.
inner.display();
// Dapat juga dilakukan
// kombinasi pada tahap di
// atas dalam satu tahapan
// untuk menciptakan instance
// dari inner class.
OuterClass.InnerClass innerObject = new OuterClass().new InnerClass();
// Hal yang sama juga dapat
// dilakukan untuk memanggil
// inner class method.
innerObject.display();}
}
Pesan dari class nested non-static: MakanNasiPadang
Pesan dari class nested non-static: MakanNasiPadang
Kesimpulan
- Program Block Static Java dan Fungsinya
- Block Inisialisasi Java dan Fungsinya
- Cara Inisialisasi Block Instance Java dan Fungsinya
- Static dan Dynamic Binding Java dan Fungsinya
- Java Bukan Pemrograman Berorientasi Objek Murni dan Alasannya
- Multiple Inheritance Java dan Fungsinya
- Membuat Object Java dari Class Turunan dan Fungsinya
6 komentar untuk "Perbedaan Static Class dan Non Static Class Java"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apa yang dimaksud dengan static class pada Java?
BalasHapusStatic class pada Java adalah mirip dengan class yang sifatnya abstract dan terisolasi. Perbedaan antara static class dan non static class adalah static class tidak dapat dibuat instance-nya ataupun diturunkan pada class lain, dan semua anggota class tersebut adalah bersifat static.
HapusApa keuntungan menggunakan class static pada Java?
BalasHapusKelebihan dari penggunaan static class pada Java adalah kompilator dapat memeriksa guna memastikan bahwa tidak ada anggota instance yang ditambahkan secara tidak sengaja pada class tersebut. Kompilator akan menjamin bahwa static class tersebut tidak dapat diciptakan kembali. Static class disegel dan tidak dapa diwariskan kepada class lainnya. Class tersebut juga tidak dapat mewarisi isi dari class lain manapun kecuali dari object.
HapusKenapa dibutuhkan static class pada pemrograman Java?
BalasHapusPada Java, keywrod static utamanya digunakan untuk manajemen memori. Keyword tersebut dapat digunakan menggunakan variabel, method, block, dan nested class. Keyword tersebut juga adalah keyword yang digunakan untuk berbagi variabel atau method yang sama dari class tertentu. Pada dasarnya, static digunakan untuk variabel konstanta atau method yang sama untuk setiap instance class.
Hapus