Isang lecture snippet na may mentor bilang bahagi ng kurso ng Codegym University. Mag-sign up para sa buong kurso.


"Greetings, Amigo! Balita ko naiintindihan mo na ang mga pamamaraan?"

"Hi, Rishi. Oo, nalampasan ko na ang lansi ng gurong iyon. Sasabihin ko na hindi naman masama, ngunit sasabihin mo sa akin, 'Hindi, hindi! Wala kang naisip. '"

"Malinaw na masyado kang gumugugol ng maraming oras sa pakikipag-chat sa ilang mga guro, marahil kay Diego. Anyway... Umaasa pa rin akong naiintindihan mo nang mabuti ang mga pamamaraan. Pagkatapos ng lahat, ngayon ay tuturuan kita ng ilang mahiwagang salita na makakatulong sa pagtukoy ng mga pamamaraan. ' mga saklaw ng impluwensya."

"Mukhang nakakaintriga."

"Sa katunayan, ang lahat ay simple. Bago ang bawat pamamaraan, maaaring tukuyin ng mga programmer ang tinatawag na mga modifier ng pag-access. Kabilang dito ang mga sumusunod na keyword: public, protected, private.

"Ang mga modifier ng access na ito ay nagbibigay-daan sa iyong paghigpitan ang access ng ibang mga klase sa isang pamamaraan.

"Halimbawa, kung isusulat mo ang privatekeyword bago ang isang deklarasyon ng pamamaraan, ang pamamaraan ay maaari lamang tawagin mula sa parehong klase kung saan ito idineklara. Ang publickeyword ay nagbibigay-daan sa pag-access sa minarkahang pamamaraan mula sa anumang paraan ng anumang klase.

Mayroong kabuuang 3 tulad na modifier , ngunit mayroong 4 na uri ng access sa isang paraan. Ito ay dahil ang kawalan ng isang access modifier ay nangangahulugan din ng isang bagay. Narito ang isang kumpletong talahanayan:

Access mula sa...
Mga modifier Kahit anong klase Klase ng bata Ang pakete nito Ang klase nito
public Oo Oo Oo Oo
protected Hindi Oo Oo Oo
walang modifier Hindi Hindi Oo Oo
private Hindi Hindi Hindi Oo

"At narito ang kumpletong paliwanag ng mga modifier ng access:

1. publicmodifier

Ang isang paraan (o variable, o klase) na minarkahan ng publicmodifier ay maaaring ma-access mula sa kahit saan sa programa . Ito ang pinakamataas na antas ng pagiging bukas — walang mga paghihigpit.

2. privatemodifier

Ang isang paraan (o variable, o klase) na minarkahan ng privatemodifier ay maa-access lang mula sa parehong klase kung saan ito idineklara . Para sa lahat ng iba pang mga klase, ang minarkahang pamamaraan (o variable) ay hindi nakikita. Parang wala lang. Ito ang pinakamataas na antas ng paghihigpit — ang sarili nitong klase lamang.

3. Walang modifier (default modifier)

Kung ang isang paraan (o variable) ay hindi minarkahan ng anumang modifier, kung gayon ito ay itinuturing na may 'default na modifier'. Ang mga variable o pamamaraan na may modifier na iyon (ibig sabihin, wala man lang) ay makikita ng lahat ng klase sa package kung saan idineklara ang mga ito . At sa kanila lamang. Ang modifier na ito ay tinatawag ding minsan package-private, na nagpapahiwatig na ang pag-access sa mga variable at pamamaraan ay bukas sa buong package kung saan matatagpuan ang kanilang klase.

4. protectedmodifier

Kung ang isang pamamaraan ay minarkahan ng protectedmodifier, maaari itong ma-access mula sa parehong klase, sa parehong pakete, at mga inapo (mga klase na nagmamana ng klase kung saan ipinahayag ang pamamaraan). Susuriin namin ang paksang ito nang mas detalyado sa Java Core quest."

"Kawili-wili, ngunit hindi ako sigurado kung mailalagay ko kaagad ang mga modifier na ito sa lahat ng tamang lugar.

"Darating ka doon unti-unti. Hindi na kailangang mag-alala nang maaga. Hanggang sa maabot mo ang dulo ng Java Syntax quest, magagamit mo ang publicmodifier sa lahat ng iyong pamamaraan (pati na rin ang mga klase at mga variable ng instance). Kakailanganin mo ang iba pang mga modifier kapag nagsimula kaming aktibong matuto ng OOP."

"Maaari mo bang ipaliwanag nang mas detalyado kung bakit kailangan ang mga modifier ng access?"

"Nagiging kinakailangan sila para sa malalaking proyekto na isinulat ng sampu at daan-daang mga programmer nang sabay-sabay.

"Minsan may mga sitwasyon kung kailan gustong hatiin ng programmer ang isang napakalaking paraan sa mga bahagi at ilipat ang bahagi ng code sa mga pamamaraan ng helper. Ngunit sa parehong oras, ayaw niyang tawagan ng ibang programmer ang mga pamamaraang ito ng helper, dahil ang maaaring hindi gumana nang tama ang kaukulang code."

"Kaya nakaisip sila ng mga access modifier na ito. Kung mamarkahan mo ang isang helper method ng salitang pribado , walang code maliban sa iyong klase ang makakakita ng iyong helper method."

"Naiintindihan ko yata."

statickeyword

"May isa pang kawili-wiling keyword. Ito ay static. Hindi nakakagulat, ginagawa nitong static ang mga pamamaraan."

"Anong ibig sabihin niyan?"

"Sasabihin ko sa iyo ang higit pa tungkol dito mamaya. Huwag mag-alala. Sa ngayon, subukan lang na tandaan ang ilang mga katotohanan tungkol sa mga static na pamamaraan.

Katotohanan 1. Ang isang static na pamamaraan ay hindi nakakabit sa anumang bagay, ngunit sa halip ay kabilang sa klase kung saan ito idineklara. Upang tumawag sa isang static na pamamaraan, kailangan mong isulat:

ClassName.MethodName()

Mga halimbawa ng mga static na pamamaraan:

Pangalan ng klase Pangalan ng static na pamamaraan
Thread.sleep() Thread sleep()
Math.abs() Math abs()
Arrays.sort() Arrays sort()

Ang pangalan ng klase bago ang pangalan ng isang static na pamamaraan ay maaaring tanggalin kung tatawagin mo ang static na pamamaraan mula sa loob ng klase nito. Ito ang dahilan kung bakit hindi mo kailangang magsulat Solutionbago ang mga pangalan ng bawat isa sa mga static na pamamaraan na tinatawag.

Katotohanan 2. Hindi ma-access ng isang static na pamamaraan ang mga non-static na pamamaraan ng sarili nitong klase. Ang isang static na pamamaraan ay maaari lamang ma-access ang mga static na pamamaraan. Bilang resulta, ipinapahayag namin ang lahat ng mga pamamaraan na gusto naming tawagan mula sa mainpamamaraang static."

"Bakit naman?"

"Sasagot ka sa tanong na ito sa iyong sarili kapag nagsimula kang matuto ng OOP at maunawaan kung paano gumagana ang mga static na pamamaraan. Hanggang doon, magtiwala ka lang sa akin.

throwskeyword

"May isa pang keyword na malamang na nakita mo sa isang deklarasyon ng paraan — ang throwskeyword. Hindi tulad ng mga modifier ng access at statickeyword, inilalagay ang keyword na ito pagkatapos ng mga parameter ng pamamaraan:

public static Type name(parameters) throws Exception
{
  method body
}

"At ano ang ibig sabihin nito?"

"Muli ay kailangan kong sabihin sa iyo na malalaman mo ang tunay na layunin nito mamaya, kapag nag-aral tayo ng mga exception (sa Level 15).

Ngunit upang hawakan ito nang mababaw, maaari nating sabihin na ang isang paraan na may markang throwskeyword ay maaaring maghagis ng mga error (mga pagbubukod), ibig sabihin ay mga pagkakataon ng Exceptionklase (at mga klase na nagmamana nito). Kung maraming magkakaibang uri ng mga error ang maaaring mangyari sa isang klase, kailangan mong ilista ang bawat isa sa kanila na pinaghihiwalay ng mga kuwit."

"Mukhang misteryoso at hindi maintindihan! Kailangan kong maghintay para sa Level 14."

pangunahing pamamaraan

"Let's now take a closest look at the main method. Naiintindihan mo na na ang linya kung saan ang isang method ay idineklara, na naglalaman ng lahat ng mga modifier, ay makakaapekto sa kung paano tinawag ang method na ito mula sa ibang mga klase at method. Bukod pa rito, ito ay nakakaapekto sa uri ng magreresulta ang pamamaraan ay babalik at nagpapahiwatig kung anong mga error ang posible habang tumatakbo ito.

"Ang ganitong linya ay tinatawag na deklarasyon ng pamamaraan at may sumusunod na pangkalahatang format:

access modifier static Type name(parameters) throws exceptions
Pangkalahatang format ng isang deklarasyon ng pamamaraan

Saan access modifierspinapalitan ng public, protected, private, o wala man lang;

kung static ang paraan, staticlalabas ang keyword (wala ito para sa mga non-static na pamamaraan)

Typeay ang uri ng return value ( voidkung walang resulta)

"Ngayon mayroon kang mas mahusay na pag-unawa sa kung ano ang ibig sabihin ng lahat ng mga salitang ito sa deklarasyon ng mainpamamaraan:

public static void main(String[] args) throws Exception
Pagpapahayag ng mainpamamaraan

"Buweno, ngayon napagtanto ko na ang pag-access sa main()pamamaraan ay posible mula sa anumang klase, tulad ng ipinahiwatig ng publickeyword. Ang pamamaraan ay static, kaya maaari itong tawaging tahasan bilang Solution.main()."

"Anong resulta ang main()ibinabalik ng pamamaraan?"

"Wala naman! Ang uri ng resulta ay void. Ito ay parang walang laman, isang placeholder."

"Ano ang main()mayroon sa mga panaklong nito?"

"Hmm... Lumalabas na ang mainpamamaraan ay tumatagal ng mga argumento (!). Sila ay ipinasa bilang isang hanay ng mga string."

"Tama. At ang pangalan ng parameter argsay nagmumungkahi ng 'mga argumento' sa ating isipan. Kapag nagsimula ang programa, maaari mong ipasa ito ng mga argumento — isang hanay ng mga string. Mapapaloob ang mga ito sa argsarray sa main()pamamaraan."

"Whoa! Nagtaka ako tungkol dito nang makita ko ito sa unang pagkakataon, ngunit pagkatapos ay nasanay ako at nagsimulang magsulat ng listahan ng parameter nang hindi nag-iisip."

"Nakapunta na tayong lahat. Sa wakas, ang mga hindi nahawakang error tulad ng Exception(o mga inapo nito) ay maaaring mangyari sa main()pamamaraan. Alam natin ito salamat sa throws Exceptionbahagi ng deklarasyon."

"Salamat, Rishi. Hindi ko naiintindihan ang lahat, ngunit ito ay kawili-wili."

"You are welcome. Unti-unti mong mauunawaan ang lahat ng mga banayad na puntong ito, sigurado ako."