JavaRush /Java Blog /Random-ID /Pengubah atau cara merapal pesona di dunia Java
Petr Gorskin
Level 22
Москва

Pengubah atau cara merapal pesona di dunia Java

Dipublikasikan di grup Random-ID
Selamat hari galaksi, kawan! Ini adalah naskah antarplanet pertama saya, dan karena saya seorang insinyur, interpretasi beberapa konsep dapat dilakukan dalam bahasa luar angkasa.
Modifier atau cara merapal enchant di dunia Java - 1
Pendahuluan Menurut saya, Jawa ibarat koridor tak berujung yang berpintu (paket). Di balik masing-masing pintu ini terdapat ruang kosong dan lemari arsip yang menyimpan segunung gulungan magis dengan instruksi (kelas) untuk membuat objek. Setiap gulungan menjelaskan sekumpulan karakteristik (variabel) dan kemampuan (metode) - tindakan (bidang) yang dilakukan baik pada kelas itu sendiri atau pada objek yang dikumpulkan berdasarkan kelas tersebut. Pada tahap ini, bayangkan diri kita sebagai penyihir dan mencoba membuat instruksi (kelas) yang benar-benar baru. Jadi: Pengubah atau cara merapal pesona di dunia Java - 2Mari kita minum ramuan kebijaksanaan (pelajari dasar-dasarnya) dan mulai menulis instruksi. Pengubah akses dan non-akses Mari kita bayangkan bahwa setiap instruksi dan objek yang dibuat atas dasar itu, serta karakteristik dan kemampuannya, pada awalnya akan terpesona secara ajaib, mis. mereka akan diberi set pengubah tertentu. Mari kita coba membuat panduan tentang kemungkinan pesona.
  1. Pengubah akses , yang menjelaskan aksesibilitas kelas, objek, atau bidang, diperlukan: jika tidak ada, JVM (ini adalah sumber keajaiban universal) secara otomatis menetapkan pengidentifikasi default ke paket.

    Mulai dari pengubah kedua terdapat pengubah non-akses, yang tidak wajib dan juga dapat bertentangan satu sama lain (tetapi yang pertama adalah yang pertama).

  2. Pengubah Statis menunjukkan bahwa kelas, objek, atau bidang bersifat statis. Tapi apa maksudnya? Intinya kami akan mencobanya di lapangan.

    Variabel statis disebut variabel kelas dan unik untuk semua instance kelas tersebut. Metode statis dapat dipanggil tanpa membuat objek yang mendeklarasikannya. Kelas statis digunakan ketika menyatukan satu kelas ke kelas lain dan prinsip interaksi antara kelas dalam dan kelas luar mirip dengan metode (ini adalah topik untuk diskusi terpisah). Dapat juga digunakan sebagai blok terpisah dalam suatu objek.

  3. Pengubah Final secara efektif menunjukkan kepada suatu variabel bahwa itu adalah sebuah konstanta. Untuk metode - bahwa mereka tidak dapat ditimpa selama pewarisan, tetapi untuk kelas ini merupakan indikasi bahwa metode tersebut tidak dapat diwarisi darinya (tidak dapat diubah).

    Pengubah statis dan final berlaku untuk kelas, objek, dan bidang. Namun, ada pengubah yang hanya berlaku untuk sebagian dari variabel tersebut (atau bahkan sebagian dari variabel tersebut, karena variabel dan metode adalah bidang, namun tidak semua pengubah berlaku untuk keduanya). Jika kita analogikan, hanya sepatu bot dan sarung tangan yang dapat disihir untuk kecepatan (untuk membuatnya bergerak lebih cepat), tetapi membuat topi untuk kecepatan tidak ada gunanya (dan Dewan Pengawas Universal (kompiler) tidak akan mengizinkannya).

  4. Pengubah Abstrak hanya berlaku untuk metode dan kelas . Metode abstrak adalah metode tanpa implementasi (tubuh).

    Jika suatu kelas ditandai sebagai abstrak, kelas tersebut berisi metode abstrak atau dilakukan untuk mencegah pembuatan instance kelas tersebut. Jika kita analogikan, di tengah instruksi Anda dapat melihat judul “Mewarnai suatu objek”, setelah itu tidak ada deskripsi. Itu. dengan menggunakan instruksi ini Anda dapat membuat sebuah objek dan Anda juga dapat mewarnainya, tetapi instruksi khusus ini tidak menyebutkan caranya (tulis instruksi Anda sendiri untuk membuat objek merah berdasarkan objek ini dan jelaskan cara mewarnainya).

Saat bekerja di lingkungan multi-utas, pengubah khusus dapat digunakan:
  1. Pengubah Tersinkronisasi hanya digunakan untuk metode. Kehadirannya menunjukkan bahwa hanya satu thread yang dapat mengeksekusinya dalam satu waktu. Dapat juga digunakan sebagai blok kode terpisah dalam suatu objek (menentukan objek sinkronisasi).

  2. Pengubah volatil - hanya untuk variabel . Disarankan digunakan untuk variabel yang dapat digunakan secara bersamaan oleh beberapa thread. Variabel dengan pengubah seperti itu langsung disalin dari cache prosesor ke memori utama setiap kali diubah, memungkinkan thread paralel menerima nilai terbaru.

    Perlu dicatat bahwa volatil berlaku dalam kasus di mana hanya satu thread yang dapat menulis ke suatu variabel, dan sisanya hanya dapat membaca dari variabel tersebut. Untuk kasus lain, lebih baik menambahkan pengubah tersinkronisasi ke metode yang menulis ke variabel volatil.

  3. Pengubah sementarahanya untuk variabel . Pengubah ini menandai variabel yang perlu dilewati saat membuat serialisasi suatu objek (ini adalah proses yang sangat cerdas sehingga, pada prinsipnya, Anda dapat membacanya sendiri...)*

    * - Saya menulis artikel ini di level 17 dan sampai saat itu serialisasi sebagai sebuah proses belum dijelaskan, jadi daripada menyalin-menempel, saya menyarankan Anda untuk mempelajarinya sendiri jika perlu.

Pasangan Pengubah yang Bertentangan Selain penerapan pengubah pada berbagai kelas, objek, dan bidang, ada juga konsep pasangan yang saling bertentangan. Katakanlah mempesona helm dengan kekuatan membuatnya berat, dan pada saat yang sama Anda ingin membuatnya ringan. Yang satu tidak cocok dengan yang lain.
  1. Final dan Volatile - jika menyangkut variabel, kita tidak dapat secara bersamaan mengatakan bahwa variabel tersebut final (konstan) dan beberapa thread memiliki kemampuan untuk mengubahnya... Bagaimanapun, ini konstan, dan setiap saat thread dapat membacanya , tetapi tidak ada satu thread pun yang dapat mengubah konstanta tersebut (Dewan Pengawas Universal tidak akan mengizinkannya).
  2. Final dan Abstrak - kelas dan metode tidak boleh bersifat abstrak (yang dalam banyak kasus menyiratkan perlunya memperjelasnya untuk implementasi) dan final, yaitu. kekal. Ternyata di petunjuknya tertulis cara membuat helm yang bagus dan tahan lama dari bahan apa saja (bagian abstrak), namun untuk itu tidak boleh ada lubang di dalamnya (bagian akhir yang wajib, tidak bisa diubah).
  3. Abstrak dan Statis - Metode abstrak tidak dapat statis atau disinkronkan secara bersamaan. Metode abstrak statis tidak masuk akal, karena tidak hanya tidak melakukan apa pun, tetapi juga milik seluruh kelas - hasilnya adalah hal yang tidak berguna.
  4. Abstrak dan Disinkronkan - apa gunanya menyinkronkan pekerjaan dengan metode yang tidak melakukan apa pun?
Kesimpulannya Jadi, deskripsi pengubah telah selesai, semua konflik telah diselesaikan dan sekarang Anda dapat mengkonsolidasikan hasilnya dengan lembar contekan - diagram pesona: Modifier atau cara merapal enchant di dunia Java - 3Sebagai kesimpulan, saya ingin mengatakan bahwa menulis artikel ini adalah realisasi dari keinginan saya untuk mempelajari pengubah. Apakah pengalaman itu berhasil atau tidak, terserah Anda untuk menilai. Saya menunggu saran Anda untuk memperbaiki/memperbaikinya dan, mungkin bersama-sama, kita akan menjadikannya panduan yang sangat berguna untuk pemain java pemula.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION