Rumah >Java >javaTutorial >Memahami Skop Pembolehubah Corak di Jawa
Skop merujuk kepada julat atau sempadan di mana pembolehubah atau kod tertentu boleh diakses dan digunakan. Dalam pengaturcaraan, pembolehubah corak digunakan untuk memadankan struktur data tertentu dan skopnya boleh dihadkan kepada syarat atau pernyataan tertentu.
Katakan kita mempunyai senario di mana pengguna boleh menjadi pentadbir atau pengguna biasa. Kita boleh menggunakan operator instanceof untuk menyemak jenis pengguna dan kemudian mengakses sifat khusus mereka berdasarkan peranan mereka. Dalam contoh ini, skop pembolehubah corak akan dihadkan kepada peranan khusus pengguna:
if (user instanceof Administrator admin) { // Here we can access the properties and methods of the admin user. admin.addNewUser(); } else if (user instanceof RegularUser regUser) { // Here we can only access the properties and methods of a regular user. regUser.editProfile(); }
Dalam kod di atas, skop pentadbir pembolehubah corak dihadkan kepada pernyataan if di mana keadaan instanceof adalah benar. Ini bermakna kami hanya boleh mengakses sifat dan kaedah pengguna pentadbir dalam pernyataan tersebut.
Begitu juga, skop pembolehubah corak boleh melangkaui pernyataan di mana ia diperkenalkan. Katakan kita mempunyai fungsi yang menyemak sama ada bentuk yang diberikan ialah segi empat tepat dan jika ia cukup besar. Dalam kes ini, skop pembolehubah corak r akan melangkaui pernyataan if di mana ia diperkenalkan:
public static boolean bigEnoughRect(Shape s) { if (!(s instanceof Rectangle r)) { // Here the pattern variable 'r' cannot be used as the instance of Rectangle is false. return false; } // However, we can access the properties and methods of the rectangle 'r' here. return r.length() > 5; }
Pembolehubah corak juga boleh digunakan dalam ungkapan pernyataan if. Ini membolehkan kami mengakses pembolehubah corak hanya jika pernyataan bersyarat adalah benar. Dalam contoh berikut, kami menggunakan pembolehubah corak r untuk menyemak sama ada panjang segi empat tepat lebih besar daripada 5 menggunakan operator bersyarat-AND:
if (shape instanceof Rectangle r && r.length() > 5) { // Here we can use the pattern variable 'r' to access the properties of a rectangle only if the instance of Rectangle is true. System.out.println("This rectangle is big enough!"); }
Walau bagaimanapun, kami tidak boleh menggunakan operator instanceof dalam pernyataan bersyarat untuk memadankan corak, kerana ia menyemak jenis skop yang berbeza. Dalam contoh berikut, atur cara akan membuang ralat kerana skop pembolehubah corak r tidak boleh diakses jika instanceof Rectangle adalah palsu:
if (shape instanceof Rectangle r || r.length() > 0) { // error // Here we cannot use the pattern variable 'r' as it may or may not exist depending on the instance of Rectangle. System.out.println("This is a rectangle with a length greater than 0"); }
Kesimpulannya, skop pembolehubah corak adalah penting dalam menentukan tempat kita boleh mengakses dan menggunakannya dalam kod kita. Dengan memahami skopnya, kami boleh menggunakan pembolehubah corak dengan cekap untuk memadankan struktur data dan menulis kod yang cekap dan bebas ralat.
Atas ialah kandungan terperinci Memahami Skop Pembolehubah Corak di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!