Računalniki Windows internet

Sintaksa java. Pogojne konstrukcije. - Privzete metode za vmesnik

se mora nujno ujemati z imenom razreda, katerega metoda main () je poklicana, ko se stroj Java zažene.

  • Objekt - razred, iz katerega se podeduje vse predmeti v Javi, vključno z nizi in nizi ().
  • Specifikatorji dostopa so individualni za vsakega člana (določeni pred izjavo).
  • Vsi člani razreda so privzeto odprti za obseg paket... Privzeti obseg je križanec med zasebnim in zaščitenim, glej.
  • Vsaka datoteka *.java lahko vsebuje samo en razred razglašen za javni in dostopen od zunaj.
  • Definicija in deklaracija razreda sta vedno v eni datoteki, prototipe je nemogoče postaviti v glave.
  • Manjkajo kazalci.
  • Vse spremenljivke razreda so pravzaprav sklicevanja na predmete, ne na objekte sami. Njihovo inicializacijo za uporabo je treba opraviti prek novega<конструктор-класса>(...) .
  • Temelji prejšnji odstavek- pri dodelitvi ene spremenljivke objekta drugi se spremeni samo referenca, ne pa tudi kopija objekta.
  • Spremenljivke v funkciji se posredujejo po vrednosti, če je osnovne vrste(int, byte, long, itd ...) ali s sklicevanjem, če so objekti.
  • Do javnih statičnih članov razreda se dostopa prek operaterja pika. , in ne prek ::, kar po mojem vnaša neko zunanjo zmedo.
  • Destruktorja ni, obstaja pa finalize ().
  • Finalize () ne smete zamenjevati z destruktorjem C ++. se kliče finalize (). samo zbiranje smeti, ki nima nobene zveze s tem, da objekt izstopi iz obsega in odsotnosti vsaj ene reference na ta objekt.
  • Zbiranje smeti lahko prisilite tako, da pokličete metodo Runtime.gc () za trenutni objekt Runtime ali statično metodo System.gc (). Sodeč po izvedenih poskusih, sprostitev pomnilnika deluje samo znotraj navidezni stroj Java in enkrat dodeljeni pomnilnik v OS se ne vrneta, dokler se stroj ne izklopi.
  • V kodiranju v slogu Java funkcije vrnejo izjeme, namesto da vrnejo kodo. sistemsko napake ali napake v logiki virtualnega stroja. Zato je treba veliko funkcij izvajati znotraj bloka try (...) catch (...) (...), ki obravnava izjeme, ali pa mora metoda, ki jih pokliče, izrecno navesti seznam izjem, ki jih vrže te funkcije, ki jih ne obdelujejo, za obdelavo z njihovimi metodami navzgor v sklad klicev.
  • Izjeme delimo na in.
  • Blok try (...) se lahko konča tudi z blokom finally (...), ki se izvede ne glede na prisotnost/odsotnost izjem v prejšnjem bloku try (...). To je priročno uporabiti za izvajanje kakršnih koli zahtevanih dejanj ne glede na rezultate izvajanja bloka kode, na primer za samodejno sprostitev vseh virov, ki so v njem dodeljeni.
  • char ni enobajtna vrsta kot pri C / C ++, je 16-bitna vrsta, ki podpira unicode strune.
  • bool je v Javi znan kot boolean.
  • Pogojni konstrukti sprejeti samo Boolean tip spremenljivk ali izrazov. To pomeni, da je koda taka:
    int a; ... dejanja na spremenljivko a ...; če) (...)
    Z vidika ni res sintaksa Java in ne bo sestavljen.
  • Konstante so razglašene za končne in ne const.
  • Vsi nizi so objekti.
  • Celo nizne konstante (kot je "any string const") so objekti.
  • Za nize (razred String) je definiran samo en operator - +, povezovanje.
  • Primerjava nizov se izvede z metodo bool equals () razreda String, na primer s1.equals (s2).
  • Vsebina objektov String je konstantna in ne pomeni spreminjanja enega samega elementa niza, to se naredi zaradi zmogljivosti. Če potrebujete takšne operacije, lahko uporabite razred StringBuffer.
  • Ko povežete neinicializiran niz z nepraznim nizom, dobite null + neprazen niz, na primer s + = "| niz"; bo enako "null | niz"
  • Nizi imajo spremenljivo dolžino javnega člana, strun nimajo namesto tega uporabljajo metodo dolžine ().
  • Java ne podpirajo večkratno dedovanje. Nekatere njegove funkcije se izvajajo prek "vmesnikov". Vmesniki podpirajo več "dedovanja" implementacij več vmesnikov v enem razredu in na splošno mnogo (vmesnikov) do mnogih (razredov) odnosov in obratno.
  • Vmesniki omogočajo ustvarjanje povezav, prek katerih se lahko sklicujete na predmete razredov, ki izvajajo te vmesnike. Res je, da dinamično iskanje ustrezne metode pri dostopu prek referenčnega vmesnika zahteva veliko obremenitev, zato ni zaželeno.
  • Namesto enumov lahko uporabite vmesnike brez deklaracij metod. V tem primeru je treba vse spremenljivke vmesnika inicializirati, ko je vmesnik definiran, njihove vrednosti pa bodo samodejno konstantne. Nato jih je mogoče preko naprav "priključiti" na definiran razred.
  • Tudi od JDK 5 obstajajo navzven klasične enumeracije - enum. Pravzaprav to ni le seznam poimenovanih konstant, ampak poseben razred, podedovan iz nadrazreda Enum. Vsak element štetja je objekt tega razreda. Številčno vrednost predmeta štetja je mogoče pridobiti z vgrajeno ordinalno funkcijo.
  • Po meri preobremenitev operaterja poznan v C ++, v Javi ne podpira.
  • Za delo v objektnem okolju s "primitivnimi tipi" (int, float, char, itd ...) uporablja Java autoboxing / autoboxing v vrste ovoja (celo število, plavajoče, znak itd ...). Pravzaprav je to izvedba preobremenitve operaterja za več vgrajenih razredov, ki izvajajo funkcionalnost primitivnih tipov + objektnih metod.
  • super - ključna beseda, ki vam omogoča, da pokličete konstruktor nadrazreda iz podrazreda ali se sklicujete na člana nadrazreda skritega člana podrazreda.
    • Ko se uporablja kot konstruktor - super mora biti vedno prvi operator v konstruktorju podrazreda.
  • Za določitev povzetek metode, se uporablja ključna beseda abstraktno, razred, ki vsebuje abstraktno metodo, mora biti definiran tudi kot abstraktni razred ....
  • final prepoveduje preglasitev metod v otroških razredih. Za "kratke" metode, ki so deklarirane kot končne, ima ta ključna beseda enak učinek kot inline v C ++ - v podrazredih namesto klica funkcije. morda je vstavi bajtno kodo metode nadrazreda v klicno kodo metode razreda.
  • final prepoveduje tudi dedovanje iz razreda, ki je razglašen za končnega.
  • Imenski prostori(imenski prostor) v Javi se izvajajo kot paketov(paket).
  • Povezati paketov uporabite uvoz, lahko uporabite tudi uvoz statični ..(*|) za uvoz statičnih članov razreda.
  • Java podpira niti prek vgrajenega razreda Thread in vmesnika Runable. Za sinhronizacijo uporabite specifikacijo synchronized pred metodo v opisu razreda ali synchronized ( ) (...) za blok kode, sinhroniziran z ... Za signale med sinhroniziranimi nitmi se uporabljajo metode nadrejenega razreda Object: počakaj () / notify () / notifyAll ().
  • prehodno - modifikator, ki označuje, da vrednosti predmeta/spremenljivke ni treba "zadrževati" pri shranjevanju predmeta, na primer pri serializaciji, preden ga zapišete na disk/bazo podatkov. Logično je označiti spremenljivke, ki vsebujejo edinstveni identifikatorji runtime in druge podobne informacije, ki so smiselne samo v trenutnem primeru procesa java.
  • primer - delovanje med izvajanjem, vrnitve pravče obstaja povezava do razreda , sicer pa ga lahko prestavimo na sklicevanje na ta razred napačno.
  • assert - trditve Java se uporabljajo na skoraj enak način kot v C: assert [: Opis neuspešne trditve], vendar je treba imeti v mislih da so "vdelani" v prevedeno bajtno kodo in jih je mogoče vključiti z poganja java-ea.
  • this (...) - se lahko uporablja znotraj konstruktorja razreda za klic drugega konstruktorja istega razreda, ki se ujema s podpisom argumentov.
  • Namesto predloge so uporabljeni posplošitve, je videti zelo podobno: razred CLASS_NAME (...). V posploševanju to je prepovedano uporaba primitivno vrste ( int, byte, char itd...). Parametre je mogoče uporabiti samo razredi.
    Poleg tega podprto omejene vrste, z določitvijo nadrazreda za razrede parametrov. Na primer, razglasitev razreda "generičnega razreda" CLASS_NAME v katerem so dovoljeni samo potomski razredi splošnega številskega razreda Številka.
  • Za hitro kopiranje nizov je priročno uporabiti System.arraycopy ().
  • Programiranje je pisanje izvorne kode programa v enem od programskih jezikov. Veliko jih je različnih jezikih programiranje, zahvaljujoč kateremu nastajajo vse vrste programov, ki rešujejo določeno vrsto težav. Programski jezik je niz rezerviranih besed, s katerimi se piše vir programi. Računalniški sistemi (še) ne morejo razumeti človeškega jezika, še bolj pa človeške logike (predvsem ženske), zato so vsi programi napisani v programskih jezikih, ki se nato prevedejo v računalniški jezik ali strojno kodo. Sistemi, ki prevajajo izvorno kodo programa v strojno kodo, so zelo zapleteni in jih praviloma ustvarja več kot ducat mesecev in več kot ducat programerjev. Takšni sistemi se imenujejo integrirana programska okolja ali orodja.

    Programski jeziki, kot so običajni jeziki, so različne poti komunicirajte z računalnikom tako, kot želite, da deluje. Programski jeziki nam omogočajo, da računalniku korak za korakom poučimo, kako naj med drugim manipulira s podatki, zbira podatke od uporabnikov in prikazuje stvari na zaslonu.

    Na mikroskopski ravni procesor računalnika pošilja električne signale naprej in nazaj, ki nadzorujejo njegovo delovanje. Delci podatkov so shranjeni kot spremenljivke, ki so v bistvu vsebniki, ki hranijo podatke. Torej, na primer, če mora spremenljivka vsebovati številko, moramo to povedati in vanjo ne bomo smeli dodati ničesar drugega, kot je črka. Statično tipizirano pomeni tudi, da bodo vse spremenljivke preverjene, preden se program sploh zažene, in se nam prikaže napaka, če pozabimo deklarirati podatkovni tip ali razglasiti neveljavno. "Objektno usmerjen" je objektno usmerjen jezik, zgrajen okoli koncepta predmetov. V fizičnem svetu se oglejte po sobi in pomislite na vsako stvar kot na predmet. Trenutno imam na mizi skodelico. Kot predmet je to ime "vrč" in ima lastnosti, kot so njegova barva in koliko tekočine bo zadržal. Prav tako lahko pošiljamo sporočila predmetom, zato bom za mojo skodelico morda moral vedeti: "Ali je to prazno?" Za fotografiranje lahko na primer uporabimo predmet Camera.

    • "Statično vneseno".
    • Programiranje v svojem jedru je v resnici delo s podatki.
    Med jezikoma ni nobene povezave.

    Programski sistem je ogromno premišljeno vizualno okolje, kjer lahko napišete izvorno kodo programa, jo prevedete v strojno kodo, testirate, odpravite napake in še veliko več. Poleg tega obstajajo programi, ki vam omogočajo izvajanje zgornjih dejanj z ukazno vrstico.

    Verjetno ste že večkrat slišali izraz "program je napisan pod Windows ali Linux, Unix". Dejstvo je, da so programska okolja za prevajanje programskega jezika v strojno kodo lahko dveh vrst - prevajalniki in tolmači. Prevajanje ali interpretacija programa določa, kako se bo program še naprej izvajal na napravi. Programi, napisani v jeziku Java, vedno delujejo na podlagi interpretacije, medtem ko programi, napisani v C / C ++ - kompilacija. Kakšna je razlika med tema dvema metodama?

    Oba jezika sta napisana različno in delujeta drugače, vendar nam oba omogočata delo s programskimi funkcijami, kot so spremenljivke, metode, operaterji in celo predmeti. Jezik sam je zbirka ključnih besed in simbolov, ki jih zbiramo, da izrazimo, kako želimo, da naša koda deluje.

    Vsaka vrstica kode ima določena pravila o tem, kako naj bo zgrajena in kaj je dovoljeno ali ne. Ne pozabite, da so programski jeziki abstrakcije, kar pomeni, da abstrahirajo prave osnove delovanja računalnika v stvareh, ki jih lažje razumemo. V ozadju je res vse in ničle, vendar nam ni treba skrbeti za to. Lahko razmišljamo s temi abstraktnimi izrazi, da izrazimo svoje ideje in ukaze, in te abstrakcije veljajo za vse različni tipi programiranje.

    Prevajalnik po tem, ko ob prevajanju napiše izvorno kodo, takoj prebere celotno izvorno kodo programa in jo prevede v strojno kodo. Po tem program obstaja kot celota in se lahko izvaja samo v tem operacijski sistem v katerem je bilo zapisano. Zato programi, napisani v sistemu Windows, ne morejo delovati pod Linuxom in obratno. Tolmač bo vsakič, ko se izvede, korak skozi ali vrstico za vrstico izvajanja programa. Med interpretacijo se ne generira izvedljiva koda, ampak navidezna koda, ki jo nato izvede navidezni stroj Java. Zato se lahko na kateri koli platformi – Windows ali Linux, programi Java izvajajo na enak način, če je v sistemu navidezni stroj Java, ki se imenuje tudi Runtime System.

    - Privzete metode za vmesnik

    Tukaj je nekaj ključnih besed, ki označujejo vrsto podatkov, ki jih bomo uporabili in shranili v spremenljivke. Ker se decimalno mesto lahko spremeni ali plava, je pomembno vedeti, da so te vrednosti lahko tehnično netočne. Druge primitivne vrste podatkov vključujejo bajte, kratke in dolge. Objekt se od primitivnega podatkovnega tipa razlikuje po tem, da ima na voljo bolj zapletene lastnosti in metode, medtem ko so primitivni podatkovni tipi omejeni in preprosti. Spremenljivka je v bistvu vsebnik, ki se uporablja za shranjevanje podatkov.

    Objektno usmerjeno programiranje

    Objektno usmerjeno programiranje temelji na objektih, kar je nekoliko podobno našemu svetu. Če pogledate okoli sebe, potem zagotovo najdete nekaj, kar vam bo pomagalo jasneje razumeti model takšnega programiranja. Na primer, zdaj sedim za mizo in tipkam to poglavje na računalniku, ki je sestavljen iz monitorja, sistemske enote, tipkovnice, miške, zvočnikov itd. Vsi ti deli so predmeti, ki sestavljajo računalnik. Če to poznamo, je zelo enostavno oblikovati nekakšen posplošen model za delovanje celotnega računalnika. Če ne razumete zapletenosti lastnosti programske in strojne opreme računalnika, lahko rečemo, da objekt sistemske enote izvaja določena dejanja, ki jih prikazuje objekt Monitor. Po drugi strani lahko objekt tipkovnice popravi ali celo nastavi dejanja za objekt sistemske enote, ki vplivajo na delovanje objekta Monitor. Predstavljen proces zelo dobro označuje celoten objektno usmerjen programski sistem.

    Tu so osnovna pravila sintakse

    Oglejmo si primer. Oglejmo si vsak oštevilčen del. Prva beseda v deklaraciji spremenljivke je tip podatkov, ki nam pove, kateri podatki bodo shranjeni v spremenljivki. Druga beseda je ime spremenljivke, ki je lahko poljubno, ob upoštevanju nekaj osnovnih pravil. Imena spremenljivk ne smejo vsebovati presledkov oz posebne znake; imajo lahko samo črke, številke in podčrtaje. Znak enakosti je operater, torej za nas izvede določeno operacijo. To je operator dodelitve, kar pomeni, da ga uporabljamo za dodelitev vrednosti spremenljivkam. Končno, zadnji znak v tej vrstici je podpičje, ki se uporablja za dokončanje te izjave. Vendar jim ni treba začeti s številko. ... Nekateri drugi primeri deklaracij spremenljivk z uporabo nekaterih osnovnih podatkovnih tipov, ki smo jih obravnavali, so naslednji.

    Predstavljajte si nekaj močnega programsko opremo ki vsebuje na stotine tisoč vrstic kode. Celoten program se izvaja vrstico za vrstico, vrstico za vrstico in načeloma bo vsaka od naslednjih vrstic kode nujno povezana s prejšnjo vrstico kode. Če ne uporabljate objektno usmerjenega programiranja in ko morate to spremeniti programsko kodo, na primer, če morate izboljšati nekatere elemente, boste morali opraviti veliko dela z vso izvorno kodo tega programa.

    Metode se uporabljajo za organizacijo naše kode v koščke, ki jih je mogoče večkrat uporabiti, kar nam prihrani veliko časa in energije. Druga beseda v metodi je vrsta podatkov, ki bo vrnjena. Naslednje ime je ime metode. Imena metod sledijo približno enakim pravilom kot imena spremenljivk: črke, številke in podčrtaji, vendar se ne morejo začeti s številko.

    Takoj za imenom vidimo dva oklepaja brez ničesar vmes. Oklepaj je potreben, ko pa je prazen, to pomeni, da ob klicu metode ne posredujemo nobenih podatkov ali spremenljivk. Če je bila med oklepaji vključena ena ali več spremenljivk, bomo morali posredovati ustrezne vrednosti ali spremenljivke v oklepaju, ko pokličemo to metodo.

    Objektno usmerjeno programiranje je veliko bolj preprosto, vrnimo se k primeru računalniškega sistema. Recimo, da niste več zadovoljni s sedemnajstpalčnim monitorjem. Seveda ga lahko varno zamenjate za dvajsetpalčni monitor, če imate določena materialna sredstva. Sam postopek zamenjave ne bo povzročil velikih težav, razen če boste morali zamenjati gonilnik in obrisati prah izpod starega monitorja in to je to. Približno na tem principu delovanja temelji objektno usmerjeno programiranje, kjer lahko določen del kode predstavlja razred homogenih objektov, ki jih je mogoče enostavno posodobiti ali zamenjati.

    Vrstica 1 se konča z odprtim zavitim oklepajem, na vrstici pa je ustrezen zaključni oklepaj. Ta dokumentacija je arhivirana in ni podprta. Najbolj očitna sprememba pri preklapljanju med programskimi jeziki je sprememba sintakse.

    Čeprav sintaksa vsakega jezika različno izraža metodo, je funkcionalnost enaka. Opis funkcionalnost, parametri in vrnjene vrednosti objekta, razen nekaterih izjem, veljajo za vse jezike. Na primer, razmislite o kvadratni funkciji, kot je implementirana v vsakem od teh treh skriptnih jezikov.

    Objektno usmerjeno programiranje zelo enostavno in jasno odraža bistvo problema, ki se rešuje, in kar je najpomembneje, omogoča, da brez poseganja v celoten program odstranimo nepotrebne predmete z zamenjavo teh objektov z novejšimi. V skladu s tem postane splošna berljivost izvorne kode celotnega programa veliko lažja. Pomembno je tudi, da se lahko ista koda uporablja v popolnoma različnih programih.

    Operatorji povečanja in zmanjšanja

    Upoštevajte, da so skriptni jeziki, za razliko od programskih jezikov, ohlapno tipkani. Z drugimi besedami, pri deklariranju funkcije vam ni treba podati podatkovnega tipa parametra ali vrnjene vrednosti. Namesto tega se spremenljivke samodejno pretvorijo v ustrezen tip podatkov.

    Ta podobnost je le površinska. Oglejmo si zdaj, kaj pomenijo spremenljivke razreda, predmeta, metode in primerka. Primer: pes ima pogoje - barvo, ime, pasmo, pa tudi vedenje, kot je zvijanje repa, lajanje, hrana. To je v metodah, kjer je zapisana logika, obdelani podatki in izvedena vsa dejanja. Spremenljivke primerka. Vsak predmet ima svoj edinstven nabor spremenljivk primerka. Stanje objekta je ustvarjeno z vrednostmi, dodeljenimi tem spremenljivkam primerka.

    • Predmet.
    • Predmeti imajo stanja in vedenje.
    • Razred lahko vsebuje veliko metod.
    Poglejmo, kako shraniti datoteko, prevesti in zagnati program.

    Razredi

    Jedro vseh programov Java so razredi, na katerih temelji objektno usmerjeno programiranje. Pravzaprav že veste, kaj so razredi, vendar tega še ne veste. V prejšnjem razdelku smo govorili o objektih na primeru strukture celotnega računalnika. Vsak predmet, iz katerega je sestavljen računalnik, je predstavnik svojega razreda. Razred Monitorji na primer združuje vse monitorje, ne glede na njihove vrste, velikosti in zmogljivosti, en določen monitor na vaši mizi pa je objekt razreda monitorjev.

    Sledite naslednjim korakom -. Odprite okno ukaznega poziva in preklopite v imenik, kamor ste shranili razred. Če je za oblikovanje imena razreda uporabljenih več besed, mora biti vsaka prva črka prve besede napisana z velikimi črkami. Vsa imena metod se morajo začeti z malo črko.

    • Odprite beležnico in dodajte kodo, kot je opisano zgoraj.
    • Če v kodi ni napak, ukazna vrstica vas bo popeljal v naslednjo vrstico.
    • Imena razredov.
    • Za vsa imena razredov mora biti prva črka velika.
    • Primer: razred.
    Imena, ki se uporabljajo za razrede, spremenljivke in metode, se imenujejo identifikatorji.

    Ta pristop omogoča zelo enostavno simulacijo vseh vrst programskih procesov, kar olajša reševanje dodeljenih nalog. Na primer, obstajajo štirje objekti štirih različnih razredov: monitor, sistemska enota, tipkovnica in zvočniki. Za predvajanje zvočne datoteke uporabite tipkovnico za ukaz sistemska enota, samo dejanje dajanja ukaza, boste vizualno opazovali na monitorju in posledično bodo zvočniki predvajali zvočno datoteko. To pomeni, da je kateri koli predmet del določenega razreda in vsebuje vsa sredstva in zmogljivosti tega razreda. Za rešitev problema je lahko toliko predmetov istega razreda.

    Vsi identifikatorji se morajo začeti s črko, simbolom valute ali podčrtajem.

    • Za prvim znakom so lahko identifikatorji poljubna kombinacija znakov.
    • Ključne besede ni mogoče uporabiti kot identifikator.
    • Najpomembneje je, da so identifikatorji občutljivi na velike in male črke.
    Tako kot drugi jeziki lahko spreminjate razrede, metode itd. Uporaba modifikatorjev. Obstajata dve kategoriji modifikatorjev -.

    Bomo razmislili o več podrobnosti o modifikatorjih v naslednjem razdelku. Lokalne spremenljivke Spremenljivke razreda Spremenljivke primerka. ... Nizi so objekti, ki shranjujejo več spremenljivk istega tipa. Vendar pa je niz sam objekt na kupu. Kako deklarirati, zgraditi in inicializirati, bomo pogledali v naslednjih poglavjih.

    Metode

    Ko je bil podan primer predvajanja zvočno datoteko, potem je bilo omenjeno dajanje ukaza ali sporočila, na podlagi katerega so bila izvedena določena dejanja. Naloga izvajanja dejanj se rešuje z metodami, ki jih ima vsak predmet. Metode so nabor ukazov, s katerimi lahko izvajate določena dejanja s predmetom.

    Povečanje in zmanjševanje

    Vrednosti na tem oštevilčenem seznamu se imenujejo enumeracije. Z uporabo oštevilčenja lahko zmanjšate število napak v kodi. Na primer, če bi iskali aplikacijo za trgovino s svežimi sokovi, bi lahko velikost kozarca omejili na majhno, srednje in veliko. To bo zagotovilo, da nikomur ne bo dovolilo naročati drugih velikosti, razen majhnih, srednjih ali velikih.

    Zgornji primer bi dal naslednji rezultat. Opomba. Številke je mogoče razglasiti kot lastne ali znotraj razreda. Metode, spremenljivke, konstruktorje je mogoče definirati tudi znotraj oštevilčenja. Teh rezerviranih besed ni mogoče uporabiti kot konstante ali spremenljivke ali katera koli druga imena identifikatorjev. V bistvu, če morate ustvariti nov razred in že obstaja razred, ki ima nekaj kode, ki jo potrebujete, lahko dobite nov razred iz obstoječe kode.

    Vsak predmet ima svoj namen in je zasnovan za reševanje določenega obsega problemov z uporabo metod. Kaj bi na primer koristil predmet Tipkovnica, če ne bi mogli pritiskati tipk in bi še vedno lahko izdajali ukaze? Objekt Tipkovnica ima določeno število tipk, s katerimi uporabnik pridobi nadzor nad vhodno napravo in lahko izda potrebne ukaze. Obdelava takšnih ukazov poteka z uporabo metod.

    Ta koncept vam omogoča ponovno uporabo polj in metod obstoječega razreda brez ponovnega pisanja kode v novem razredu. V tem primeru se obstoječi razred imenuje nadrazred, izpeljani razred pa podrazred. Vmesniki igrajo ključno vlogo, ko gre za koncept dedovanja. Vmesnik definira metode, ki jih mora uporabiti sprejemni razred. Toda izvedba metod je popolnoma skladna s podrazredom.

    Koncepti in načela objektno usmerjenega programiranja

    Ostanite z nami za več vsebin v tej seriji. Ugotovite, kaj lahko pričakujete od te vadnice in kako jo kar najbolje izkoristiti.

    • Ko ste pozvani, shranite datoteko na trdi disk.
    • Ko je prenos končan, zaženite namestitveni program.
    Za zdaj se držite privzete perspektive in pogleda. Vaše razvojno okolje je pripravljeno za ukrepanje. Paradigma strukturiranega programiranja je zelo odvisna od podatkov: imate podatkovne strukture in nato programska navodila delujejo na te podatke.

    Na primer, pritisnete tipko Esc, da prekličete katero koli dejanje in s tem date ukaz metodi, dodeljeni tej tipki, ki rešuje to težavo na ravni programa. Takoj se pojavi vprašanje o številu metod predmeta Keyboard, vendar je tu lahko drugačna izvedba - od definiranja metod za vsako od tipk (kar je na splošno nerazumno) do ustvarjanja ene metode, ki bo spremljala splošno stanje tipkovnice. To pomeni, da ta metoda spremlja, ali je bila tipka pritisnjena, nato pa se glede na to, katera od tipk je vključena, odloči, kaj storiti.

    Tako vidimo, da ima lahko vsak od predmetov na voljo nabor metod za reševanje različnih problemov. In ker je vsak predmet predmet določenega razreda, se izkaže, da razred vsebuje nabor metod, ki jih uporabljajo različni predmeti istega razreda. V Javi morajo biti vse metode, ki jih ustvarite, v lasti ali del določenega razreda.

    Sintaksa in semantika Java

    Če želite govoriti in brati v katerem koli tujem jeziku, se morate naučiti abecede in slovnice tega jezika. Podoben pogoj opažamo pri študiju programskih jezikov, z edino razliko, se mi zdi, da je ta proces nekoliko lažji. Toda preden začnete pisati izvorno kodo programa, morate najprej rešiti zastavljeno težavo v kateri koli obliki, ki vam ustreza.

    Ustvarimo razred, ki je na primer odgovoren za telefon, ki bo imel samo dva načina: vklop in izklop tega telefona. Ker zdaj ne poznamo sintakse jezika Java, bomo razred Phone napisali v abstraktnem jeziku.

    Razredni telefon
    {
    Metoda Vključi ().
    {
    // operacije za vklop telefona
    }
    Onemogoči ().
    {
    // operacije za izklop telefona
    }
    }

    Razred Telefon bi lahko izgledal nekako takole. Upoštevajte, da kodrasti oklepaji predstavljajo začetek in konec telesa razreda, metode ali katerega koli zaporedja podatkov. To pomeni, da oklepaji označujejo pripadnost metodi ali razredu. Vsak odprti oklepaj mora imeti zaključni oklepaj. Da se ne bi zmedli, so v kodi običajno postavljeni na isto raven.

    Zdaj pa napišimo isti razred samo v Javi.

    Razred Telefon
    {
    nična na ()
    {
    // telo metode on ().
    }
    izključi ()
    {
    // telo metode off ().
    }
    }

    Ključna beseda class v jeziku Java razglasi razred, ki ji sledi ime samega razreda. V našem primeru je to Telefon. Samo nekaj besed o registru zapisa. V skoraj vseh programskih jezikih je pomembno, da so imena zapisana v kovčku, v katerem so bila narejena. Če ste napisali Telefon, bo črkovanje, kot sta telefon ali TELefoN, med prevajanjem dalo napako. Kot je bilo napisano sprva, je treba pisati naprej.

    Rezervirano oz ključne besede so napisani v njihovem posebnem primeru in jih ne morete uporabiti tako, da date njihova imena metodam, razredom, predmetom itd. Presledki med besedami niso pomembni, saj jih prevajalnik preprosto ignorira, so pa pomembni za berljivost kode.

    V telesu razreda Telefon sta dve metodi: on () - vklopi telefon in metoda izklopa () - izklopi telefon. Obe metodi imata svoja telesa in teoretično bi morali vsebovati nekakšno izvorno kodo, ki opisuje potrebna dejanja obeh metod. Za nas zdaj ni pomembno, kako se te metode izvajajo, glavna stvar je sintaksa jezika Java.

    Obe metodi imata oklepaje na (), znotraj katerih je mogoče zapisati parametre, na primer na (int time) ali na (int time, int time1). S pomočjo parametrov obstaja nekakšna povezava med metodami in zunanjim svetom. Rečeno je, da metoda on (int time) vzame časovni parameter. za kaj je to? Na primer, želite, da se vaš telefon vklopi določen čas... Nato bo v telo metode posredovana celoštevilska vrednost v časovnem parametru in na podlagi prejetih podatkov se bo telefon vklopil. Če so oklepaji prazni, metoda ne sprejme parametrov.

    Komentarji (1)

    V razredu Telefon imata telesa obeh metod vnos po dveh poševnicah: //. Tak vnos označuje komentarje, ki jih bo prevajalnik prezrl, vendar so potrebni za berljivost kode. Več informacij ko komentirate ob pisanju programa, več je možnosti, da se boste čez eno leto spomnili, kaj ste ves ta čas delali.

    Komentarji v Javi so lahko treh vrst, in sicer:

    //, /*…*/ in /**…*/

    Komentarji, napisani z operatorjem //, morajo biti v eni vrstici:

    // Ena vrstica
    !!! Napaka! Ne morete zaviti v drugo vrstico!
    // Prva vrsta
    // Druga vrstica
    // …
    // Zadnja vrstica

    Komentarji z operatorji / *… * / lahko obsegajo več vrstic. Na začetek komentarja vstavite / * in na koncu, ko končate s komentiranjem kode, vnesite operator * /. Zadnja vrsta komentarja / ** ... * / se uporablja pri dokumentiranju kode in se lahko nahaja tudi na poljubnem številu vrstic.

    Podatkovni tipi Java

    Podatkovni tipi obstajajo v Javi za nastavitev poljubne vrednosti. V razredu Telefon smo ustvarili dve metodi. Obe metodi nista imeli parametrov, a ko je bil podan primer metode on (int time) s parametrom časa, je bilo rečeno o posredovanju vrednosti metodi. Ta vrednost je označevala čas, do katerega naj bi se telefon vklopil. Specifikator int definira vrsto časovne vrednosti. Java 2 ME ima šest podatkovnih tipov.

    Bajt - majhno celo število od –128 do 128;
    kratko - kratka celo število v območju od –32768 do 32767;
    int - vsebuje poljubno celo število od –2147483648 do 2147483647;
    long je zelo veliko celo število, od –922337203685475808 do 9223372036854775807;
    char je znakska konstanta Unicode. Razpon ta format od 0 do 65536, kar je 256 znakov. Vsak znak te vrste mora biti napisan v enojnih narekovajih, na primer: 'G';
    boolean - boolean tip, ima samo dve vrednosti: false - false in true - true. Ta vrsta se pogosto uporablja v zankah, o katerih malo kasneje. Ideja je zelo preprosta - če imate denar v žepu, je verjetno to res, če ne, potem napačno. Tako, če je denarja, gremo v trgovino po kruh ali pivo (podčrtaj nujno), če denarja ni, ostanemo doma. To pomeni, da je taka logična vrednost, ki prispeva k izbiri nadaljnje ukrepanje vaš program.

    Za deklariranje neke zahtevane vrednosti se uporablja naslednji vnos:

    Int čas;
    dolgo BigTime;
    char beseda;

    Operater podpičje je obvezen za vnosom in je postavljen na konec vrstice. Kombinirate lahko več oglasov iste vrste, ločenih z vejicami:

    Mt čas, čas1, čas2;

    Zdaj pa izboljšajmo naš razred Telefon tako, da mu dodamo nekaj vrednosti. Ne potrebujemo več metod vklopa () in izklopa (), dodali bomo nove metode, ki lahko resnično rešijo določene težave.

    Razred Telefon
    {
    // S - območje prikaza
    // w - širina prikaza
    // h - višina prikaza
    int w, h, S;
    // metoda, ki izračuna površino prikaza
    vord območje ()
    {
    S = š * h;
    }
    }

    Torej imamo tri spremenljivke S, w in h, ki so odgovorne za površino, širino in višino zaslona v slikovnih pikah. Metoda Area () izračuna površino zaslona telefona v slikovnih pikah. Operacija je neuporabna, vendar zelo okvirna in lahko razumljiva. Telo metode Area () se je pridobilo in ima obliko S = w * h. Pri tej metodi preprosto pomnožimo širino z višino in dodelimo ali, kot pravijo, shranimo rezultat v spremenljivko S. Ta spremenljivka bo vsebovala vrednosti območja prikaza ta telefon.

    Zdaj smo se približali operaterjem jezika Java, s katerimi lahko izvajate vse vrste operacij. Operaterji jezika Java, kot tudi drugih programskih jezikov, imajo svoje namene. Torej obstajajo aritmetični operaterji, operatorji povečanja in zmanjšanja, logični operaterji in relacijski operaterji. Oglejmo si vsakega od zgornjih operaterjev.

    Aritmetični operaterji

    Vsi aritmetični operaterji so zelo preprosti in so podobni operatorjem za množenje "*", deljenje "/", seštevanje "+" in odštevanje "-", ki se uporabljajo v matematiki. Obstaja modulo operator "%" in situacija z operatorjem enakim "=" je na prvi pogled nekoliko zmedena. Operater enak v programskih jezikih se imenuje operator dodelitve:

    Tukaj dodelite vrednost 3 spremenljivki x. Operater "equal" v programskih jezikih ustreza pisanju dveh zaporednih operatorjev "equal": "==". Oglejmo si primer, kaj zmorejo različni aritmetični operaterji.

    Int x, y, z;
    x = 5;
    y = 3;
    z = 0;
    z = x + y;

    V tem primeru bo imel z vrednost vsote x in y, to je 8.

    Spremenljivka x je imela vrednost 5, vendar se po takem zapisu prejšnja vrednost izgubi in zapiše se zmnožek z * x (8 * 5), kar je 40. Zdaj, če nadaljujemo s kodo naprej, bodo spremenljivke izgleda takole:

    // x = 40;
    // y = 3;
    // z = 8;

    Operaterji seštevanja in odštevanja imajo enak namen kot pri matematiki. Negativne številke so podobno povezane.

    Operatorja zmanjševanja »––« in povečanja »++« sta zelo specifična, a zelo preprosta. V programiranju se pogosto zgodi, da morate vrednost povečati ali zmanjšati za eno. To pogosto najdemo v zankah. Operacija prirastka poveča spremenljivko za eno.

    Int x = 5;
    x ++;
    // Tukaj je x že 6

    Operacija dekrementa zmanjša spremenljivko za eno.

    Int x = 5;
    x--;
    // x je 4

    Operacije povečanja in zmanjševanja so lahko post in predpona:

    Int x = 5;
    int y = 0;
    y = x ++;

    V zadnji vrstici kode je najprej vrednost x dodeljena y, to je vrednost 5 in šele nato se spremenljivka x poveča za eno. Izkazalo se je, da:

    Prirast predpone je:

    Int x = 3;
    int y = 0;
    y = ++ x;

    In v tem primeru se spremenljivka x najprej poveča za eno, nato pa že povečano vrednost pripiše y.

    Relacijski operaterji

    Operaterji relacije vam omogočajo, da preverite enakost obeh delov izraza. Obstaja operator enakosti "==", operatorji so manjši od "<» и больше «>", manj kot ali enako "<=» и больше или равно «>= ", kot tudi operator negacije"! = ".
    9 == 10;

    Ta izraz ni resničen, devet ni enako deset, zato je njegova vrednost za ta izraz napačna.

    Tukaj, nasprotno, operator negacije označuje neenakost izraza in vrednost bo resnična. Več kot, manj kot, večje ali enako in manj kot ali enako so podobni ustreznim operatorjem iz matematike.

    Logični operaterji

    Obstajata dva logična operaterja. Operater AND, označen z &&, in operator OR, označen z dvema poševnicama "||". Na primer, obstaja izraz:

    A * B && B * C;

    V primeru, da sta le oba dela izraza resnična, se vrednost izraza šteje za resnično. Če je eden od delov napačen, bo vrednost celotnega izraza napačna.
    V nasprotju z operatorjem "&&" obstaja operator "||", ki se ne zaman imenuje "ALI".

    A * B || B * C;

    Če je kateri koli del izraza resničen, se celoten izraz šteje za resničnega. Oba operaterja lahko združite v en izraz, na primer:

    A * B || B * C && C * D || B * A;

    S pomočjo tega izraza sem vas, se mi zdi, spravil v težavo, kajne? Dejstvo je, da v Javi, tako kot v matematiki, obstaja prioriteta ali tako imenovana hierarhija operaterjev, s pomočjo katere se določi, kateri od operaterjev je pomembnejši, in se zato najprej preveri. Razmislimo o uporabi seznama za prednost vseh razpoložljivih operaterjev v jeziku Java:

    , ., (),
    !, ~, ++, - -, + (enotno), - (enotno), novo,
    *, /, %,
    +, –,
    <<, >>, >>>,
    <, <=, >, >=,
    = =, !=,
    &, ^, |,
    &&,
    ||,
    ?:,
    =, +=, –=, *=, /=, %=, |=, ^=, <<=, >>=, >>>=.

    Asociativnost operaterja na seznamu sledi od leve proti desni in od zgoraj navzdol. Se pravi, vse, kar je levo in zgoraj, je starejše po rangu in pomembnejše.