Final at Static
Sa matematika at agham, ang pare-pareho ay isang termino na nagpapahiwatig ng isang tiyak na halaga tulad ng 'π' na isang praktikal na pangalan para sa bilang na 3.14159. Ang Java ay may uri ng mga constants. Ang mga ito ay mga variable na sa ilalim ng (a) ay hindi kabilang sa anumang bagay at sub (b) ay hindi nagbabago ng kanilang halaga sa sandaling itinakda. Ang static na salita sa variable na deklarasyon ay nagpapakita na ang variable ay hindi nabibilang sa anumang bagay. May isang katulad na keyword na nagsasabing ang variable na halaga ay itatakda lamang nang isang beses at hindi magbabago. Ito ang pangwakas na keyword. Ang keyword na ito ay hindi limitado sa static na mga variable ngunit maaaring magamit sa mga variable ng pagkakataon, mga lokal na variable, at kahit na may mga variable na mga parameter na paraan. Sa pamamagitan ng pagdeklara ng variable bilang isang pangwakas, ipinapakita mo sa lahat na ang variable sa panahon ng pag-iral ay magkakaroon ng parehong halaga. Higit sa lahat, tatalakayin ng tagatala ang bawat pagtatangka na baguhin ang halaga ng isang ipinahayag na variable at iulat ito bilang isang pagkakamali. Tulad ng sa terminolohiya ng Java, ang variable na ipinahayag bilang static at pangwakas ay tinatawag na pare-pareho.
Ano ang Final?
Ang pangwakas na modifier ay maaaring gamitin sa ilang lugar sa Java programming language. Narito saklaw namin ang pinakakaraniwang paggamit nito. Ang huling modifier ay maaaring ilapat sa deklarasyon ng isang lokal na variable, argumento sa pag-andar, at hindi static o static na mga variable ng miyembro. Sa kontekstong ito, ang variable na modifier ay nag-convert sa isang pare-pareho. Ang tagasalin ng wika sa pagsasalin ay titingnan kung ang ilang code ay sinusubukang baguhin ang halaga, at ang mga pagtatangka ay mai-flag bilang isang error. Narito ang isang halimbawa.
huling int value = 17;
Ang mga variable ng static na miyembro na may ganitong modifier ay ginagamit bilang mga pandaigdigang constants; halimbawa, sa java.lang.Math variable na PI, eksaktong sinasabi ito
public static final double PI = 3.14159265358979323846;
Maaari naming ilapat ang pangwakas na modifier sa deklarasyon ng function. Ang pag-andar na minarkahan ng pangwakas ay hindi na ma-overruled - iyon ang huling pagpapatupad nito. Ang mga abstract na pamamaraan ay hindi maaaring ipinahayag panghuli - ang katunayan na ang mga ito ay abstract ay nangangahulugan na kakulangan nila ang pagpapatupad; ito tiyak ay hindi maaaring ang kanilang panghuli estado. Narito ang isang halimbawa.
pampublikong panghuling Int meaningLife () {
bumalik 42;
}
Maaari nating ilapat ang pangwakas na modifier sa deklarasyon ng klase. Ang klase na minarkahan ng pangwakas ay hindi na maaaring magmana - iyon ang pangwakas na pagpapatupad nito. Malinaw, ang abstract class ay hindi maaaring maging panghuling sa parehong oras. Narito ang isang halimbawa
pangwakas na klase ng pampublikong Closed {
// …
}
Ang isa sa mga may hangganan ng mga halimbawa ng klase ay ang java.lang.String class - ito ay may hangganan kaya walang maaaring magmana ito at sa gayon ay makakuha ng access sa mga miyembro nito variable.
Ano ang Static?
Ang mga static na variable ay hindi nabibilang sa partikular na pagkakataon ng klase. Ang mga static na variable ay nabibilang sa klase mismo at sa memorya ay may isang lokasyon lamang, anuman ang bilang ng mga kopya ng klase na nilikha sa memorya. Ang mga di-static na mga variable ay nabibilang sa mga specimen ng klase - ang bawat halimbawa ng klase ay may sariling kopya ng naturang mga variable. Ang mga static na variable ay nabibilang sa klase - pinanatili ng klase sa memorya ang mga halaga ng naturang mga variable; samakatuwid ang lahat ng mga klase ng sample ay nakikita ang parehong nilalaman upang maaari naming isaalang-alang ang mga static na variable na ibabahagi sa pagitan ng lahat ng laki ng klase. Sa pamamagitan ng pag-update ng halaga ng variable, ang bagong halaga ay awtomatikong makikita sa lahat ng mga pagkakataon ng klase na iyon. Maaaring ilapat ang static na filter sa anumang elemento na ipinahayag ng batas sa loob ng isang klase. Sa kaso ng mga variable ng pagiging miyembro, ang resulta ay ang mga naturang miyembro ng mga variable ay maiimbak sa memory lamang sa isang lugar. Ano ang mangyayari kung ito ay isang paraan? Sa pamamagitan ng pagdeklara ng paraan bilang static, ang mensahe ay pareho: ang kaugnay na pamamaraan ay hindi nabibilang sa mga klase ng klase ngunit sa klase mismo. Dahil dito, ang static na mga pamamaraan ay hindi makakatanggap ng isang nakatagong reference sa bagay na kung saan sila ay tinatawag na sa tawag; sa mga static na paraan ng sanggunian ito ay hindi magagamit. Sa katunayan, ang invoking static na mga pamamaraan sa kabuuan ng bagay ay parehong nakalilito bilang pag-access sa static na mga variable ng miyembro sa pamamagitan ng pagsangguni sa reference na ito: sa parehong mga kaso, mas mahusay na isulat lamang ang pangalan ng klase, ang punto, at ang pangalan ng paraan ng pagtawag.
Pagkakaiba sa Pagitan ng Final at Static
Static ay nakatayo para sa isang variable na karaniwan sa lahat ng bagay na nagpapahayag ng isang klase habang ang pangwakas ay tumutukoy sa pare-pareho.
Static ay isang paraan na pareho para sa bawat object na ibinigay klase - ay tinatawag ding miyembro ng klase hal. ganito ang pangunahing paraan. Hindi maaaring maproseso ang huling paraan sa minanang klase.
Ang pangwakas ay hindi maaaring pinalawak na i.e. ay hindi nagpapahintulot sa mga subclass. Ang static ay hindi nalalapat sa klase.
Upang ilagay ito nang simple, pinalawig ng pangwakas na ang halaga ay hindi mababago (i-override). Ang static na halaga ay naka-set sa default na halaga nito, ngunit maaaring ma-reinitialized.
Final kumpara sa Static: Tsart ng Paghahambing
Buod ng Final at Static
- Ang pangunahing trabaho static ay nagbibigay ng access kahit na walang bagay (halimbawa). Ang mga kilalang klase ay ipinahayag sa pamamagitan ng pangunahing salitang static. Kung hindi mo gusto ang halaga ng ilang mga pagbabago mamaya sa programa upang pumunta, o kung nais mo ang tagatala upang suriin at pagbawalan, maaari mong baguhin ang pangako na sa panghuling. May isang static block para sa initialization. Ang static block para sa pagsisimula ay ipinahayag bilang ang pangunahing static sa harap ng mga braket.Ang ganitong uri ng bloke ay ginagawa minsan, habang nagbabasa ng mga klase, at kadalasang sinisimulan ang mga static na miyembro ng klase.