Perbedaan antara final dan statis

Perbedaan antara final dan statis

Dalam matematika dan sains, konstanta adalah istilah yang menunjukkan nilai tertentu seperti 'π' yang merupakan nama praktis untuk angka 3.14159. Java memiliki konstanta. Ini adalah variabel yang di bawah (a) bukan milik objek dan sub (b) tidak mengubah nilainya setelah ditetapkan. Kata statis dalam deklarasi variabel menunjukkan bahwa variabel tidak termasuk objek apa pun. Ada kata kunci serupa yang mengatakan bahwa nilai variabel hanya akan diatur sekali dan tidak akan berubah. Ini adalah final kata kunci. Kata kunci ini tidak terbatas pada variabel statis tetapi dapat digunakan dengan variabel instance, 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 sangat ditentukan dan melaporkannya sebagai kesalahan. Adapun terminologi Java, variabel yang dinyatakan sebagai statis dan final disebut konstan.

Apa yang final?

Pengubah terakhir dapat digunakan di beberapa tempat dalam bahasa pemrograman Java. Di sini kita akan membahas penggunaan 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 menjadi konstan. Penerjemah Bahasa Terjemahan akan memeriksa apakah beberapa kode berusaha memodifikasi nilainya, dan upaya tersebut akan ditandai sebagai kesalahan. Inilah contohnya.

Nilai int akhir = 17;

Variabel anggota statis dengan pengubah ini digunakan sebagai konstanta global; Misalnya, di java.Lang.Variabel matematika pi, dinyatakan dengan tepat

pi ganda final statis publik = 3.14159265358979323846;

Kita dapat menerapkan pengubah akhir ke deklarasi fungsi. Fungsi yang ditandai dengan final tidak dapat lagi ditolak - yaitu implementasi terakhirnya. Metode abstrak tidak dapat dinyatakan akhir - fakta bahwa mereka adalah abstrak berarti mereka tidak memiliki implementasi; itu tentu tidak bisa menjadi keadaan utama mereka. Inilah contohnya.

public int int maknaeLife ()

kembali 42;

Kita dapat menerapkan pengubah akhir ke deklarasi kelas. Kelas yang ditandai dengan final tidak dapat lagi mewarisi - yaitu implementasinya. Jelas, kelas abstrak tidak bisa final secara bersamaan. Inilah contohnya

kelas akhir publik ditutup

//…

Salah satu contoh kelas yang terbatas adalah Java.Lang.Kelas String - Ini terbatas sehingga tidak ada yang bisa mewarisi dan dengan demikian mendapatkan akses ke variabel anggotanya.

Apa itu statis?

Variabel statis bukan milik contoh 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 contoh kelas memiliki salinan variabel tersebut sendiri. Variabel statis milik kelas - kelas dalam memori menjaga nilai -nilai variabel tersebut; Oleh karena itu semua kelas sampel 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 contoh kelas itu. Filter statis dapat diterapkan pada 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 itu adalah metode? Dengan mendeklarasikan metode tersebut sebagai statis, pesannya sama: metode yang relevan bukan milik kelas kelas tetapi untuk kelas itu sendiri. Akibatnya, metode statis tidak akan menerima referensi tersembunyi ke objek di mana mereka dipanggil atas panggilan; Dalam metode referensi statis ini tidak tersedia. Memang, memohon metode statis di seluruh objek sama membingungkannya dengan mengakses variabel anggota statis dengan merujuk pada referensi ini: dalam kedua kasus, lebih baik untuk hanya menulis nama kelas, poin, dan nama metode panggilan.

Perbedaan antara final dan statis

  1. Variabel

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

  1. metode

Static adalah metode yang sama untuk setiap objek yang diberikan kelas - juga disebut anggota kelas e.G. Begitulah metode utama. Metode akhir tidak dapat diproses di kelas yang diwariskan.

  1. Kelas

Final tidak dapat diperluas saya.e. tidak mengizinkan subkelas. Statis tidak berlaku untuk kelas.

  1. Nilai

Sederhananya, final menunjukkan bahwa nilainya tidak dapat diubah (override). Nilai statis diatur ke nilai defaultnya, tetapi dapat diinisialisasi ulang.

Final vs. Statis: Bagan Perbandingan

Ringkasan final dan statis

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