`final` Java lwn. `const` C: Bagaimana Ia Berbeza Di Luar Permukaan?

Susan Sarandon
Lepaskan: 2024-10-27 08:03:02
asal
144 orang telah melayarinya

 Java's `final` vs. C  's `const`: How Do They Differ Beyond the Surface?

Java's final' vs. C 's 'const': The Nuances Beyond Similarity

Sementara tutorial Java for C programmer mencadangkan bahawa Kata kunci 'akhir' Java secara kasarnya sama dengan 'const' C, pemeriksaan lebih dekat mendedahkan perbezaan yang ketara.

Semantik Ahli Fungsi

Dalam C , menandakan fungsi ahli 'const' menandakan bahawa ia boleh digunakan pada kejadian 'const'. Java kekurangan ciri ini. Contohnya, dalam C , 'i.foo()' dibenarkan pada 'const Foo& i,' tetapi 'i.bar()' akan dilarang.

Penugasan Nilai

Di Java, pembolehubah akhir boleh diberikan sekali, tetapi kemudian. Ini tidak dibenarkan dalam C . Sebagai contoh, dalam Java, 'a = 10;' adalah sah dalam 'kelas awam Foo { void bar() { final int a; } }.' Walau bagaimanapun, dalam C , tugasan sedemikian akan menjadi tidak sah.

Pembolehubah Ahli

Kedua-dua Java dan C membenarkan pembolehubah ahli masing-masing menjadi 'final' atau 'const'. Di Java, pembolehubah ini mesti ditetapkan sebelum pembina selesai, manakala dalam C , senarai permulaan mesti digunakan.

Pencegahan Override

Kata kunci 'akhir' Java boleh digunakan untuk mengelakkan kaedah mengatasi. C (pra-C 11) tidak mempunyai keupayaan ini. Di Java, 'public final void foo() {}' dalam kelas asas tidak boleh ditindih dalam kelas terbitan. Walau bagaimanapun, dalam C (pra-C 11), penggantian boleh dilakukan.

Kemas Kini C 11

C 11 memperkenalkan 'akhir' untuk menyediakan semantik yang setara dengan akhir Java . Ini membenarkan menandakan kelas dan fungsi ahli sebagai 'akhir,' menghalang penggantian. Selain itu, 'final' boleh digabungkan dengan 'const' untuk fungsi ahli.

Kesimpulan

Walaupun 'final' Java dan C 'const' berkongsi persamaan, perbezaan halus wujud dalam cara ia digunakan pada semantik fungsi ahli, penetapan nilai, pembolehubah ahli dan pencegahan mengatasi. C 11 mengembangkan 'const' untuk memasukkan konsep 'final,' memberikan penjajaran yang lebih besar dengan Java dalam aspek ini.

Atas ialah kandungan terperinci `final` Java lwn. `const` C: Bagaimana Ia Berbeza Di Luar Permukaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!