Računala Windows Internet

Sintaksa java. uvjetne konstrukcije. - Zadane metode sučelja

mora nužno odgovarati imenu klase čija se metoda main() poziva kada se pokrene Java stroj.

  • Objekt - klasa iz koje su naslijeđeni svi objekte u Javi, uključujući nizove i nizove ().
  • Specifikatori pristupa su individualni za svakog člana (navedeni prije deklaracije).
  • Svi članovi klase su prema zadanim postavkama izloženi opsegu paket. "Zadani" opseg je križ između privatnog i zaštićenog, vidi .
  • Svaka *.java datoteka može sadržavati samo jedan klasa deklarirana kao javna i dostupna izvana.
  • Definicija i deklaracija klase su uvijek u istoj datoteci, nemoguće je staviti prototipove u zaglavlja.
  • Nema pokazivača.
  • Sve varijable klase su zapravo reference objekta, a ne sami objekti. Njihovo inicijaliziranje za korištenje mora se obaviti putem novog<конструктор-класса>(...) .
  • Na temelju prethodni stavak- kod dodjele jedne varijable-objekta drugoj vrši se samo promjena reference, ali ne i kopija objekta.
  • Varijable u funkcijama prosljeđuju se po vrijednosti ako jesu elementarne vrste(int, byte, long, itd...), ili referencom ako su objekti.
  • Pristup javnim statičkim članovima klase vrši se preko operatora točka. , a ne preko :: , što po meni unosi neku vanjsku zabunu.
  • Ne postoji destruktor, ali postoji finalize() .
  • Nemojte brkati finalize() s C++ destruktorom. poziva se finalize(). samo za odvoz smeća, što nema nikakve veze s izlaskom objekta izvan opsega i odsutnošću barem jedne reference na ovaj objekt.
  • Prikupljanje smeća može se prisiliti pozivanjem metode Runtime.gc() na trenutnom Runtime objektu ili pozivom statičke metode System.gc(). Sudeći prema provedenim eksperimentima, oslobađanje memorije djeluje samo unutar virtualni stroj Java i jednom dodijeljena memorija u OS-u se ne vraćaju dok se stroj ne završi.
  • U kodiranju u Java stilu funkcije izbacuju iznimke umjesto vraćanja koda. sustavno Pogreške ili logičke pogreške VM-a. Stoga se mnogo funkcija nužno mora izvršiti unutar bloka try ( ... ) catch (...) ( ... ) koji obrađuje iznimke ili metoda koja ih poziva mora eksplicitno naznačiti kroz bacanja popis iznimaka koji ne rukuje njime koje generira ove funkcije, za rukovanje njima metodama "višim" u steku poziva.
  • Iznimke se dijele na i .
  • Blok try ( ... ) također može završiti blokom finally ( ... ), koji se izvršava bez obzira na prisutnost/odsutnost iznimaka u prethodnom bloku try ( ... ). Ovo je prikladno koristiti za izvođenje neke obvezne radnje bez obzira na rezultate izvršenja bloka koda, na primjer, za automatsko oslobađanje svih resursa dodijeljenih u njemu.
  • char nije jednobajtni tip kao kod C/C++, to je 16-bitni tip koji podržava unikod linije.
  • bool je u Javi poznat kao boolean.
  • Uvjetne konstrukcije prihvatiti samo boolean tip varijabli ili izraza. To znači da je kod obrasca:
    int a; ... akcije na varijablu a ...; ako (a) ( ... )
    nije točno u smislu Java sintaksa i neće kompilirati.
  • Konstante se proglašavaju konačnima, a ne const.
  • Svi nizovi su objekti.
  • Čak su i konstante niza (kao što je "bilo koji string const") objekti.
  • Za nizove (klasa String) definiran je samo jedan operator - + , konkatenacija.
  • Usporedba nizova vrši se pomoću metode bool equals() klase String, kao što je s1.equals(s2) .
  • Sadržaj string objekata (String) je konstantan i ne podrazumijeva promjenu niti jednog elementa niza, to se radi u cilju poboljšanja performansi. Ako trebate takve operacije, možete koristiti klasu StringBuffer.
  • Kada spojite neinicijalizirani niz s nepraznim nizom, dobivate null + ne-prazan niz, na primjer s += "|string"; bit će jednako "null|string"
  • Nizovi imaju promjenjivu duljinu javnog člana, linije nemaju, umjesto toga koriste metodu length().
  • Java ne podržavaju višestruko nasljeđivanje. Dio njegovih funkcija obavlja se preko "sučelja" (sučelja). Sučelja podržavaju višestruke implementacije "nasljeđivanja" višestrukih sučelja u istoj klasi, i općenito mnogo (sučelja) prema mnogim (klasama) odnosa i obrnuto.
  • Sučelja omogućuju stvaranje veza putem kojih možete pristupiti objektima klasa koje implementiraju ta sučelja. Istina, dinamička potraga za odgovarajućom metodom kada se pristupa putem veze sučelja zahtijeva mnogo dodatnih troškova, stoga nije poželjna.
  • Umjesto enuma, možete koristiti sučelja bez deklaracija metoda u njima. U ovom slučaju, sve varijable sučelja moraju biti inicijalizirane kada je sučelje definirano, a njihove vrijednosti će automatski biti konstantne. Nakon toga se putem implementacija mogu "spojiti" na klasu koja se definira.
  • Također, od JDK 5 postoje izvana klasični nabrajanja - enum . Zapravo, ovo nije samo popis imenovanih konstanti, već posebna klasa naslijeđena od superklase Enum. Svaki element nabrajanja je objekt ove klase. Numerička vrijednost enum objekta može se dohvatiti pomoću ugrađene funkcije rednog reda.
  • Prilagođen preopterećenje operatera poznato u C++, u Javi Nije podržano.
  • Za rad u objektnom okruženju s "primitivnim tipovima" (int, float, char, itd...), Java koristi automatsko pakiranje/auto-raspakiranje u vrste omota (Integer, Float, Character, itd...). Zapravo, ovo je implementacija preopterećenja operatora za nekoliko ugrađenih klasa koje implementiraju funkcionalnost primitivnih tipova + objektnih metoda.
  • super - ključna riječ koja vam omogućuje da pozovete konstruktor nadklase iz podklase ili pristupite članu nadklase skrivenog člana podklase.
    • Kada se koristi kao konstruktor - super uvijek treba biti prvi operator u konstruktoru podklase.
  • Za utvrđivanje sažetak metode koriste ključnu riječ apstraktnu , klasa koja sadrži apstraktnu metodu također mora biti definirana kao apstraktna klasa ... .
  • final zabranjuje nadjačavanje metoda u dječjim razredima. Za "kratke" metode deklarirane kao final, ova ključna riječ ima isti učinak kao inline u C++ - u podklasama umjesto da poziva funkciju može biti bajtkod metode superklase umeće se u kod metode pozivajuće klase.
  • final također zabranjuje nasljeđivanje klase deklarirane kao final .
  • Imenski prostori(imenski prostor) u Javi se implementiraju kao paketi(paket).
  • Povezivanje paketi koristi se import, možete koristiti i import static ..(*|) za uvoz statičkih članova klase.
  • Java podržava niti kroz ugrađenu klasu Thread i Runable sučelje. Za sinkronizaciju, synchronized specificer se koristi prije metode u deklaraciji klase, ili synchronized( ) ( ... ) za blok koda sinkroniziran s . Za signale između sinkroniziranih niti koriste se metode roditeljske klase Object: wait()/notify()/notifyAll() .
  • prijelazni - modifikator koji pokazuje da vrijednost objekta/varijable ne mora biti "zadržana" prilikom spremanja objekta, na primjer, kada se serijalizira prije nego što se zapiše na disk/bazu podataka. Logično je označiti varijable koje sadrže jedinstveni identifikatori runtime i druge slične informacije koje imaju smisla samo u trenutnoj instanci java procesa.
  • instanceof - rad u vremenu izvođenja, vraća pravi ako postoji poveznica na razred , ili se u suprotnom može prebaciti na referencu na ovu klasu lažno.
  • assert - izrazi u Javi se koriste na isti način kao u C: assert [: Opis neuspjele tvrdnje] , ali treba imati na umu da su "ušiveni" u prevedeni bajtkod i mogu se uključiti kada pokretanje java-ea.
  • this(...) - može se koristiti unutar konstruktora klase za pozivanje drugog konstruktora iste klase koji odgovara potpisu argumenta.
  • Umjesto predlošci su korišteni generalizacije, izgleda vrlo slično: klasa CLASS_NAME ( ... ) . U generalizacijama Zabranjeno je koristiti primitivni vrste ( int, byte, char, itd...). Kao parametri se mogu koristiti samo razredi.
    Osim toga, podržan ograničene vrste, kroz određivanje superklase za klase parametara. Na primjer, deklaracija klase "generičke klase" CLASS_NAME u kojem je dopušteno koristiti samo klase potomke opće numeričke klase Broj .
  • Za brzo kopiranje nizova prikladno je koristiti System.arraycopy() .
  • Programiranje je pisanje izvornog koda programa na jednom od programskih jezika. Ima ih mnogo raznim jezicima programiranje, zahvaljujući kojem se stvaraju sve vrste programa koji rješavaju određeni niz problema. Programski jezik je skup rezerviranih riječi koje se koriste za pisanje izvor programe. Računalni sustavi (još) nisu u stanju razumjeti ljudski jezik, a još više ljudsku logiku (osobito žensku), pa su svi programi napisani programskim jezicima, koji se naknadno prevode u računalni jezik ili u strojni kod. Sustavi koji prevode izvorni kod programa u strojni kod vrlo su složeni i u pravilu ih stvara više od desetak mjeseci i više od desetak programera. Takvi se sustavi nazivaju okviri ili alati za programiranje aplikacija.

    Programski jezici, kao što su obični jezici, jesu različiti putevi komunicirajte s računalom onako kako želite da djeluje. Programski jezici omogućuju nam da računalo korak po korak učimo kako manipulirati podacima, prikupljati podatke od korisnika i prikazati stvari na ekranu, između ostalog.

    Na mikroskopskoj razini, procesor računala šalje električne signale naprijed-natrag koji kontroliraju njegov rad. Dijelovi podataka pohranjeni su kao varijable, koje su u osnovi spremnici koji drže podatke. Tako, na primjer, ako varijabla treba sadržavati broj, moramo to reći i nećemo smjeti u nju staviti ništa drugo, poput slova. Statički tip također znači da će sve varijable biti provjerene prije nego što se program uopće pokrene, a prikazat će nam se pogreška ako zaboravimo deklarirati vrstu podataka ili proglasiti nevažećim. "Objektno orijentiran" je objektno orijentirani jezik izgrađen oko koncepta objekata. U fizičkom svijetu, osvrnite se po sobi i razmišljajte o svakoj stvari kao o objektu. Na primjer, trenutno na svom stolu imam šalicu. Kao predmet, ovo ime je "šalica" i ima svojstva poput boje i količine tekućine koja će zadržati. Također možemo slati poruke objektima, pa bih za moju šalicu možda trebao znati "Je li prazna?". Na primjer, možemo koristiti objekt Camera za snimanje slike.

    • "Statički upisan".
    • Programiranje je u svojoj srži zapravo rad s podacima.
    Nema apsolutno nikakve veze između dva jezika.

    Programski sustav je ogromno, promišljeno vizualno okruženje u kojem možete napisati izvorni kod programa, prevesti ga u strojni kod, testirati ga, otkloniti pogreške i još mnogo toga. Osim toga, postoje programi koji vam omogućuju izvođenje gore navedenih radnji pomoću naredbenog retka.

    Vjerojatno ste više puta čuli izraz "program napisan pod Windowsom ili pod Linuxom, Unixom". Činjenica je da programska okruženja pri prevođenju programskog jezika u strojni kod mogu biti dvije vrste - to su prevoditelji i interpretatori. Prevođenje ili tumačenje programa određuje kako će se program dalje izvršavati na uređaju. Programi napisani u Javi uvijek rade na temelju interpretacije, dok su programi napisani u C/C++ kompilacije. Koja je razlika između ove dvije metode?

    Ova dva jezika različito su napisana i rade drugačije, ali oba nam omogućuju rad s programskim značajkama kao što su varijable, metode, operatori, pa čak i objekti. Sam jezik je skup ključnih riječi i simbola koje prikupljamo kako bismo izrazili kako želimo da naš kod funkcionira.

    Svaki redak koda ima specifična pravila o tome kako bi trebao biti izgrađen i što je dopušteno, a što nije. Zapamtite da su programski jezici apstrakcije, što znači da apstrahiraju prave osnove kako računalo radi u stvari koje možemo lakše razumjeti. Iza kulisa je stvarno sve i nule, ali o tome se ne moramo brinuti. Možemo razmišljati ovim apstraktnim pojmovima kako bismo izrazili svoje ideje i naredbe, a te se apstrakcije odnose na sve. različiti tipovi programiranje.

    Prevoditelj, nakon što je napisao izvorni kod u vrijeme kompilacije, čita cijeli izvorni kod programa odjednom i prevodi ga u strojni kod. Nakon toga program postoji kao cjelina i može se samo u njemu izvršavati operacijski sustav u kojoj je bilo napisano. Stoga programi napisani pod Windowsom ne mogu funkcionirati pod Linuxom i obrnuto. Tumač izvršava program korak po korak ili redak po red svaki put kada se izvrši. Tijekom interpretacije ne stvara se izvršni kod, već virtualni, koji naknadno izvršava Java virtualni stroj. Stoga se na bilo kojoj platformi – Windows ili Linux – Java programi mogu izvoditi na isti način ako u sustavu postoji Java virtualni stroj, koji se također naziva Runtime System.

    - Zadane metode sučelja

    Ovdje su neke od ključnih riječi koje označavaju vrstu podataka koje ćemo koristiti i pohranjivati ​​u varijablama. Budući da se decimalno mjesto može mijenjati ili plutati, važno je biti svjestan da ove vrijednosti tehnički mogu biti netočne. Druge primitivne vrste podataka uključuju bajtove, kratke i duge. Objekt se razlikuje od primitivnog tipa podataka po tome što ima složenija svojstva i dostupne metode, dok su primitivni tipovi podataka ograničeni i jednostavni. Varijabla je u osnovi spremnik koji se koristi za pohranu podataka.

    Objektno orijentirano programiranje

    Objektno orijentirano programiranje temelji se na objektima, što je donekle slično našem svijetu. Ako pogledate oko sebe, definitivno možete pronaći nešto što će vam pomoći da jasnije shvatite model takvog programiranja. Na primjer, trenutno sjedim za svojim stolom i tipkam ovo poglavlje na računalu koje se sastoji od monitora, sistemske jedinice, tipkovnice, miša, zvučnika i tako dalje. Svi ovi dijelovi su objekti koji čine računalo. Znajući to, vrlo je lako formulirati neki generalizirani model rada cijelog računala. Ako ne razumijete zamršenosti softverskih i hardverskih svojstava računala, onda možemo reći da objekt System Unit izvodi određene radnje koje prikazuje objekt Monitor. Zauzvrat, objekt tipkovnice može ispraviti ili čak postaviti radnje za objekt blok sustava koje utječu na rad objekta Monitor. Prikazani proces vrlo dobro karakterizira cijeli sustav objektno orijentiranog programiranja.

    Ovdje su osnovna pravila sintakse

    Pogledajmo primjer. Pogledajmo svaki numerirani dio. Prva riječ u deklaraciji varijable je tip podataka, koji nam govori koji će podaci biti pohranjeni u varijablu. Druga riječ je naziv varijable, koji može biti što god želite, slijedeći nekoliko osnovnih pravila. Nazivi varijabli ne smiju sadržavati razmake ili posebni znakovi; mogu imati samo slova, brojeve i donje crte. Znak jednakosti je operator, odnosno obavlja određenu operaciju umjesto nas. Ovo je operator dodjele, što znači da ga koristimo za dodjelu vrijednosti varijablama. Konačno, posljednji znak u ovom retku je točka-zarez, koji se koristi za završetak ove izjave. Međutim, ne smiju početi brojem. . Neki drugi primjeri deklaracija varijabli koji koriste neke od osnovnih tipova podataka koje smo pokrili su sljedeći.

    Zamislite neku moćnu softver, koji sadrži stotine tisuća redaka koda. Cijeli program se izvršava redak po redak, redak po redak, a u principu će svaki od sljedećih redaka koda nužno biti povezan s prethodnim redom koda. Ako ne koristite objektno orijentirano programiranje i kada to trebate promijeniti programski kod, recimo, ako trebate poboljšati neke elemente, morat ćete puno poraditi s cijelim izvornim kodom ovog programa.

    Metode se koriste za organiziranje našeg koda u dijelove za višekratnu upotrebu koji nam štede puno vremena i energije. Druga riječ u metodi je tip podataka koji će biti vraćen. Sljedeće ime je naziv metode. Nazivi metoda slijede otprilike ista pravila kao i nazivi varijabli: slova, brojevi i podvlake, ali ne mogu započeti brojem.

    Odmah iza imena vidimo dvije zagrade bez ičega između njih. Zagrada je potrebna, ali kada je prazna, to znači da ne prosljeđujemo nikakve podatke ili varijable kada pozivamo metodu. Ako je jedna ili više varijabli uključeno između zagrada, tada bismo morali proslijediti odgovarajuće vrijednosti ili varijable u zagradi kada pozovemo ovu metodu.

    U objektno orijentiranom programiranju sve je puno jednostavnije, da se vratimo na primjer računalnog sustava. Recimo da više niste zadovoljni monitorom od sedamnaest inča. Možete ga jednostavno zamijeniti za monitor od dvadeset inča, naravno, ako imate određena financijska sredstva. Sam proces zamjene neće za sobom povlačiti velike probleme, osim što će se morati promijeniti drajver, obrisati prašinu ispod starog monitora i to je to. Otprilike na ovom principu rada izgrađeno je objektno orijentirano programiranje, gdje određeni dio koda može predstavljati klasu homogenih objekata koji se lako mogu nadograditi ili zamijeniti.

    Redak 1 završava otvorenim vitičastim zagradama, a odgovarajući zatvarajući vitičasti zagrada je na liniji. Ova dokumentacija je arhivirana i ne održava se. Najočitija promjena pri prelasku između programskih jezika je promjena sintakse.

    Iako sintaksa svakog jezika različito izražava metodu, funkcionalnost je ista. Opis funkcionalnost, parametri i povratne vrijednosti objekta, uz neke iznimke, vrijedi za sve jezike. Na primjer, razmotrite funkciju kvadrata kako je implementirana u svakom od ova tri skriptna jezika.

    Objektno orijentirano programiranje vrlo jednostavno i jasno odražava bit problema koji se rješava i, što je najvažnije, omogućuje uklanjanje nepotrebnih objekata bez štete za cijeli program, zamjenjujući te objekte novijim. Sukladno tome, cjelokupna čitljivost izvornog koda cijelog programa postaje puno lakša. Također je značajno da se isti kod može koristiti u potpuno različitim programima.

    Operatori povećanja i dekrementa

    Imajte na umu da su skriptni jezici, za razliku od programskih jezika, slabo upisani. Drugim riječima, ne morate specificirati tip podataka parametra ili povratnu vrijednost kada deklarirate funkciju. Umjesto toga, varijable se automatski pretvaraju u odgovarajuću vrstu podataka.

    Ova sličnost je samo površna. Pogledajmo sada što znače varijable klase, objekta, metode i instance. Primjer: Pas ima stanja - boju, ime, pasminu, kao i ponašanja poput mahanja repom, lajanja, jedenja. To je u metodama gdje se upisuje logika, obrađuju se podaci i izvode sve radnje. varijable instance. Svaki objekt ima svoj jedinstveni skup varijabli instance. Stanje objekta stvaraju vrijednosti dodijeljene ovim varijablama instance.

    • Objekt.
    • Objekti imaju stanja i ponašanje.
    • Klasa može sadržavati mnogo metoda.
    Pogledajmo kako spremiti datoteku, kompajlirati i pokrenuti program.

    Nastava

    Jezgra svih Java programa su klase na kojima se temelji objektno orijentirano programiranje. Zapravo, vi već znate što su nastava, ali još ne znate o tome. U prethodnom dijelu govorili smo o objektima, koristeći cijelo računalo kao primjer. Svaki objekt od kojeg je računalo sastavljeno je predstavnik svoje klase. Na primjer, klasa Monitor objedinjuje sve monitore, bez obzira na njihove vrste, veličine i mogućnosti, a jedan određeni monitor na vašem stolu je objekt klase monitora.

    - Slijedite sljedeće korake. Otvorite prozor naredbenog retka i prijeđite u direktorij u koji ste spremili klasu. Ako se za formiranje naziva klase koristi više riječi, svako prvo slovo prve riječi mora biti napisano velikim slovima. Svi nazivi metoda moraju početi malim slovom.

    • Otvorite bilježnicu i dodajte kod kao gore.
    • Ako nema grešaka u kodu, naredbeni redak odvest će vas na sljedeći red.
    • Nazivi razreda.
    • Za sve nazive klasa prvo slovo mora biti veliko.
    • Primjer: razred.
    Nazivi koji se koriste za klase, varijable i metode nazivaju se identifikatori.

    Ovaj pristup olakšava simulaciju svih vrsta procesa u programiranju, što olakšava rješavanje zadataka. Na primjer, postoje četiri objekta četiri različite klase: monitor, jedinica sustava, tipkovnica i zvučnici. Da biste reproducirali zvučnu datoteku, trebate upotrijebiti tipkovnicu za davanje naredbe jedinica sustava, samu radnju izdavanja naredbe promatrat ćete vizualno na monitoru i, kao rezultat, zvučnici će reproducirati audio datoteku. To jest, svaki objekt je dio određene klase i sadrži sve alate i mogućnosti dostupne ovoj klasi. Objekta jedne klase može biti onoliko koliko je potrebno za rješavanje zadatka.

    Svi identifikatori moraju početi slovom, simbolom valute ili donjom crtom.

    • Nakon prvog znaka, identifikatori mogu imati bilo koju kombinaciju znakova.
    • Ključna riječ se ne može koristiti kao identifikator.
    • Ono što je najvažnije, identifikatori su osjetljivi na velika i mala slova.
    Kao i drugi jezici, možete mijenjati klase, metode i tako dalje. Korištenje modifikatora. Postoje dvije kategorije modifikatora -.

    Pogledat ćemo više detaljima o modifikatorima u sljedećem odjeljku. Lokalne varijable Varijable klase Varijable instance. . Nizovi su objekti koji pohranjuju više varijabli istog tipa. Međutim, sam niz je objekt na hrpi. Pogledat ćemo kako deklarirati, izgraditi i inicijalizirati u kasnijim poglavljima.

    Metode

    Kad je dat primjer reprodukcije zvučna datoteka, zatim se spominjalo davanje naredbe ili poruke, na temelju koje su izvršene određene radnje. Zadatak izvođenja radnji rješava se metodama koje svaki objekt ima. Metode su skup naredbi s kojima možete izvršiti određene radnje s objektom.

    Povećanje i smanjenje

    Vrijednosti u ovoj nabrojanoj listi nazivaju se nabrajanja. Koristeći enume, možete smanjiti broj pogrešaka u vašem kodu. Na primjer, ako razmatramo zahtjev za trgovinu svježim sokovima, mogli bismo ograničiti veličinu čaše na malu, srednju i veliku. To će osigurati da nikome neće dopustiti da naruči bilo koje druge veličine osim malih, srednjih ili velikih.

    Gornji primjer će dati sljedeći rezultat. Bilješka. Enumovi se mogu deklarirati kao vlastiti ili unutar klase. Metode, varijable, konstruktori također se mogu definirati unutar enuma. Ove rezervirane riječi ne mogu se koristiti kao konstante ili varijable ili bilo koji drugi nazivi identifikatora. U osnovi, ako trebate stvoriti novu klasu, a već postoji klasa koja ima neki kod koji vam je potreban, tada možete izvesti novu klasu iz već postojećeg koda.

    Svaki objekt ima svoju svrhu i dizajniran je za rješavanje određenog niza zadataka korištenjem metoda. Čemu bi koristio, na primjer, objekt Tipkovnica da je nemoguće pritisnuti tipke, a da se mogu izdavati naredbe? Objekt Tipkovnica ima niz tipki pomoću kojih korisnik dobiva kontrolu nad ulaznim uređajem i može dati potrebne naredbe. Obrada takvih naredbi odvija se korištenjem metoda.

    Ovaj koncept vam omogućuje ponovno korištenje polja i metoda postojeće klase bez ponovnog pisanja koda u novoj klasi. U ovom slučaju, postojeća klasa naziva se superklasa, a izvedena klasa naziva se potklasa. Sučelja igraju vitalnu ulogu kada je u pitanju koncept nasljeđivanja. Sučelje definira metode koje primajuća klasa treba koristiti. Ali implementacija metoda je u potpunosti u skladu s podklasom.

    Koncepti i principi objektno orijentiranog programiranja

    Pratite nas za više sadržaja u ovoj seriji. Saznajte što možete očekivati ​​od ovog vodiča i kako iz njega izvući maksimum.

    • Spremite datoteku na tvrdi disk kada se to od vas zatraži.
    • Kada se preuzimanje završi, pokrenite instalacijski program.
    Za sada se držite zadane perspektive i pogleda. Vaše razvojno okruženje je spremno za rad. Paradigma strukturiranog programiranja vrlo je vođena podacima: imate strukture podataka, a zatim programske upute djeluju na te podatke.

    Na primjer, pritisnete tipku Esc da poništite bilo koju radnju i tako date naredbu metodi koja je dodijeljena ovoj tipki, što rješava ovaj problem na razini programa. Odmah se postavlja pitanje o broju metoda objekta Keyboard, ali može postojati i drugačija implementacija - od definiranja metoda za svaku od tipki (što je, zapravo, nerazumno), do stvaranja jedne metode koja će pratiti opće stanje tipkovnice. Odnosno, ova metoda prati je li tipka pritisnuta, a zatim, ovisno o tome koja od tipki je uključena, odlučuje što učiniti.

    Dakle, vidimo da svaki od objekata može imati na raspolaganju skup metoda za rješavanje raznih problema. A budući da je svaki objekt objekt određene klase, ispada da klasa sadrži skup metoda koje koriste različiti objekti iste klase. U jeziku Java, sve metode koje kreirate moraju pripadati ili biti dio određene klase.

    Sintaksa i semantika jezika Java

    Da biste govorili i čitali bilo koji strani jezik, potrebno je naučiti abecedu i gramatiku tog jezika. Slično se stanje uočava i kod proučavanja programskih jezika, s jedinom razlikom, čini mi se, što je taj proces nešto lakši. Ali prije nego što počnete pisati izvorni kod programa, prvo morate riješiti postavljeni problem u bilo kojem obliku koji vam odgovara.

    Napravimo klasu odgovornu, na primjer, za telefon, koja će imati samo dvije metode: uključivanje i isključivanje ovog telefona. Budući da trenutno ne znamo sintaksu jezika Java, klasu Phone ćemo napisati u apstraktnom jeziku.

    Razredni telefon
    {
    Enable() metoda
    {
    // operacije za uključivanje telefona
    }
    Disable() metoda
    {
    // operacije za isključivanje telefona
    }
    }

    Razred Telefon može izgledati otprilike ovako. Imajte na umu da vitičaste zagrade označavaju početak i kraj tijela klase, metode ili bilo kojeg niza podataka. To jest, zagrade označavaju pripadnost metodi ili klasi. Svaka početna zagrada mora imati završnu zagradu. Kako ne bi došlo do zabune, obično se postavljaju na istu razinu u kodu.

    A sada napišimo istu klasu samo u Javi.

    razredni telefon
    {
    poništiti ()
    {
    // tijelo metode on().
    }
    void off()
    {
    // tijelo metode off().
    }
    }

    Ključna riječ class u jeziku Java deklarira klasu, nakon čega slijedi naziv same klase. U našem slučaju, ovo je Telefon. Samo nekoliko riječi o registru snimanja. U gotovo svim programskim jezicima važno je zadržati zapis imena u slučaju u kojem su napravljeni. Ako ste napisali Telefon, onda će pisanje kao što je telefon ili TELefoN dati grešku kompilacije. Kako je izvorno napisano, tako treba pisati dalje.

    Rezervirano ili ključne riječi su napisani u svom specifičnom slučaju i ne možete ih koristiti pri imenovanju metoda, klasa, objekata i tako dalje. Razmaci između riječi nisu važni jer ih prevodilac jednostavno ignorira, ali su važni za čitljivost koda.

    Tijelo klase Telefon ima dvije metode: on() - uključuje telefon i off() metodu - isključuje telefon. Obje metode imaju svoja tijela i, u teoriji, trebale bi sadržavati neki izvorni kod koji opisuje potrebne radnje obje metode. Za nas sada nije važno kako se te metode implementiraju, glavna stvar je sintaksa jezika Java.

    Obje metode imaju zagrade on() unutar kojih se mogu napisati parametri, kao što su on(int time) ili on(int time, int time1). Uz pomoć parametara dolazi do svojevrsnog povezivanja metoda s vanjskim svijetom. Kaže se da metoda on(int time) uzima parametar vremena. Čemu služi? Na primjer, želite da se telefon uključi Određeno vrijeme. Tada će se cjelobrojna vrijednost u parametru vremena proslijediti tijelu metode, a na temelju primljenih podataka telefon će se uključiti. Ako su zagrade prazne, tada metoda ne uzima nikakve parametre.

    Komentari

    U klasi Telefon, u tijelima obje metode, nalazi se unos nakon dvije kose crte: //. Takav unos označava komentare koje će prevodilac zanemariti, ali su neophodni za čitljivost koda. Što više informacija komentirate dok pišete program, veće su šanse da se za godinu dana prisjetite na čemu ste radili sve ovo vrijeme.

    Komentari u Javi mogu biti tri vrste, a to su:

    //, /*…*/ I /**…*/

    Komentari napisani operatorom // moraju biti u jednom retku:

    // Jedna linija
    !!! Pogreška! Ne možete prijeći u drugi red!
    // Prvi red
    // Drugi red
    // …
    // Zadnji redak

    Komentari koji koriste /*…*/ operatore mogu obuhvaćati više redaka. Na početku komentara stavite /*, a na kraju, kada završite s komentiranjem koda, stavite operator */. Posljednja vrsta komentara /**…*/ koristi se prilikom dokumentiranja koda i također se može nalaziti na bilo kojem broju redaka.

    Java vrste podataka

    Za postavljanje proizvoljne vrijednosti, Java ima tipove podataka. U klasi Telefon kreirali smo dvije metode. Obje metode nisu imale parametre, ali kada je dat primjer metode on(int time) s parametrom vremena, radilo se o prosljeđivanju vrijednosti metodi. Ova vrijednost je označavala vrijeme do kojeg bi se telefon navodno trebao uključiti. Specifikator int samo određuje tip vremenske vrijednosti. U Javi 2 ME postoji šest tipova podataka.

    Bajt je mala cjelobrojna vrijednost od -128 do 128;
    short je kratka cjelobrojna vrijednost u rasponu od -32768 do 32767;
    int - sadrži bilo koju cjelobrojnu vrijednost od -2147483648 do 2147483647;
    long je vrlo velika cjelobrojna vrijednost, od -922337203685475808 do 9223372036854775807;
    char je Unicode znakovna konstanta. Domet ovaj format 0 do 65536, što je jednako 256 znakova. Svaki znak ove vrste mora biti napisan u jednostrukim navodnicima, na primjer: 'G';
    boolean - boolean tip, ima samo dvije vrijednosti: false - false i true - true. Ovaj tip se često koristi u petljama o čemu nešto kasnije. Značenje je vrlo jednostavno – ako imate novca u džepu, to je navodno istina, a ako nije, onda laž. Tako, ako imamo novca, idemo u trgovinu po kruh ili pivo (podcrtaj kako priliči), ako nema novca, ostajemo kod kuće. Odnosno, to je takva logična vrijednost koja pridonosi izboru daljnje djelovanje vaš program.

    Za deklariranje neke potrebne vrijednosti koristi se notacija:

    int vrijeme;
    dugo BigTime;
    znakovna riječ;

    Operator točka-zarez je obavezan nakon unosa i nalazi se na kraju retka. Možete kombinirati nekoliko deklaracija iste vrste odvojenih zarezima:

    Mt vrijeme, vrijeme1, vrijeme2;

    Sada poboljšajmo našu klasu Telefon dodajući joj nekoliko vrijednosti. Više nam ne trebaju metode on() i off(), dodajmo nove metode koje zaista mogu riješiti određene zadatke.

    razredni telefon
    {
    //S - područje prikaza
    //w - širina prikaza
    //h - visina prikaza
    int w, h, S;
    //metoda koja izračunava površinu prikaza
    Riječ Područje ()
    {
    S = š*h;
    }
    }

    Dakle, imamo tri varijable S, w i h, koje su odgovorne za površinu, širinu i visinu zaslona u pikselima. Metoda Area() izračunava površinu zaslona telefona u pikselima. Operacija je beskorisna, ali vrlo otkriva i lako razumljiva. Tijelo metode Area() se pronašlo i ima oblik S = w*h. U ovoj metodi jednostavno pomnožimo širinu s visinom i dodijelimo ili, kako kažu, pohranimo rezultat u varijablu S. Ova varijabla će sadržavati vrijednosti područja prikaza ovaj telefon.

    Sada smo se približili operatorima jezika Java, s kojima možete izvoditi sve vrste operacija. Operatori jezika Java, kao i drugih programskih jezika, imaju svoje svrhe. Dakle, postoje aritmetički operatori, operatori povećanja i dekrementa, logički operatori i relacijski operatori. Pogledajmo svaki od gore navedenih operatora.

    Aritmetički operatori

    Svi su aritmetički operatori vrlo jednostavni i slični su operatorima množenja "*", dijeljenja "/", zbrajanja "+" i oduzimanja "-" koji se koriste u matematici. Postoji modulo operator "%" i pomalo zbunjujuća situacija s operatorom jednakosti "=". Operator jednakosti u programskim jezicima naziva se operator dodjele:

    Ovdje dodjeljujete vrijednost 3 varijabli x. A operator "jednako" u programskim jezicima odgovara pisanju dva "jednako" operatora u nizu: "==". Pogledajmo primjer što razni aritmetički operatori mogu učiniti.

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

    U ovom slučaju, z će već imati vrijednost zbroja x i y, odnosno 8.

    Varijabla x imala je vrijednost 5, ali nakon takvog snimanja prethodna vrijednost se gubi i upisuje se umnožak z*x (8*5), što je 40. Sada, ako nastavimo naš kod dalje, varijable će izgledati kao ovo:

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

    Operatori zbrajanja i oduzimanja imaju istu svrhu kao i u matematici. Negativni brojevi su također povezani.

    Operatori dekrementa "--" i inkrementa "++" vrlo su specifični, ali vrlo jednostavni. U programiranju često postoje slučajevi kada želite povećati ili smanjiti vrijednost za jedan. Često se to događa u ciklusima. Operacija inkrementa povećava varijablu za jedan.

    int x = 5;
    x++;
    // Ovdje je x već 6

    Operacija dekrementa smanjuje varijablu za jedan.

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

    Operatori povećanja i dekrementa mogu biti post i prefiks:

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

    U posljednjem retku koda, x se prvo dodjeljuje y, što je 5, a tek onda se x povećava za jedan. Ispada da:

    Povećanje prefiksa izgleda ovako:

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

    I u ovom slučaju, najprije se varijabla x povećava za jedan, a zatim dodjeljuje već povećanu vrijednost y.

    Relacijski operateri

    Relacijski operatori omogućuju testiranje jednakosti oba dijela izraza. Postoji operator jednakosti "==", operatori manji od "<» и больше «>", manje ili jednako "<=» и больше или равно «>=", kao i operator negacije "!=".
    9 == 10;

    Ovaj izraz nije istinit, devet nije jednako deset, pa je njegova vrijednost za ovaj izraz netočna.

    Ovdje, naprotiv, operator negacije označava nejednakost izraza, a vrijednost će biti jednaka true. Operatori veći od, manji od, veći ili jednaki i manji od ili jednaki su analogni odgovarajućim operatorima iz matematike.

    Logički operatori

    Postoje dva logička operatora. Operator "AND" označen s "&&" i operator "OR", označen s dvije kose crte "||". Na primjer, postoji izraz:

    A*B && B*C;

    U slučaju da su samo oba dijela izraza istinita, vrijednost izraza se smatra istinitom. Ako je jedan od dijelova netočan, tada će vrijednost cijelog izraza biti lažna.
    Za razliku od "&&" operatora, postoji operator "||" koji se ne zove uzalud "ILI".

    A*B || PRIJE KRISTA;

    Ako je bilo koji dio izraza istinit, tada se cijeli izraz smatra istinitim. Oba operatora mogu se kombinirati u jednom izrazu, na primjer:

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

    Uz pomoć ovog izraza uveo sam vas, kako mi se čini, u teškoću, zar ne? Činjenica je da u Javi, kao i u matematici, postoji prioritet ili takozvana hijerarhija operatora, uz pomoć koje se utvrđuje koji je od operatora važniji, pa se stoga najprije provjerava. Razmislite o korištenju popisa prioriteta svih dostupnih operatora u jeziku Java:

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

    Asocijativnost operatora na popisu slijedi s lijeva na desno i odozgo prema dolje. Odnosno, sve što je lijevo i gore je više po rangu i važnije.