Rumah > Java > javaTutorial > Akses Pengubahsuai dalam Java

Akses Pengubahsuai dalam Java

WBOY
Lepaskan: 2024-08-30 15:59:15
asal
380 orang telah melayarinya

Seperti yang kita sedia maklum, Java ialah salah satu bahasa pengaturcaraan teratas di dunia. Berbilion peranti bergantung padanya selama dua dekad yang lalu. Java ialah bahasa yang pantas, boleh dipercayai, selamat dan berbilang platform. Java berjalan pada mana-mana peranti selagi peranti itu mempunyai Java Runtime (JRE), menjadikannya berbilang platform, pantas dan boleh dipercayai. Pengubah suai akses ialah hak milik java, yang menjadikannya selamat merentasi pelbagai platform. Java menyediakan keselamatan peringkat kelas (semasa enkapsulasi) kepada pengaturcara dengan menggunakan sifat pengubah suai akses. Menurut buku itu, Kelas ialah pelan tindakan untuk membina objek dalam java, yang menjadikannya 'Blok bangunan' untuk program kerana Java ialah bahasa Berorientasikan Objek. Pengubah suai akses menentukan cara mana-mana kelas boleh mengakses kelas tertentu dan medan, pembina dan kaedahnya di dalam dan pakej yang berbeza. Kelas, medan, pembina dan kaedah boleh mempunyai satu daripada empat pengubah akses Java yang berbeza.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

  • Persendirian
  • Awam
  • Dilindungi
  • Lalai – Tiada kata kunci diperlukan.

Pengubahsuai Akses Berbeza dalam Java

Jadual berikut meringkaskan cara kami boleh menggunakan pengubah suai akses Java pada program:

Modifiers Class Packages Sub-Class World
Private Y N N N
Public Y Y Y Y
Protected Y Y Y N
Default Y Y N N

Kami akan merangkumi setiap pengubah suai akses Java dalam bahagian berikut.

1. Lalai

Apabila mana-mana kelas, ahli data dan pembolehubah diisytiharkan dengan tidak menulis dengan pengubah suai akses, maka ia ditetapkan kepada pengubah akses 'lalai'. Pengubah suai akses 'lalai' bermakna kod dalam mana-mana kelas boleh mengakses keseluruhan program dalam pakej yang sama.

  • Pengubah suai akses ini berfungsi dalam pakej yang sama sahaja.
  • Kadangkala, pengubah akses ‘lalai’ juga dirujuk sebagai pengubah akses pakej, kerana ia boleh diakses dalam pakej yang sama sahaja.
  • Subkelas tidak dapat mengakses kaedah, ahli data dan pembolehubah (medan) dalam superclass jika kaedah, ahli data dan pembolehubah (medan) ini ditandakan dengan pengubah akses 'lalai' dalam kelas melainkan subkelas ini terletak dalam pakej yang sama dengan superclass.

Contoh #1:

//Java program to show the default modifier.
package Test;
//Where Class eduCBA is having Default access modifier as no access modifier is specified here
class eduCBA
{
void display ()
{
System.out.println("Hello World!");
}
}
Salin selepas log masuk

Output:

Helo Dunia!

Contoh #2:

//Java program to show error while using class from different package with default modifier
package test2;
import test.*;
//This class check is having default access modifier
class Check
{
public static void main(String args[])
{
//accessing class eduCBA from package test
eduCBA obj = new eduCBA();
obj.display();
}
}
Salin selepas log masuk

Output:

Ralat masa kompilasi.

2. Dilindungi

Sintaks 'dilindungi' digunakan oleh pengguna apabila mereka mahu menggunakan pengubah suai akses ini.

  • Pengubah suai akses ini hanya boleh diakses dalam pakej yang sama atau subkelas yang sama dalam kelas yang berbeza (tetapi pengguna perlu mengimport pakej tersebut di tempat ia dinyatakan).
  • Pengguna tidak boleh menandakan kelas dan antara muka dengan pengubah suai akses yang 'dilindungi'. Walau bagaimanapun, Kaedah dan medan boleh diisytiharkan sebagai dilindungi Jika kaedah dan medan berada dalam antara muka.

Sebagai Contoh:

//Java program to show to protected access modifier
package test;
//Class eduCBA
public class eduCBA
{
protected void display ()
{
System.out.println("Hello World!");
}
}
//Java program to show to protected modifier in same sub-classes of different packages
package test2;
import test.*;
//Class pro is subclass of eduCBA
class pro extends eduCBA
{
public static void main(String args[])
{
pro obj = new pro();
obj.display();
}
}
Salin selepas log masuk

Output:

Helo Dunia!

3. Awam

Pengguna boleh mengisytiharkan kelas, kaedah, pembina dan antara muka dengan pengubah suai akses 'awam', yang boleh mengakses oleh mana-mana kelas, kaedah, pembina dan antara muka dalam atau pakej yang berbeza.

  • Pengubah suai akses ini mempunyai Tak terbatas antara semua pengubah.
  • Apabila mana-mana kelas, kaedah atau pakej ditandakan dengan pengubah suai akses 'awam', ia boleh diakses oleh semua orang dari mana-mana sahaja dari program.
  • Tiada had pada skop kaedah kelas akses 'awam'.

Sebagai Contoh: –

//Java program to show to public access modifier
package test;
public class eduCBA
{
public void display ()
{
System.out.println("Hello World!");
}
}
package test2;
import test.*;
class pub
{
public static void main (String args [])
{
eduCBA obj = new eduCBA ();
obj.display ();
}
}
Salin selepas log masuk

Output:

Helo Dunia!

4. Persendirian

Apabila kaedah atau pembolehubah ditandakan sebagai pengubah akses 'peribadi', maka kod di dalam kelas yang sama hanya boleh mengakses kaedah dan pembolehubah tersebut.

Pengguna tidak boleh mengisytiharkan mana-mana kelas super dengan pengubah suai akses 'peribadi' dalam program. Jika pengguna berbuat demikian dengan mana-mana kelas, ia menjadikan kelas itu tidak boleh diakses oleh mana-mana kelas lain dalam pakej yang sama, menjadikan kelas tidak boleh digunakan. Walau bagaimanapun, pengguna boleh mengisytiharkan pembolehubah dan kaedah dalam kelas dengan pengubah suai akses 'peribadi', jadi sesiapa sahaja tidak boleh menggunakan pembolehubah dan kaedah tersebut.

Kadangkala orang keliru dengan pengubah suai akses 'peribadi' dan 'dilindungi', tetapi kedua-duanya berbeza.

Sebagai Contoh: –

//Program to show error while using a class from different packages with private modifier.
package test;
class eduCBA
{
private void display()
{
System.out.println("Hello World!");
}
}
class Check
{
public static void main (String args[])
{
eduCBA obj = new eduCBA();
//make class check to access private method of another class eduCBA.
obj.display();
}
}
Salin selepas log masuk

Output:

ralat: display() mempunyai akses peribadi dalam eduCBA obj.display();

Kesimpulan

Pengubah suai akses Java memberi anda kelebihan tambahan terhadap program anda apabila anda menjadikannya umum. Seperti yang kita kaji di atas, Pelbagai jenis pengubah suai akses dalam JAVA dan spesifikasinya.

Jadi perlu diingat setiap kali anda menggunakan salah satu daripadanya sebagai akses kelas atau antara muka kerana ia bukan sahaja memberikan akses tetapi juga mengatasinya. Walaupun sentiasa ada kebimbangan mengenai kebolehcapaian kaedah dalam program. Contohnya, jika antara muka diberikan pengubah akses 'lalai' dalam kelas super, ia boleh mengatasi pengubah suai akses yang digunakan dalam subkelas kaedah.

Nota: Kelas termasuk pembolehubah, pembina, medan dan kaedah, dan antara muka termasuk medan atau kaedah tertentu.

Atas ialah kandungan terperinci Akses Pengubahsuai dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan