Perbedaan Antara Final dan Static

Dalam matematika dan sains, konstanta adalah istilah yang menunjukkan nilai tertentu seperti 'π' yang merupakan nama praktis untuk angka 3.14159. Jawa memiliki jenis konstanta. Ini adalah variabel yang di bawah (a) bukan milik objek apa pun dan sub (b) tidak mengubah nilainya setelah ditetapkan. Kata statis dalam deklarasi variabel menunjukkan bahwa variabel itu bukan milik objek apa pun. Ada kata kunci serupa yang mengatakan bahwa nilai variabel hanya akan ditetapkan sekali dan tidak akan berubah. Ini adalah kata kunci final. Kata kunci ini tidak terbatas pada variabel statis tetapi dapat digunakan dengan variabel instan, variabel lokal, dan bahkan dengan variabel yang merupakan metode parameter. Dengan mendeklarasikan variabel sebagai final, Anda menunjukkan kepada semua orang bahwa variabel selama keberadaan akan memiliki nilai yang sama. Lebih penting lagi, kompiler akan mendeteksi setiap upaya untuk mengubah nilai variabel yang dideklarasikan dan melaporkannya sebagai kesalahan. Adapun terminologi Java, variabel yang dinyatakan sebagai statis dan final disebut konstanta.

Apa itu Final??

Pengubah akhir dapat digunakan di beberapa tempat dalam bahasa pemrograman Java. Di sini kita akan membahas penggunaannya yang paling umum. Pengubah akhir dapat diterapkan pada deklarasi variabel lokal, argumen fungsi, dan variabel anggota non-statis atau statis. Dalam konteks ini, pengubah variabel dikonversi ke konstanta. Penerjemah bahasa terjemahan akan memeriksa apakah beberapa kode berusaha mengubah nilainya, dan upaya tersebut akan ditandai sebagai kesalahan. Ini sebuah contoh.

nilai int akhir = 17;

Variabel anggota statis dengan pengubah ini digunakan sebagai konstanta global; misalnya, dalam variabel java.lang.Math variabel, dinyatakan tepat

PI ganda final public static = 3.14159265358979323846;

Kita dapat menerapkan pengubah akhir pada deklarasi fungsi. Fungsi yang ditandai dengan final tidak dapat lagi dikesampingkan - itulah implementasi akhirnya. Metode abstrak tidak dapat dinyatakan final - fakta bahwa mereka abstrak berarti mereka kurang implementasi; itu tentu tidak bisa menjadi kondisi pamungkas mereka. Ini sebuah contoh.

arti akhir publik intLife ()

pengembalian 42;

Kita bisa menerapkan pengubah akhir ke deklarasi kelas. Kelas yang ditandai dengan final tidak bisa lagi mewarisi - itu adalah implementasi akhirnya. Jelas, kelas abstrak tidak bisa final sekaligus. Berikut ini sebuah contoh

kelas akhir umum Ditutup

// ...

Salah satu contoh kelas hingga adalah kelas java.lang.String - itu terbatas sehingga tidak ada yang bisa mewarisinya dan dengan demikian mendapatkan akses ke variabel anggotanya.

Apa itu Statis??

Variabel statis bukan milik instance kelas tertentu. Variabel statis milik kelas itu sendiri dan dalam memori hanya ada satu lokasi, terlepas dari jumlah salinan kelas yang dibuat dalam memori. Variabel non-statis milik spesimen kelas - setiap instance kelas memiliki salinan variabel tersebut sendiri. Variabel statis milik kelas - kelas dalam memori menjaga nilai variabel tersebut; semua kelas sampel karena itu melihat konten yang sama sehingga kami dapat mempertimbangkan variabel statis untuk dibagikan di antara semua ukuran kelas. Dengan memperbarui variabel nilai, nilai baru akan secara otomatis terlihat oleh semua instance kelas itu. Filter statis dapat diterapkan ke elemen apa pun yang dinyatakan secara hukum dalam suatu kelas. Dalam kasus variabel keanggotaan, konsekuensinya adalah bahwa variabel anggota tersebut akan disimpan dalam memori hanya di satu tempat. Apa yang terjadi jika ini adalah metode? Dengan mendeklarasikan metode sebagai statis, pesannya sama: metode yang relevan bukan milik kelas kelas tetapi ke kelas itu sendiri. Akibatnya, metode statis tidak akan menerima referensi tersembunyi ke objek tempat mereka dipanggil; dalam metode referensi statis ini tidak tersedia. Memang, menggunakan metode statis di objek sama membingungkannya dengan mengakses variabel anggota statis dengan merujuk pada referensi ini: dalam kedua kasus, lebih baik hanya menulis nama kelas, titik, dan nama metode panggilan.

Perbedaan Antara Final dan Static

  1. Variabel

Statis singkatan dari variabel yang umum untuk semua objek yang instantiate kelas yang diberikan sementara final mendefinisikan konstanta.

  1. metode

Statis adalah metode yang sama untuk setiap objek yang diberikan kelas - juga disebut anggota kelas mis. itulah metode utama. Metode final tidak dapat diproses di kelas yang diwariskan.

  1. Kelas

Final tidak dapat diperluas mis. Tidak mengizinkan subclass. Statis tidak berlaku untuk kelas.

  1. Nilai

Sederhananya, final menyatakan bahwa nilai tidak dapat diubah (override). Nilai statis diatur ke nilai standarnya, tetapi dapat diinisialisasi ulang.

Final vs. Static: Comparison Chart

Ringkasan Final dan Statis

  • Kunci statis bekerja menyediakan akses bahkan ketika tidak ada objek (contoh). Kelas-kelas yang menonjol dinyatakan melalui kata kunci statis. Jika Anda tidak ingin nilai beberapa perubahan nanti dalam program berjalan, atau jika Anda ingin memeriksa dan melarang kompiler, Anda dapat mengubah janji itu ke final. Ada blok statis untuk inisialisasi. Blok statis untuk inisialisasi dinyatakan sebagai kunci statis di depan tanda kurung. Jenis blok ini dilakukan sekali, selama membaca kelas, dan biasanya menginisialisasi anggota statis kelas.