Pristup klasama, konstruktorima, metodama ipolja su regulirana pomoću modifikatora pristupa, tj. klasa može kontrolirati koji podaci ili podaci mogu biti dostupni drugim klasama. Da biste iskoristili prednost enkapsulacije, trebali biste minimizirati pristup kad god je to moguće.
Različiti Specifikteri pristupa ili Modifikatori pristupa na Javi
Za pomoć vam Java nudi nekoliko modifikatora pristupapostavljate željenu razinu pristupa za klase, kao i polja, metode i konstruktore u svojim klasama. Član ima paketni ili zadani pristup kada nije naveden modifikator pristupačnosti.
- Vrste modifikatora / odreditelja Java Accessa
- Primjeri programa, izlaz i objašnjenje.
Java Modifikatori / specifikatori pristupa
Postoje četiri vrste:Javnost, Zadano, Zaštićeno i Privatni.
1] Specifičnosti javnog pristupa
Polja, metode i konstruktori proglašeni javnim(najmanje restriktivne) unutar javne klase vidljive su bilo kojoj klasi u programu Java, bilo da su te klase u istom paketu (zbirka klasa, slične datoteke zaglavlja vidjeti kasnije) ili u drugom paketu.
2] Zadani specifikatori pristupa
Java pruža zadani specifikator koji se koristikada nema modifikatora pristupa Svaka klasa, polje, metoda ili konstruktor koji nema deklarirani modifikator pristupa dostupni su samo klasama u istom paketu. Zadani modifikator ne koristi se za polja i metode unutar sučelja.
3] Zaštićeni pristupnici
Zaštićena polja ili metode se ne mogu koristitiza klase i sučelja. Također se ne može koristiti za polja i metode unutar sučelja. Polja, metode i konstruktori zaštićeni su u superklasi. Pristupiti im mogu samo podklase u ostalim paketima. Klase u istom paketu mogu pristupiti i zaštićenim poljima, metodama i konstruktorima, čak i ako nisu potklasa klase zaštićenog člana.
4] Specifični podaci za pristup
Privatna (naj restriktivnija) polja ili metodene mogu se koristiti za klase i sučelja. Također se ne može koristiti za polja i metode unutar sučelja. Polja, metode ili konstruktori proglašeni privatnim strogo su kontrolirani, što znači da im ne može pristupiti bilo gdje izvan klase zatvaranja. Standardna strategija dizajna je učiniti sva polja privatnim i pružiti im javne metode javnih računala.
Ispod su programi za demonstraciju uporabejavni, privatni, zaštićeni i zadani modifikatori pristupa tijekom pristupa poljima i metodama. Izlazi svake od tih java datoteka prikazuju Java, pristupne odrednice.
Programi uzoraka za Java-modifikatore / specifikacije
1. program
class Employee{ public String employeeName; String address; protected int age; private double salary; void setSalary(double sal){ salary = sal; } private double getSalary(){ return salary; } void showDetails(){ System.out.println("Employee's Name: "+employeeName); System.out.println("Employee's Address: "+address); System.out.println("Employee's Age: "+age); } } class AccessSpecifierDemo{ public static void main(String args[]){ Employee employee = new Employee(); employee.employeeName = "Ronaldo"; employee.address = "Portugal"; employee.age = 29; employee.salary = 65034.00; } }
2. program
class Employee{ public String employeeName; String address; protected int age; private double salary; void setSalary(double sal){ salary = sal; } private double getSalary(){ return salary; } void showDetails(){ System.out.println("Employee's Name: "+employeeName); System.out.println("Employee's Address: "+address); System.out.println("Employee's Age: "+age); } } class AccessSpecifierDemo1{ public static void main(String args[]){ Employee employee = new Employee(); employee.employeeName = "Ronaldo"; employee.address = "Portugal"; employee.age = 29; //employee.salary = 65034.00; employee.setSalary(65304.00); System.out.println("Employee's salary: "+employee.getSalary()); } }
3. program
class Employee{ public String employeeName; String address; protected int age; private double salary; void setSalary(double sal){ salary = sal; } private double getSalary(){ return salary; } void showDetails(){ System.out.println("Employee's Name: "+employeeName); System.out.println("Employee's Address: "+address); System.out.println("Employee's Age: "+age); System.out.println("Employee's Salary: "+salary); //1 System.out.println("Employee's salary: "+getSalary()); //2 } } class AccessSpecifierDemo2{ public static void main(String args[]){ Employee employee = new Employee(); employee.employeeName = "Ronaldo"; employee.address = "Portugal"; employee.age = 29; //employee.salary = 65034.00; employee.setSalary(65304.00); //System.out.println("Employee's salary: "+employee.getSalary()); employee.showDetails(); } }
Izlaz
Objašnjenje Java Code & Outputa
Pažljivo promatrajte kod iodgovarajući izlaz istog programa. Sada ćemo objasniti program i njihov rezultat. U svim smo programima deklarirali po jednu instancu varijablu svake vrste specifičara pristupa.
Ako vidite prvi program, pokušali smo inicijalizirati plaću privatnog člana klase zaposlenika, ona baca pogrešku u sastavljanju govoreći plati ima privatni pristup u Employee. To znači da se privatnim poljima / varijablama ne može pristupiti izvan klase u kojoj je deklarirana.
Sada ako vidite drugi program, definirali smo javnu metodu setSalary () za inicijalizaciju varijabilne plaće privatnih članova. Ovdje ćemo naići na još jedan koncept koji privatni članovi bit će dostupni samo u klasi u kojoj postoje, Ali ovdje smo definirali privatnu metodu getSalary () kako bismo dobili vrijednost plaće. Ali isto tako privatnim metodama klase ne može se pristupiti izvan klase gdje je definirana. I dobivamo istu pogrešku kompilacije getSalary () ima privatni pristup u zaposlenom. Dakle, ne možemo dobiti vrijednost plaće ispisanu izvan te klase iako je postavljena metodom setSalary ().
Napokon, ako vidite treći program, dobit ćemo vrijednost plaće i sve vrijednosti ostalih instanci varijabli ispisane u zadanoj metodi showDetails () koja je definirana u klasi Employee.
Vidjet ćemo još jedan primjer u specificiranju pristupa nakon što završimo raspravu o nasljeđivanju i paketu.
komentari