1. I-access ang mga modifier

Bago ang bawat pamamaraan, maaaring tukuyin ng mga programmer ang tinatawag na mga access modifier. Kabilang dito ang mga sumusunod na keyword: public, protected, private.

Hinahayaan ka ng mga modifier ng access na ito na paghigpitan ang access ng ibang mga klase sa isang paraan.

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 ng mga 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.

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

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, 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.

Maaari mong gamitin ang publicmodifier sa lahat ng iyong pamamaraan (pati na rin sa lahat ng iyong mga klase at mga variable ng klase) hanggang sa maabot mo ang dulo ng Java Syntax quest. Kakailanganin mo ang iba pang mga modifier kapag nagsimula kaming aktibong matuto ng OOP.

Bakit kailangan ang mga access modifier?

Nagiging kinakailangan ang mga ito para sa malalaking proyekto na isinulat ng sampu at daan-daang programmer sa parehong oras.

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, hindi niya nais na tawagan ng ibang mga programmer ang mga pamamaraang ito ng katulong, dahil maaaring hindi gumana nang tama ang kaukulang code.

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



2. statickeyword

staticGinagawa ng keyword ang isang paraan na static. Titingnan natin kung ano ang ibig sabihin nito mamaya. Sa ngayon, tandaan lamang 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? Masasagot mo ang tanong na ito sa iyong sarili kapag nagsimula kang matuto ng OOP at maunawaan kung paano gumagana ang mga static na pamamaraan.



3. throwskeyword

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

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

Isasaalang-alang natin ang tiyak na kahulugan nito sa ibang pagkakataon kapag nag-aaral tayo ng mga eksepsiyon.

Ngunit upang hawakan ito nang mababaw, maaari nating sabihin na ang isang paraan na may marka ng mga throws na keyword ay maaaring maghagis ng mga error (mga pagbubukod), ibig sabihin ay mga instance ng Exception klase (at mga klase na nagmamana nito). Kung maraming iba't ibang uri ng mga error ang maaaring mangyari sa isang klase, kailangan mong ilista ang bawat isa sa kanila na pinaghihiwalay ng mga kuwit.


4. mainparaan

Ang linya kung saan idineklara ang isang paraan, na naglalaman ng lahat ng mga modifier, ay makakaapekto sa kung paano tinawag ang pamamaraang ito mula sa ibang mga klase at pamamaraan. Naaapektuhan nito ang uri ng resulta na ibabalik ng pamamaraan at ipinapahiwatig kung anong mga error ang posible habang tumatakbo ito.

Ang nasabing 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 modifiers pinapalitan 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 ay malamang na naiintindihan mo kung ano ang ibig sabihin ng lahat ng mga keyword sa deklarasyon ng mainpamamaraan:

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

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().

Ang mainpamamaraan ay hindi nagbabalik ng anumang resulta. Ang uri ng pagbabalik ay void(walang uri).

Ang mainpamamaraan ay tumatagal ng mga argumento(!): isang hanay ng mga string. At ang pangalan ng parameter argsay nagmumungkahi ng 'mga argumento' sa ating isipan. Kapag nagsimula ang programa, maaari mong ipasa ang mga argumento - isang hanay ng mga string. Mapapaloob ang mga ito sa args array sa main()pamamaraan.

Ang mga hindi nahawakang error tulad ng Exception(o mga inapo nito) ay maaaring mangyari sa main()pamamaraan.