JavaRush /Blog Jawa /Random-JV /metode lan kelas Jawa pungkasan
articles
tingkat

metode lan kelas Jawa pungkasan

Diterbitake ing grup
Kanthi nunjukake metode kelas kanthi modifier final, tegese ora ana kelas turunan sing bisa ngatasi metode iki kanthi ngganti implementasine internal. Ing tembung liyane, kita ngomong bab versi final saka cara. Kelas sakabèhé uga bisa ditandhani minangka final. metode lan kelas Jawa pungkasan - 1
final class NoExtending {
// …
}
Kelas sing ditandhani finalora bisa diwarisake lan kabeh cara kanthi ora langsung entuk properti kasebut final. Nggunakake fitur finaling deklarasi kelas lan metode bisa nambah tingkat keamanan kode. Yen kelas dilengkapi modifier final, ora ana sing bisa ngluwihi kelas kasebut lan bisa uga nglanggar kontrak ing proses kasebut. Yen tandha finalnuduhake cara, sampeyan bisa dipercaya implementasine internal ing kabeh kahanan tanpa wedi "pemalsuan". Iku cocok kanggo nggunakake final, contone, ing pranyatan saka cara sing mbutuhake verifikasi sandi ngetik pangguna kanggo mesthekake yen eksekusi pas apa cara Originally dimaksudaké. Panyerang sing bisa uga ora bakal bisa ngganti implementasine asli saka metode kasebut kanthi "nglebokake" menyang program versi sing ditindhes, sing, ujar, mesthi ngasilake nilai sing bener, nuduhake registrasi pangguna sing sukses, preduli saka tembung sandi apa wae. dheweke pancen mlebu. Sampeyan duwe hak, yen kahanan tartamtu ngidini, kanggo pindhah luwih lan ngumumake finalkabeh kelas minangka kelas; cara ValidatePasswordbakal ndarbeni properti padha ora langsung. Panggunaan modifier finaling cara utawa deklarasi kelas nemtokke Watesan serius ing kamungkinan saka nggunakake luwih lan pangembangan kode. Panganggone finalmetode ing deklarasi minangka indikator manawa implementasine metode kasebut mandiri lan lengkap. Programer liyane sing pengin nggunakake kelas sampeyan, ngembangake fungsine sing cocog karo kabutuhan dhewe, bakal diwatesi ing pilihan sarana kanggo nggayuh tujuane utawa dirampas. Kanthi menehi tandha finalkelas minangka sakabehe, sampeyan bakal mateni kemampuane kanggo diwarisake lan bakal nyuda migunani kanggo wong liya. Nalika sampeyan arep nggunakake modifier final, priksa manawa sampeyan siyap kanggo kurban kuwi lan apa iku worth nggawe. Ing sawetara kasus, kanggo entuk tingkat keamanan kode sing cukup, ora perlu kanggo nemtokake kabeh kelas minangka final- cukup bisa kanggo njaga extensibility kelas kanthi menehi tandha finalmung unsur struktural "kritis" karo modifier. Ing kasus iki, sampeyan bakal ninggalake fungsi utama kelas utuh lan ing wektu sing padha ngidini warisan karo tambahan anggota anyar, nanging tanpa redefining "lawas". Mesthine, kolom sing diakses dening kode metode kasebut finalkudu ditunjuk minangka finalsalah siji private, amarga yen ora ana kelas asale bakal bisa ngganti isine, mengaruhi prilaku metode sing cocog. Efek liyane saka nggunakake modifier finalana hubungane karo simplifying masalah optimasi kode ditanggulangi dening compiler. Iki kedadeyan nalika metode sing ora ditandhani minangka diaranifinal, sistem runtime nemtokake kelas nyata obyek, nggandhengake telpon karo kode paling cocok saka klompok cara overloaded, lan transfer kontrol kanggo kode sing. Nanging yen, contone, cara getNameing conto kelas Attrrembugan sadurungé wis ditetepake minangka final, operasi nelpon bisa uga wis noticeably simplified. Ing kasus sing paling ora pati penting, kayata babagan getName, kompiler mung bisa ngganti panggilan metode kanthi kode awak. Mekanisme iki diarani kode inlining. Nalika nggunakake versi inline saka cara, getNameloro ekspresi ing ngisor iki dieksekusi persis padha:
system.out.println("id = " + rose.name);
system.out.println("id = " + rose.getName());
Sanajan ekspresi ing ndhuwur padha karo, sing nomer loro isih duwe kauntungan, amarga metode kasebut getNamengidini sampeyan menehi lapangan jeneng minangka properti mung diwaca, lan kode kelas duwe tingkat abstraksi tartamtu, sing ngidini sampeyan ngganti kanthi bebas. implementasi kelas. Skema optimasi sing padha bisa diterapake dening compiler menyang privatelan metode statiс, amarga padha uga ora ngidini overriding. Nggunakake modifier finaling deklarasi kelas uga ndadekake sawetara operasi mriksa jinis luwih efisien. Ing kasus iki, akeh operasi kasebut bisa ditindakake ing tahap kompilasi lan mula kesalahan potensial dideteksi luwih awal. Yen compiler ketemu referensi kanggo kelas ing teks sumber final, bisa "yakin" sing obyek sing cocog saka jinis kasebut. Compiler bisa langsung nemtokake panggonan sing dikuwasani dening kelas ing hirarki kelas sakabèhé lan mriksa apa digunakake kanthi bener utawa ora. Yen modifier finalora ditrapake, pamriksaan sing cocog ditindakake mung ing tahap eksekusi program. Latihan 3.4. Apa disaranake nyakup modifier pungkasan ing deklarasi metode (lan yen ya, sing endi) saka kelas kendaraan lan penumpang ? Pranala menyang sumber asli: http://src-code.net/metody-i-klassy-final-java
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION