logo

Јавна вс приватна Јава

у Јави, јавности и приватни су кључне речи који су познати као ан модификатор приступа или спецификација . Ограничава обим или приступачност класе, конструктор , Променљиве , методом с, и чланови података. Зависи од чега се примењује. Јава пружа четири типа модификатора приступа: јавно, приватно, заштићено , и Уобичајено . Али у овом одељку ћемо размотрити само два јавна и приватна, а такође ћемо разговарати о разлика између јавног и приватног спецификација приступа са примером.

Модификатори приступа контролишу да ли друге класе могу да користе одређено поље или да позивају одређени метод. Јава пружа два нивоа контроле приступа:

    Највиши ниво:На овом нивоу можемо користити само а јавности Ниво члана:На овом нивоу можемо користити јавно, приватно, заштићено и пакет-приватно (ако не користимо експлицитни модификатор познат је као пакет-привате).

Следећа табела приказује ниво приступа члановима који дозвољавају јавни и приватни модификатори.

јава водич за почетнике
Јавна вс приватна Јава

Још увек нису јасне разлике између њих? Дозволите ми да вам покажем слику која показује како нивои приступа утичу на видљивост. Следећа слика приказује два пакета п1 и п2 . Сваки пакет садржи две класе Демо1 и Демо2 (у пакету п1), и Демо3 и Демо4 (у пакету п2).

Јавна вс приватна Јава

Следећа табела описује видљивост класа ако учинимо класе јавне и приватне једну по једну. На горњој слици Демо1 је једина класа која је видљива за сваки модификатор приступа.

Јавна вс приватна Јава

Хајде да о томе детаљно разговарамо.

Модификатор јавног приступа

Може се одредити коришћењем јавности кључна реч. Његов опсег или приступачност је најшири међу осталим спецификацијама приступа. Променљиве, класе и методе декларисане као јавне могу се приступити са свих места у програму. Не намеће ограничења на обим чланова јавних података. Ако методе и класе прогласимо јавним, они такође крше принцип инкапсулација . Можемо га користити и са класама највишег нивоа.

Хајде да користимо спецификацију приватног приступа у а Јава програм ради бољег разумевања.

Демо1.јава

наплата са гит-ом
 package p1; public class Demo1 { public void show() { System.out.println('Javatpoint'); } } 

Демо2.јава

 package p2; import p1.*; class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); obj.show(); } } 

Излаз

 Javatpoint 

Модификатор приватног приступа

То је супротно од модификатора публиц. Може се одредити коришћењем приватни кључна реч праћена именом класе (примењено само на угнежђене класе) или именом методе или чланом података. Не можемо користити спецификацију приватног приступа са класама највишег нивоа или интерфејси . Променљиве, методе и класе декларисане као приватне могу се приступити само у класи у којој су декларисане или наслеђивањем родитељских класа. То је најограниченији спецификација приступа у Јави. То је висински облик инкапсулације.

апстрактна класа против интерфејса
  • Не можемо прегазити методе које су декларисане као приватне.
  • Ако користимо приватни модификатор са конструктором, избегавамо да буде подкласиран.
  • Сакрива класе од других класа унутар исте пакет .

Хајде да користимо спецификацију приватног приступа у Јава програму ради бољег разумевања.

У следећем примеру, декларисали смо две класе: Демо1 и Демо2. У класи Демо1 дефинисали смо метод Прикажи() као приватни. Класа Демо2 садржи метод маин() у коме смо креирали објекат класе Демо1. Након тога покушавамо да приступимо приватној методи класе Демо1 из класе Демо2, то није могуће. Али ипак, ми ћемо извршити програм да видимо коју грешку показује.

 class Demo1 { //defining method as private private void show() { System.out.println('Javatpoint'); } } public class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); //trying to access private method of the class Demo1 obj.show(); } } 

Када извршимо горњи програм, он показује следећу грешку:

Јавна вс приватна Јава

Разлика између јавног и приватног спецификација приступа у Јави

Главна разлика између јавних и приватних модификатора је њихова видљивост. Јава категорише видљивост за чланове класе на следећи начин:

  • Подкласе у истом пакету
  • Не-подкласе у истом пакету
  • Подкласе у различитим пакетима
  • Класе ни у истом пакету ни подкласама
Јавна вс приватна Јава

Који би требало да користимо?

Требало би да користимо модификатор јавног приступа ако желимо да учинимо метод или својство видљивим са било ког места, других класа и инстанци објекта. Користите модификатор приватног приступа ако желите да метод или својство учините видљивим само у својој класи. Избегавајте јавна поља осим константи.