Računalniki Windows Internet

Sintaksa strani JSP. Pogojni konstrukti

Programiranje je pisanje izvorne kode programa v enem od programskih jezikov. Veliko jih je različne jezike programiranje, zahvaljujoč kateremu nastajajo vse vrste programov, ki rešujejo določeno paleto težav. Programski jezik je niz rezerviranih besed, ki se uporabljajo za pisanje izvorne kode programa. Računalniški sistemi (še) ne zmorejo razumeti človeškega jezika, še bolj pa človeške logike (zlasti ženskega), zato so vsi programi napisani v programskih jezikih, ki se nato prevedejo v računalniški jezik ali strojno kodo. Sistemi, ki izvorno kodo programa prevedejo v strojno kodo, so zelo zapleteni in jih praviloma ustvari več kot ducat mesecev in več kot ducat programerjev. Takšni sistemi se imenujejo integrirana programska okolja ali orodja.

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

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

Prevajalnik, potem ko je v času sestavljanja zapisal izvorno kodo, prebere vso izvorno kodo programa hkrati in jo prevede v strojno kodo. Po tem program obstaja kot celota in ga je mogoče izvesti le v tem operacijski sistem v katerem je bilo zapisano. Zato programi, napisani v sistemu Windows, ne morejo delovati v sistemu Linux in obratno. Tolmač bo stopal skozi ali po vrstici pri izvajanju programa vsakič, ko se izvede. Med interpretacijo se ne ustvari izvršljiva 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 sistem za izvajanje.

Objektno usmerjeno programiranje

Objektno usmerjeno programiranje temelji na objektih, ki so nekoliko podobni 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 v 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 vemo, je zelo enostavno oblikovati nekakšen posplošen model delovanja 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. Objekt Keyboard pa lahko popravi ali celo določi dejanja za objekt sistemske enote, ki vplivajo na delovanje predmeta Monitor. Predstavljeni postopek zelo dobro označuje celoten objektno usmerjen programski sistem.

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

Objektno usmerjeno programiranje je veliko enostavnejše, vrnimo se k primeru računalniškega sistema. Recimo, da s sedemnajst-palčnim monitorjem niste več zadovoljni. Seveda ga lahko varno zamenjate za dvajset palčni monitor, če imate določena materialna sredstva. Sam postopek menjave ne bo povzročil velikih težav, le da bo treba zamenjati gonilnika, obrisati prah izpod starega monitorja in to je to. Objektno usmerjeno programiranje temelji na približno tem principu delovanja, kjer lahko določen del kode predstavlja razred homogenih predmetov, ki jih je mogoče enostavno posodobiti ali zamenjati.

Objektno naravnano programiranje zelo preprosto in jasno odraža bistvo rešenega problema in kar je najpomembneje, brez poseganja v celoten program omogoča odstranjevanje nepotrebnih predmetov z zamenjavo teh predmetov z novejšimi. V skladu s tem postane splošna berljivost celotne izvorne kode programa veliko lažja. Pomembno je tudi, da se ista koda lahko uporablja v popolnoma različnih programih.

Razredi

Jedro vseh programov Java so razredi, na katerih temelji objektno usmerjeno programiranje. Pravzaprav že veste, kaj so razredi, vendar o tem še ne veste. V prejšnjem razdelku smo govorili o objektih, za primer smo vzeli strukturo 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 poseben monitor, ki stoji na vaši mizi, pa je predmet razreda monitorjev.

Ta pristop zelo olajša simulacijo vseh vrst procesov v programiranju in olajša reševanje dodeljenih nalog. Na primer, obstajajo štirje predmeti štirih različnih razredov: monitor, sistemska enota, tipkovnica in zvočniki. Za predvajanje zvočne datoteke z ukazom uporabite tipkovnico sistemska enota, samo dejanje ukaza, ki ga boste vizualno opazovali na monitorju, posledično bodo zvočniki predvajali zvočno datoteko. To pomeni, da je vsak predmet del določenega razreda in vsebuje vsa sredstva in zmožnosti tega razreda. Predmetov istega razreda je lahko toliko, kolikor je potrebno za rešitev problema.

Metode

Ko je bil podan primer predvajanja zvočna datoteka, nato je bilo omenjeno podajanje ukaza ali sporočila, na podlagi katerega so bila izvedena določena dejanja. Naloga izvajanja dejanj je rešena z metodami, ki jih ima vsak predmet. Metode so niz ukazov, s katerimi lahko izvedete določena dejanja s predmetom.

Vsak predmet ima svoj namen in je zasnovan za reševanje določenega niza težav z uporabo metod. Na primer, kaj bi bil koristen objekt Tipkovnica, če ne bi mogli pritisniti tipk in še vedno lahko oddajati ukaze? Objekt Keyboard ima določeno število tipk, s katerimi uporabnik pridobi nadzor nad vhodno napravo in lahko izda potrebne ukaze. Obdelava takih ukazov poteka z uporabo metod.

Na primer, pritisnete tipko Esc, če želite preklicati katero koli dejanje in s tem dati ukaz metodi, dodeljeni tej tipki, ki reši to težavo na programski ravni. Takoj se pojavi vprašanje o številu metod predmeta Keyboard, vendar je tu lahko različna izvedba - od opredelitve metod za vsako tipko (ki je na splošno nerazumna), 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, odvisno od tega, katera od tipk je vključena, odloči, kaj bo storila.

Vidimo torej, da ima lahko vsak od objektov 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 jezik

Če želite govoriti in brati kateri koli tuji jezik, se morate naučiti abecede in slovnice tega jezika. Podoben pogoj opazimo pri preučevanju 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 težavo, ki se vam pojavi, v kakršni koli obliki, ki vam ustreza.

Ustvarimo določen razred, ki je na primer odgovoren za telefon, ki bo imel samo dve metodi: vklop in izklop telefona. Ker zdaj ne poznamo skladnje jezika Java, bomo razred Telefon napisali v abstraktnem jeziku.

Razredni telefon
{
Metoda Include ()
{
// operacije za vklop telefona
}
Disable () metoda
{
// operacije za izklop telefona
}
}

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

Zdaj pa napišemo isti razred samo v Javi.

Razred Telefon
{
void on ()
{
// telo metode on ()
}
void off ()
{
// telo metode off ()
}
}

Ključna beseda class v jeziku Java razglaša razred, ki mu sledi ime samega razreda. V našem primeru je to telefon. Nekaj ​​besed o registru zapisa. V skoraj vseh programskih jezikih je pomembno, da se imena hranijo v registru, v katerem so nastala. Če ste napisali Telefon, bo že takšen črkovanje, kot je telefon ali TELefoN, pri sestavi napako. Tako kot je bilo sprva napisano, je zato treba pisati naprej.

Rezervirane ali ključne besede so zapisane v njihovem posebnem primeru in jih ne morete uporabiti tako, da jim poimenujete metode, razrede, predmete itd. Razmiki med besedami niso pomembni, saj jih prevajalnik preprosto prezre, vendar so pomembni za berljivost kode.

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

Obe metodi imata oklepaja (), v katerega je mogoče zapisati parametre, na primer on (int time) ali on (int time, int time1). S pomočjo parametrov obstaja nekakšna povezava med metodami in zunanjim svetom. Metoda on (int time) naj bi imela časovni parameter. Za kaj je to? Na primer, želite, da se telefon vklopi določen čas... Nato se v telo metode posreduje celoštevilska vrednost v časovnem parametru in na podlagi prejetih podatkov se telefon vklopi. Če so oklepaji prazni, potem metoda ne sprejema parametrov.

Komentarji (1)

V razredu Telefon imajo telesa obeh metod vnos po dveh poševnicah: //. Tak vnos označuje komentarje, ki jih prevajalnik ne bo upošteval, vendar so potrebni za berljivost kode. Več informacij, ki jih komentirate med pisanjem programa, več možnosti boste imeli, da se v enem letu spomnite, na čem ste delali ves ta čas.

Komentarji v Javi so lahko treh vrst, in sicer:

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

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

// Ena vrstica
!!! Napaka! Ne morete se premakniti v drugo vrstico!
// Prva vrsta
// Druga vrstica
// …
// zadnja vrstica

Komentarji z operaterji / * ... * / lahko obsegajo več vrstic. Na začetku komentarja vnesite / *, na koncu pa ko komentirajte kodo, vnesite operator * /. Zadnja vrsta komentarja / ** ... * / se uporablja pri dokumentiranju kode in se lahko nahaja tudi v poljubnem številu vrstic.

Podatkovne vrste Java

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

Bajt - majhna cela vrednost od –128 do 128;
short - kratka cela vrednost v območju od –32768 do 32767;
int - vsebuje poljubno celo število od –2147483648 do 2147483647;
long je zelo velika celoštevilska vrednost, od –922337203685475808 do 9223372036854775807;
char je znakovna konstanta Unicode. Domet tej obliki 0 do 65536, kar je 256 znakov. Vsak znak te vrste mora biti zapisan v enojnih narekovajih, na primer: 'G';
boolean je 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 to verjetno res, če pa ne, potem napačno. Tako, če je denar, gremo v trgovino po kruh ali pivo (podčrtaj potrebno), če ni denarja, ostanemo doma. To pomeni, da je takšna logična vrednost, ki prispeva k izbiri nadaljnje ukrepanje vaš program.

Za razglasitev neke zahtevane vrednosti se uporabi naslednji vnos:

Int time;
dolg BigTime;
beseda char;

Operater podpičje je potreben po vnosih in se nahaja na koncu vrstice. Združite 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 on () in off (), 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
območje vord ()
{
S = w * h;
}
}

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

Zdaj se približujemo operaterjem jezika Java, s katerimi lahko izvajate vse vrste operacij. Upravljavci jezika Java in drugih programskih jezikov imajo svoje namene. Torej obstajajo aritmetični operaterji, operaterji priraščanja in zmanjševanja, logični operaterji in relacijski operaterji. Oglejmo si vsakega od zgornjih operaterjev.

Aritmetični operaterji

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

Tu spremenljivki x dodelite vrednost 3. In operator "enako" v programskih jezikih ustreza pisanju dveh zaporednih operatorjev "enako": "==". Poglejmo 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 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 zmnožek z * x (8 * 5), kar je 40. Zdaj, če nadaljujemo našo kodo, bodo spremenljivke videti takole:

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

Operatorji seštevanja in odštevanja imajo enake namene kot v matematiki. Negativne številke so podobno povezane.

Operatorja zmanjšanja »––« in prirastka »++« sta zelo specifična, vendar zelo preprosta. V programiranju se včasih 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 zmanjševanja spremenljivko zmanjša za eno.

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

Operacije povečevanja 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, šele nato se spremenljivka x poveča za eno. Izkazalo se je, da:

Prirastek predpone je:

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

V tem primeru se najprej spremenljivka x poveča za eno, nato pa že povečano vrednost dodeli y.

Relacijski operaterji

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

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

Tu, nasprotno, operator negacije označuje neenakost izraza in vrednost bo resnična. Operatorji večji, manjši, večji ali enaki in manjši ali enaki so podobni ustreznim operatorjem iz matematike.

Logični operaterji

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

A * B && B * C;

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

A * B || B * C;

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

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

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

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

Povezanost operaterja na seznamu sledi od leve proti desni in od zgoraj navzdol. To pomeni, da je vse, kar je levo in zgoraj, starejše in pomembnejše.

Strani JSP imajo kombinirano skladnjo: kombinacijo standardne skladnje, kot je opredeljena s specifikacijo HTML, in sintakso JSP, kot je opredeljena s specifikacijo Strežnik Java Strani. Sintaksa JSP določa pravila za pisanje strani JSP, ki so sestavljene iz standardnih oznak HTML in oznak JSP. Strani JSP poleg oznak HTML vsebujejo oznake JSP naslednjih kategorij:

Direktive JSP

Direktive zagotoviti globalne informacije o posebnih zahtevah JSP in zagotoviti informacije, potrebne v fazi prevajanja.

Direktive so vedno na začetku strani JSP pred vsemi drugimi oznakami, tako da razčlenjevalnik(razčlenjevalnik) JSP je pri razčlenjevanju besedila na samem začetku izpostavil globalna navodila. Tako mehanizem JSP (čas izvajanja JSP) razčlenjuje kodo in ustvari strežniški programček iz JSP. Direktive so sporočila v vsebnik JSP. Sintaksa direktivah JSP izgleda takole:

<%@ директива имяАтрибута="значение" %>Sintaksa opravila direktivah v XML: Direktivo ima lahko več atributov. V tem primeru direktivo se lahko ponovi za vsakega od atributov. Hkrati parov "AttributeName = value" se lahko nahaja pod eno direktivo s presledkom kot ločevalnikom. Obstajajo tri vrste direktiv:

  • stran (stran)
  • taglib (knjižnica oznak)
  • vključi (vključi)

Direktiva o strani

Direktivo stran definira lastnosti strani JSP, ki vplivajo na prevajalca. Vrstni red atributov v direktivi stran ni pomembno. Kršitev skladnje ali prisotnost neprepoznanih atributov povzroči napako pri prevodu. Primer direktive stran lahko služi naslednja koda:<%@ page buffer="none" isThreadSafe="yes" errorPage="/error.jsp" %>Ta direktiva to razglaša to stran JSP ne uporablja medpomnjenja, da lahko veliko uporabnikov hkrati dostopa do določene strani JSP in da je stran z napako z imenom error.jsp.
Direktivo stran lahko vsebuje podatke o strani:<%@ page info = "JSP Sample 1" %>Seznam možnih atributov direktive stran predstavljene v tabeli.
Ime atributaPomen Opis
jezik Linija Določa jezik, ki se uporablja v skriptnih datotekah JSP, izrazih ali kateri koli datoteki za vključitev, vključno s telesom prevedene kode. Privzeto je "java"
podaljša Linija Podaja nadrazred za ustvarjeni strežniški programček. Ta atribut je treba uporabljati zelo previdno, saj je možno, da strežnik že uporablja superrazred.
uvoz Linija Opredelitev paketov za uvoz, na primer:
& lt% @ page import = "java.util. *%>
Seja pravilno ali napačno Pomen prav(privzeto) označuje, da je vnaprej določena spremenljivka sejo(tip HttpSession) mora biti vezan na obstoječo sejo, če obstaja, sicer se ustvari nova seja in se nanjo poveže. Pomen napačno ugotavlja, da seje ne bodo uporabljale, in poskuša dostopati do spremenljivke sejo bo pri prevajanju strani JSP v strežniški programček povzročila napako
Pufer nič ali velikost pufra v kB. Nastavi velikost medpomnilnika za JspWriter. Privzeta vrednost je odvisna od nastavitev strežnika in ne sme presegati 8 kB. Če je vrednost nobena izhod gre neposredno na objekt
samodejno izpiranje pravilno ali napačno Določa, ali naj se medpomnilnik samodejno izprazni, če pride do napake. Privzeta vrednost prav
isThreadSafe pravilno ali napačno Pomen prav(privzeto) podaja običajen način izvajanja strežniškega programčka, kjer se hkrati z enim primerkom strežniškega programčka obdeluje več zahtev hkrati, ob predpostavki, da ima avtor sinhroniziran dostop do spremenljivk tega primerka. Lažna vrednost signalizira, da mora servlet podedovati SingleThreadModel(enonitni model), kjer zaporedne ali sočasne zahteve obravnavajo ločeni primerki strežniškega programčka
info Linija Določa niz informacij o strani JSP, do katerih bo dostopen po metodi Servlet.getServletInfo ()
errorPage Linija Vrednost atributa je URL strani, ki bi morala biti prikazana v dogodku možne napake metanje izjem
isErrorPage pravilno ali napačno Označuje, ali je to stran mogoče uporabiti za obravnavo napak na drugih straneh JSP. Privzeto je napačno
contentType Linija Podaja kodiranje za stran JSP in odziv ter vrsto MIME odgovora JSP. Privzeta vrednost vrste vsebine je besedilo / html, kodiranja - ISO-8859-1. Na primer:
contentType = "text / html; charset = ISO-8859-1"
pageEncoding Linija Določa kodiranje znakov strani JSP. Privzeto je charset iz atributa contentTypeče je tam definirano. Če je vrednost charset v atributu contentType nedefinirano, vrednost pageEncoding je nastavljeno enako ISO-8859-1

Taglib direktiva

Direktivo taglib izjavlja, da dana stran JSP uporablja knjižnico oznak, jo edinstveno identificira z URI in preslika predpono oznake, s katero je mogoče uporabiti knjižnico. Če vsebnik ne najde knjižnice oznak, pride do usodne napake pri prevodu. Direktivo taglib ima naslednjo sintakso:<%@ taglib uri="URI vključene knjižnice oznak"predpona =" ime predpone"%> Predpona" ime predpone"se uporablja pri sklicevanju na knjižnico. Primer uporabe knjižnice oznak mytags: <%@ taglib uri="http://www.taglib/mytags" prefix="customs" %> . . . V ta primer knjižnica oznak ima URI "http: //www.taglib/mytags", je niz dodeljen kot predpona običaji ki se uporablja na strani JSP pri dostopu do elementov knjižnice oznak.

Vključi direktivo

Direktivo vključujejo omogoča vstavljanje besedila ali kode med prevajanjem strani JSP v strežniški programček. Sintaksa direktive vključujejo izgleda takole:<%@ include file="Relativni URI strani, ki jo želite vključiti"%> Direktiva vključujejo ima en atribut - mapa... Vključuje besedilo navedenega vira v datoteki JSP. To direktivo lahko uporabite za postavitev standardne glave avtorskih pravic na vsako stran JSP:<%@ include file="copyright.html" %>Vsebnik JSP dostopa do datoteke include. Če se je datoteka za vključitev spremenila, lahko vsebnik ponovno prevede stran JSP. Direktivo vključujejo obravnava vir, kot je stran JSP, kot statičen objekt. Podatki URI se običajno razlagajo glede na JSP strani, na kateri je povezava, toda tako kot pri vsakem relativnem URI lahko sistemu poveste položaj vira, ki vas zanima, glede na domači imenik strežnika WEB s predpono URI z znakom "/". Vsebina datoteke include je obravnavana kot navadno besedilo JSP in lahko zato vključuje elemente, kot so statični HTML, elementi skripta, direktive in dejanja. Mnoga spletna mesta uporabljajo majhno navigacijsko vrstico na vsaki strani. Zaradi težav pri uporabi okvirjev HTML se ta naloga pogosto reši tako, da se na vrh ali v levo polovico strani postavi majhna miza, katere koda HTML se za vsako stran spletnega mesta večkrat ponovi. Direktivo vključujejo- to je najbolj naraven način za rešitev te težave, ki razvijalca rešuje pred nočno moro rutine kopiranja HTML -ja v vsako ločeno datoteko. Od direktive vključujejo povezuje datoteke med prevajanjem strani, nato pa je po spremembah v navigacijski vrstici potreben ponovni prevod vseh strani JSP z njeno uporabo. Če se priložene datoteke pogosto spreminjajo, lahko uporabite dejanje jsp: vključi ki povezuje datoteko pri dostopu do strani JSP.

Izjave JSP

Izjave (Izjave) so namenjene opredelitvi spremenljivk in metod v skriptnem jeziku, ki se kasneje uporabijo na strani JSP. Sintaksa izjave izgleda takole:<%! код Java %> oglasi se nahajajo v bloku deklaracij in se kličejo v bloku izrazov strani JSP. Koda v deklaracijskem bloku je običajno napisana v Javi, vendar lahko aplikacijski strežniki uporabljajo sintakso drugih skriptov. oglasi se včasih uporabljajo za dodajanje dodatne funkcionalnosti pri delu z dinamičnimi podatki, pridobljenimi iz lastnosti komponent JavaBeans. Primeri oglasi so predstavljeni v tabeli. Obvestilo lahko vsebuje več vrstic, na primer v spodnji kodi za izračun vrednosti funkcije dejstvo (int n), ki bi morala biti enaka 1, če je n manjše od 2 in n! s pozitivno vrednostjo n;<%! public static int fact (int n) { if (n oglasi ne proizvajajo nobenega izhoda na standardni izhod ven... Spremenljivke in metode, navedene v obvestila so inicializirane in na voljo skriptletjem in drugim oglasi v času inicializacije strani JSP.

Skripti JSP

Skripti vključujejo različne kode, napisane v skriptnem jeziku, opredeljenem v direktivi jezik... Odlomki kode morajo biti v skladu s skladenjskimi konstrukcijami jezika skripte ponavadi skladnja jezika Java. Skripti imajo naslednjo sintakso:<% текст скриптлета %>Ekvivalent sintakse skriptlet za XML je: besedilo skripta
Če je v besedilu skriptlet zaporedje znakov%> je treba uporabiti natančno kot kombinacijo znakov in ne kot oznako - znak za konec skriptlet, namesto zaporedja%> uporabite naslednjo kombinacijo znakov% \>.
Specifikacija JSP ponuja preprost in jasen primer skriptlet ki dinamično spreminja vsebino strani JSP ves dan.<% if (Calendar.getInstance ().get (Calendar.AM_PM) == Calendar.AM) {%>Dobro jutro<% } else { %>Dober večer<% } %>Treba je opozoriti, da je koda v notranjosti skriptlet vstavljeno kot napisano in vse statično besedilo HTML (besedilo predloge) pred ali za njim skriptlet pretvori z operaterjem tiskanje... To pomeni, da skriptletkom ni treba vsebovati dokončanih kosov Java in da lahko puščanje odprtih kosov vpliva na statični HTML zunaj skriptlet. Skripti imajo dostop do istih samodejno definiranih spremenljivk kot izrazi. Zato morate na primer, če je treba na strani prikazati kakršne koli podatke, uporabiti spremenljivko ven. <% String queryData = request.getQueryString (); out.println ("Дополнительные данные запроса: " + queryData); %>

Izrazi JSP

Izraz na strani JSP je izvedljiv izraz, napisan v skriptnem jeziku, navedenem v deklaraciji jezik(kako Pravilo Java). Rezultat izrazi JSP zahtevane vrste Vrvica, poslano na standardni izhod ven z uporabo trenutnega predmeta JspWriter... Če je rezultat izrazi ni mogoče oddati Vrvica, pride do napake pri prevodu, če je bila težava odkrita v fazi prevajanja, ali pride do izjeme ClassCastExceptionče je bila med izvajanjem zahteve ugotovljena nedoslednost. Izraz ima naslednjo skladnjo: & lt% = besedilo izraza%> alternativna sintaksa za izrazi JSP pri uporabi XML: izrazno besediloIzvršni nalog izrazi na strani JSP od leve proti desni. Če izraz se pojavi v več atributih časa izvajanja, nato pa te oznake poteka od leve proti desni. Izraz mora biti popoln izraz v določenem skriptu (običajno Java). Izrazi se izvajajo med izvajanjem protokola HTTP. Vrednost izraza se pretvori v niz in vključi v ustrezno mesto v datoteki JSP. Izrazi se običajno uporabljajo za izračun in prikaz nizov predstavitev spremenljivk in metod, opredeljenih v bloku deklariranja strani JSP ali pridobljenih iz JavaBean, do katerih je dostopen JSP. Naslednja koda izrazi služi za prikaz datuma in časa zahteve za to stran: Trenutni čas: & lt% = nov java.util.Date ()%> Za poenostavitev izrazi obstaja več vnaprej določenih spremenljivk, ki jih lahko uporabite. Najpogosteje uporabljene spremenljivke so:
  • request, HttpServletRequest;
  • odgovor, HttpServletResponse;
  • seja, HttpSession - povezana z zahtevo, če obstaja;
  • ven, PrintWriter - pufrirano različico vrste JspWriter za pošiljanje podatkov odjemalcu.

se mora nujno ujemati z imenom razreda, katerega glavna () metoda se pokliče ob zagonu računalnika Java.

  • Objekt - razred, iz katerega se podeduje vse objekti v Javi, vključno z matrikami in nizi ().
  • Specifikatorji dostopa so posamezni za vsakega člana (določeno pred izjavo).
  • Vsi člani razreda so privzeto odprti za področje uporabe paket... Privzeti obseg je križ med zasebnim in zaščitenim, glej.
  • Vsaka datoteka * .java lahko vsebuje samo en razred razglašen za javen in dostopen od zunaj.
  • Opredelitev in deklaracija razreda sta vedno v eni datoteki, prototipov v glave ni mogoče postaviti.
  • Kazalci manjkajo.
  • Vse spremenljivke razreda so dejansko sklice na objekte, ne na predmete same. Njihovo inicializacijo za uporabo je treba izvesti prek novega<конструктор-класса>(...) .
  • Temelji prejšnji odstavek- pri dodelitvi ene spremenljivke objekta drugi se spremeni le referenca, ne pa tudi kopija predmeta.
  • Spremenljivke v funkciji se posredujejo po vrednosti, če je osnovne vrste(int, byte, long itd ...) ali po sklicu, če so predmeti.
  • Do javnih statičnih članov razreda dostopate prek operaterja dot. , in ne skozi ::, kar po mojem vnaša neko zunanjo zmedo.
  • Destruktorja ni, obstaja pa finalize ().
  • Finalize () ne smemo zamenjati z destruktorjem C ++. se pokliče finalize () samo zbiranje smeti, ki nima nič skupnega z objektom, ki izstopa iz področja uporabe, in z odsotnostjo vsaj enega sklica na ta predmet.
  • Zbiranje smeti je mogoče uveljaviti s klicem metode Runtime.gc () na trenutnem objektu Runtime ali statične metode System.gc (). Sodeč po izvedenih poskusih sprostitev spomina deluje le znotraj navidezni stroj Java in enkrat dodeljeni pomnilnik v OS se ne vrneta, dokler se stroj ne konča.
  • Pri kodiranju v slogu Java funkcije vrnejo izjeme, namesto da vrnejo kodo. sistemski napake ali napake v logiki virtualnega stroja. Zato je treba v bloku try (...) catch (...) (...), ki obravnava izjeme, izvesti veliko funkcij ali pa mora metoda, ki jih pokliče, izrecno navesti skozi izjeme seznam izjem, ki jih te funkcije, ki jih ne obdelujejo, za obdelavo po njihovih metodah v nizu klicev.
  • Izjeme delimo na in.
  • Blok try (...) se lahko konča tudi z blokom final (...), ki se izvede ne glede na prisotnost / odsotnost izjem v prejšnjem bloku try (...). To je priročno uporabiti za izvajanje vseh zahtevanih dejanj, ne glede na rezultate izvajanja bloka kode, na primer za samodejno sprostitev vseh virov, dodeljenih v njem.
  • char ni enobajtni tip kot pri C / C ++, je 16-bitni tip, ki podpira unicode strune.
  • bool je v Javi znan kot boolean.
  • Pogojni konstrukti sprejeti samo logična vrsta spremenljivk ali izrazov. To pomeni, da je koda takšna:
    int a; ... dejanja na spremenljivki a ...; če) (...)
    Ni pravilno v smislu sintakse Java in se ne bo prevedel.
  • Konstante se razglasijo za končne in ne za const.
  • Vsi nizi so predmeti.
  • Tudi konstante niza (tako kot "any string const") so predmeti.
  • Za nize (razred String) je definiran samo en operator - +, združevanje.
  • Primerjavo nizov izvedemo z metodo bool equals () razreda String, na primer s1.equals (s2).
  • Vsebina objektov String je konstantna in ne pomeni spreminjanja posameznega elementa niza, to se naredi zaradi zmogljivosti. Če potrebujete take operacije, lahko uporabite razred StringBuffer.
  • Ko združite neinicializiran niz z nepraznim nizom, dobite null + prazen niz, na primer s + = "| niz"; bo enako "null | niz"
  • Nizki imajo spremenljivo dolžino javnega člana, strune nimajo namesto tega uporabljajo metodo length ().
  • Java ne podpirajo več dedovanja. Nekatere njegove funkcije se izvajajo prek "vmesnikov". Vmesniki podpirajo več izvedb "podedovanja" več vmesnikov v enem razredu in na splošno veliko (vmesnikov) do mnogih (razredov) razmerij 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 stroškov, zato ni zaželeno.
  • Namesto naštevanj lahko uporabite vmesnike brez deklaracij metod. V tem primeru morajo biti vse spremenljivke vmesnika inicializirane, ko je vmesnik definiran, njihove vrednosti pa bodo samodejno konstantne. Po tem jih je mogoče prek priključkov "povezati" z definiranim razredom.
  • Tudi od JDK 5 obstajajo navzven klasična naštevanja - enum. Pravzaprav to ni le seznam imenovanih konstant, ampak poseben razred, podedovan iz nadrazreda Enum. Vsak element naštevanja je predmet tega razreda. Številčno vrednost predmeta naštevanja lahko dobite z vgrajeno funkcijo ordinal.
  • Po meri preobremenitev operaterja znano v C ++, v Javi ne podpira.
  • Za delo v okolju objektov s "primitivnimi tipi" (int, float, char itd ...) uporablja Java autobox / autobox v vrste ovojev (Integer, Float, Character itd ...). Pravzaprav je to izvedba preobremenitve operaterja za več vgrajenih razredov, ki izvajajo funkcionalnost primitivnih tipov + metod objektov.
  • super - ključna beseda, ki omogoča klic konstruktorja nadrazreda iz podrazreda ali sklicevanje na člana nadrazreda, ki ga skrije član podrazreda.
    • Ko se uporablja kot konstruktor - super vedno mora biti prvi operator v konstruktorju podrazreda.
  • Za določitev abstraktno metode, se uporablja abstraktna ključna beseda, razred, ki vsebuje abstraktno metodo, je treba opredeliti tudi kot abstraktni razred ....
  • dokončno prepoveduje prevladujoče metode v razredih otrok. Za "kratke" metode, ki so razglašene za dokončne, ima ta ključna beseda enak učinek kot inline v C ++ - v podrazredih, namesto da kliče funkcijo. lahko v kodo metode klicnega razreda je vstavil bajtkodo metode superklasa.
  • 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 import, lahko uporabite tudi uvoz static ..(*|) za uvoz statičnih članov razreda.
  • Java podpira niti prek vgrajenega razreda Thread in vmesnika Runable. Za sinhronizacijo uporabite sinhronizirani podajalnik pred metodo v opisu razreda ali sinhronizirano ( ) (...) za niz kode, sinhroniziran z ... Za signale med sinhroniziranimi nitmi se uporabljajo metode nadrejenega razreda Object: wait () / notify () / notifyAll ().
  • prehodni - modifikator, ki označuje, da vrednosti predmeta / spremenljivke ni treba "držati" pri shranjevanju predmeta, na primer pri serializaciji pred zapisom na disk / bazo podatkov. Logično je označiti spremenljivke, ki vsebujejo edinstvene identifikatorje runtime in druge podobne informacije, ki so smiselne le v trenutnem primeru procesa java.
  • instanceof - čas izvajanja, vračila pravče obstaja povezava do razreda , ali pa se lahko drugače sklicuje na sklic na ta razred napačno.
  • assert - Trditve Java se uporabljajo na enak način kot v C: assert [: Opis napake trditve], vendar imeti v mislih da so "vdelani" v prevedeno bajtko in jih je mogoče vključiti v teče java-ea.
  • this (...) - se lahko uporablja znotraj konstruktorja razreda za klic drugega konstruktorja istega razreda, ki ustreza podpisu argumentov.
  • Namesto predloge so uporabljeni posploševanja, izgleda zelo podobno: razred CLASS_NAME (...). V posplošitvah prepovedano je uporaba primitivno vrste ( int, byte, char itd ...). Parametre je mogoče uporabiti samo razredi.
    Poleg tega podprto omejene vrste z podajanjem nadrazreda za razrede parametrov. Na primer razglasitev razreda "generični razred" za CLASS_NAME v katerem so dovoljeni samo razredi potomcev splošnega številskega razreda Številka.
  • Za hitro kopiranje nizov je priročno uporabiti System.arraycopy ().
  • Stanislav Gornakov

    Če želite govoriti in brati kateri koli tuji jezik, se morate naučiti abecede in slovnice tega jezika. Podoben pogoj opazimo pri preučevanju 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 težavo, ki se vam pojavi, v kakršni koli obliki, ki vam ustreza.

    Ustvarimo določen razred, ki je na primer odgovoren za telefon, ki bo imel samo dve metodi: vklop in izklop telefona. Ker zdaj ne poznamo skladnje jezika Java, bomo razred Telefon napisali v abstraktnem jeziku.

    Razredni telefon (metoda Enable () (// operacije za vklop telefona) Metoda Turn off () (// operacije za izklop telefona))

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

    Zdaj pa napišemo isti razred samo v Javi.

    Razred Telefon (void on () (// telo metode on ()) void off () (// telo metode off ()))

    Ključna beseda class v jeziku Java razglaša razred, ki mu sledi ime samega razreda. V našem primeru je to telefon. Nekaj ​​besed o registru zapisa. V skoraj vseh programskih jezikih je pomembno, da se imena hranijo v registru, v katerem so nastala. Če ste napisali Telefon, bo že takšen črkovanje, kot je telefon ali TELefoN, pri sestavi napako. Tako kot je bilo sprva napisano, je zato treba pisati naprej.

    Rezervirane ali ključne besede so zapisane v njihovem posebnem primeru in jih ne morete uporabiti tako, da jim poimenujete metode, razrede, predmete itd. Razmiki med besedami niso pomembni, saj jih prevajalnik preprosto prezre, vendar so pomembni za berljivost kode.

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

    Obe metodi imata oklepaja (), v katerega je mogoče zapisati parametre, na primer on (int time) ali on (int time, int time1). S pomočjo parametrov obstaja nekakšna povezava med metodami in zunanjim svetom. Metoda on (int time) naj bi imela časovni parameter. Za kaj je to? Na primer, želite, da se telefon vklopi ob določenem času. Nato se v telo metode posreduje celoštevilska vrednost v časovnem parametru in na podlagi prejetih podatkov se telefon vklopi. Če so oklepaji prazni, potem metoda ne sprejema parametrov.

    Komentarji (1)

    V razredu Telefon imajo telesa obeh metod vnos po dveh poševnicah: //. Tak vnos označuje komentarje, ki jih prevajalnik ne bo upošteval, vendar so potrebni za berljivost kode. Več informacij, ki jih komentirate med pisanjem programa, več možnosti boste imeli, da se v enem letu spomnite, na čem ste delali ves ta čas.

    Komentarji v Javi so lahko treh vrst: //, / *… * / in / **… * /. Komentarji, napisani z operaterjem //, morajo biti v eni vrstici:

    // Ena vrstica !!! Napaka! Ne morete se premakniti v drugo vrstico! // Prva vrstica // Druga vrstica //… // Zadnja vrstica

    Komentarji z operaterji / * ... * / lahko obsegajo več vrstic. Na začetku komentarja vnesite / *, na koncu pa ko komentirajte kodo, vnesite operator * /. Zadnja vrsta komentarja / ** ... * / se uporablja pri dokumentiranju kode in se lahko nahaja tudi v poljubnem številu vrstic.

    Podatkovne vrste Java

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

    Bajt - majhna cela vrednost od –128 do 128;
    short - kratka cela vrednost v območju od –32768 do 32767;
    int - vsebuje poljubno celo število od –2147483648 do 2147483647;
    long je zelo velika celoštevilska vrednost, od –922337203685475808 do 9223372036854775807;
    char je znakovna konstanta Unicode. Obseg te oblike je od 0 do 65536, kar je enako 256 znakov. Vsak znak te vrste mora biti zapisan v enojnih narekovajih, na primer: 'G';
    boolean je 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 to verjetno res, če pa ne, potem napačno. Tako, če je denar, gremo v trgovino po kruh ali pivo (podčrtaj potrebno), če ni denarja, ostanemo doma. To pomeni, da je takšna logična vrednost, ki prispeva k izbiri nadaljnjih dejanj vašega programa.

    Za razglasitev neke zahtevane vrednosti se uporabi naslednji vnos:

    Int time; dolg BigTime; beseda char;

    Operater podpičje je potreben po vnosih in se nahaja na koncu vrstice. Združite 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 on () in off (), dodali bomo nove metode, ki lahko resnično rešijo določene težave.

    Razred Telefon (// S - območje prikaza // w - širina zaslona // h - višina prikaza int w, h, S; // metoda, ki izračuna območje prikaza void Area () (S = w * h;))

    Torej imamo tri spremenljivke S, w in h, ki so odgovorne za površino, širino in višino prikaza v pikslih. Metoda Area () izračuna površino zaslona telefona v slikovnih pikah. Operacija je neuporabna, vendar zelo okvirna in enostavna za razumevanje. Telo metode Area () se je pridobilo in ima obliko S = w * h. Pri tej metodi preprosto pomnožimo širino z višino in rezultat dodelimo ali, kot pravijo, shranimo v spremenljivko S. Ta spremenljivka bo vsebovala vrednosti območja prikaza tega telefona. Zdaj se približujemo operaterjem jezika Java, s katerimi lahko izvajate vse vrste operacij in o katerih bomo govorili v naslednjem delu te serije člankov.


    Namen, funkcije in prednosti Eclipse

    Eclipse je razširljivo IDE (integrirano razvojno okolje). IDE je priročno organiziran nabor orodij, potrebnih za delo pri projektu programske opreme.

    Eclipse je univerzalna platforma, ki jo je mogoče uporabiti za razvoj aplikacij v katerem koli programskem jeziku (na primer, po namestitvi povezave Pydev () lahko uporabite Python, vendar je Java izvorna za Eclipse (ki je, mimogrede, napisana v Eclipse) .

    Najpomembnejše lastnosti programa Eclipse so:

    1. Na več platformah. Eclipse deluje na vseh običajnih platformah: Windows, Linux in MacOS X. Še pomembneje je, da je njegova funkcionalnost enaka na vsaki od teh platform.
    2. Vsestranskost in razširljivost. Eclipse lahko uporablja različna orodja drugih proizvajalcev.
    3. Odprtost in neoporečnost. Eclipse je projekt OpenSource (tj izvorne kode na voljo vsem in vsak se lahko pridruži razvoju tega orodja). Eclipse ima aktivno skupnost, ki si nenehno prizadeva izboljšati program in razširiti svoje zmogljivosti.

    Delovni prostor Eclipse

    Prva stvar, ki jo vidite, ko zaženete Eclipse, je pogovorno okno, v katerem lahko izberete, kje bo delovni prostor. Delovni prostor je imenik, kamor bo shranjeno vaše delo.

    Ko izberete delovni prostor, se na zaslonu prikaže začetna stran s predlogi za ogled vadnic, primerov itd. Izberite Workbench in preusmerjeni boste v okno delovno okolje (Delovno mizo), v katerem bo potekalo vaše nadaljnje delo.

    Glavne komponente delovnega prostora so pogledi, uredniki in perspektive.

    Izvedba Je majhen odsek v delovnem prostoru, ki se uporablja za krmarjenje po določeni kategoriji predmetov (na primer viri ali paketi), odpiranje urejevalnikov in prikaz lastnosti aktivnih urejevalnikov. Pogled Navigator na primer prikazuje projekte in druge vire, medtem ko pogled zaznamkov prikazuje vse zaznamke v delovni mizi skupaj z imeni datotek, s katerimi so povezani ti zaznamki. Slika prikazuje zgornji desni kot delovnega prostora z aktivnim pogledom Outline.

    Vse spremembe pogledov se takoj shranijo.

    Druga vrsta vizualnih komponent Workbench - uredniki, ki se uporabljajo za ogled in urejanje nekaterih virov (na primer programske kode). Ko izberete vir, se prikaže ustrezen urejevalnik. Na primer, odprite kateri koli besedilni dokument (s pripono .txt) z ukazom Datoteka -> Odpri datoteko ... in videli boste vgrajen urejevalnik navadnega besedila. Če v ta urejevalnik vnesete nekaj, se na zavihku, kjer je zapisano ime datoteke, prikaže zvezdica. To pomeni, da urejevalnik vsebuje neshranjene spremembe. Shranjeni bodo, če pritisnete Ctrl + S ali izberete ukaz Datoteka -> Shrani.

    V okno delovnega prostora lahko dodate veliko uporabnih pogledov z ukazom Window -> Show View. Namesto da bi jih dodajali enega za drugim, je bolj priročno spremeniti perspektivo. Projekcija(oz perspektivo) Je zbirka pogledov in urednikov, posebej prilagojenih za izvajanje naloge. Po zagonu v programu Eclipse se odpre perspektiva Java, konfigurirana za dejansko pisanje programa. Projekcija Debug se pogosto uporablja za odpravljanje napak v programu. Projekcijo lahko preklopite z ukazom Okno -> Odpri perspektivo. Ime trenutne projekcije je prikazano v zgornjem desnem kotu delovnega okolja (glej sliko).

    Prvi program Java

    Preden začnete s programiranjem, morate ustvariti projekt, v katerem bo Eclipse shranil vse vire, povezane z vašim programom.

    Če želite ustvariti projekt, zaženite ukaz Datoteka -> Novo -> Projekt. V oknu, ki se prikaže, izberite Java Project in kliknite Naprej. Navedite ime svojega projekta. Upoštevajte, da bo v imeniku, ki ste ga določili kot delovni prostor, ustvarjena mapa z imenom vašega projekta (razen če seveda v tem oknu ne spremenite nastavitev, kar ne bomo storili prvič). Kliknite gumb Dokončaj.

    Vaš projekt je zdaj prisoten v pogledu PackageExplorer na levi strani delovnega prostora. Kadar koli ga lahko izbrišete s klikom na njegovo ime desni klik miško in izberite Izbriši. Po tem se bo Eclipse vprašal, ali naj hkrati uniči mapo s projektnimi datotekami (po potrebi jo lahko tudi uničite).

    Če niste izbrisali projekta, mu lahko z ukazi kontekstnega menija dodate datoteke in mape Novo -> Datoteka in Novo -> Mapa oz. Če je projekt velik, potem potrebuje ugnezdeno strukturo map. Toda v primeru projekta Java so stvari nekoliko drugačne. Bistvo je, da so fragmenti Java programa združeni v paketov in za vsak paket se ustvari ločena mapa. Paket se ustvari z ukazom Novo -> Paket. Za paket morate izmisliti tudi ime. Posledično bo v mapi projekta ustvarjena nova mapa s tem imenom. Lahko preverite.

    Morda boste lažje brskali po virih projekta s pogledom Navigator. Odprite ga z Window -> Show View ukaz. Videli boste, da je poleg imenikov projektov in paketov Eclipse ustvaril še dve pomožni datoteki, .classpath in .project. V uredniku jih je mogoče enostavno odpreti, vendar nas zdaj ne zanimajo posebej.

    Program Java je vedno sestavljen iz enega ali več razredov... Razred lahko ustvarite z ukazom Novo -> Razred v kontekstni meni Pogledi navigatorja (ali Raziskovalec paketov, ni pomembno). Pri ustvarjanju razreda morate izbrati paket, ki mu bo pripadal (izberite paket, ki ste ga pravkar ustvarili), in zanj izmisliti ime. Običajna praksa je, da se imena razredov začnejo z veliko črko. Če ne upoštevate tega pravila dobre forme, bo Eclipse izdal opozorilo, vendar se ne bo zgodilo nič slabega.

    Za naše namene je koristno potrditi polje pod "Kakšne metode želite ustvariti v svojem razredu?" nasprotna možnost javna statična void main (nizov)... Posledično bo metoda (funkcija) main () ustvarjena v telesu razreda. Java zahteva, da ima vsaj eden od razredov programa metodo s takšno glavo. On bo tisti, ki bo izveden na začetku programa.

    Kot rezultat naših dejanj bo v mapi paketa ustvarjena datoteka z imenom našega razreda in razširitvijo .java. Eclipse bo odprl urejevalnik kod, ki prikazuje vsebino te datoteke. To bo nekaj takega (imena paketov in razredov se seveda lahko razlikujejo):

    paket mainPack; javni razred MyClass ( / ** * @param args * / public static void main (String args) ())

    Ukazi, ki sestavljajo telo funkcije, se lahko napišejo namesto samodejno ustvarjenega komentarja // TODO Samodejno ustvarjena metoda škrbina... Napisali bomo samo en ukaz, ki bo natisnil klasično vrstico »Pozdravljeni, svet!« Na zaslon:

    System.out.println ("Pozdravljeni, svet!");

    Še vedno je treba zagnati program. Če želite to narediti, izvedite ukaz Zaženi -> Zaženi in poiščite pogovorno okno z nespremenljivimi nastavitvami zagona. Na levi strani tega okna izberite aplikacijo Java ( Java aplikacija). Po kratkem premisleku bo Eclipse naš razred našel z metodo main () in ponudil, da se program zažene iz njega (na desni strani okna, na zavihku Main, bi morala biti prikazana imena našega projekta in našega razreda). Poleg tega je programerju na voljo še nekaj zavihkov. Na primer, na drugem od njih - Argumenti - boste morali vnesti parametre ukazne vrstice (če je program zasnovan tako, da se pokliče iz ukazne vrstice s parametri). Za naš preprost program vam ni treba določiti ničesar drugega. Samo kliknite gumb Zaženi.

    Kot rezultat dela programa se podatki oddajo na tako imenovano konzolo. V operacijskem sistemu MS DOS je celoten zaslon monitorja služil kot konzola. Eclipse nam odpre pogled konzole, v katerem (če je vse opravljeno pravilno) vrstica "Pozdravljeni, svet!" je rezultat našega programa.

    Zdaj, če želite znova zagnati program (na primer, če smo se odločili, da ga nekaj spremenimo ali ga moramo prikazati učitelju), lahko greste na lažji način -izvedite ukaz Zaženi -> Zaženi nazadnje zagnan (zaženite znova uporabite prejšnjo aplikacijo) ali samo pritisnite Ctrl + F11.

    Osnove sintakse Java

    Opredelitve pojmov

    Operand je vrednost, vključena v operacijo.

    Metoda (funkcija) je del programa, ki ima svoje ime. To ime je mogoče uporabiti kot ukaz v programu (tak ukaz se imenuje klic metode). Ko se pokliče metoda, se izvedejo ukazi, iz katerih je sestavljena. Metoda, podobna operaciji, lahko vrne vrednost rezultata.

    Izraz je zaporedje operacij in klicev metod, izvedenih v določenem vrstnem redu (po prioriteti operacij ob upoštevanju oklepajev), ki daje določeno vrednost med izračunom.

    Spremenljivka je imenovano področje računalniškega pomnilnika, v katerem lahko program shrani podatke določene vrste (t.i spremenljiva vrednost) in dostopajte do teh podatkov z imenom spremenljivke.

    Koncepti programa in algoritma (ponavljanje)

    Imenovanje poljubno računalniški program- pretvorba vhodnih podatkov v izhodne podatke. Programski algoritem določa, kako se vhodni podatki pretvorijo v izhodne podatke.


    Vhodni podatki lahko prihajajo iz različnih virov. V izobraževalnih projektih se ti podatki najpogosteje vnesejo med izvajanjem programa s tipkovnico in miško. V resničnih programih jih je mogoče dobiti tudi iz datotek, baz podatkov, omrežij, neposredno iz različnih senzorjev itd.

    Izhodni podatki (rezultat dela programa) so najpogosteje prikazani na zaslonu, lahko pa jih tudi shranimo v datoteko ali bazo podatkov, ki jih pošljemo v omrežje. Vgrajeni programi generirajo posebna zaporedja izhodov kot izhod, ki povzročijo, da naprava, s katero je program povezan, izvede neko dejanje.

    Začetek pisanja programa MORATE TAKOJ RAZUMETI:

    1. Čemu sploh služi ta program (kaj na splošno počne)?
    2. Kakšne vhodne podatke ima ta program (in od kod prihaja)?
    3. Kaj je rezultat tega programa (in kam ga poslati)?
    4. Kako naj se vhod pretvori v izhod (algoritem)? To je najtežji del razmišljanja programerja, čeprav na tri prejšnja vprašanja ni odgovora, ga nima smisla začeti.

    Pri pisanju preprostega programa morate:

    1. Pridobite vnos.
    2. Izvedite algoritem za pretvorbo vhodnih podatkov v izhode.
    3. Oddajte rezultat dela programa (izhodni podatki): prikažite ga, pošljite po omrežju itd.

    Pri delu s kompleksnimi projekti programske opreme je treba opraviti podrobno analizo zahtev za program (ki lahko zahteva veliko komunikacije s stranko), izvesti oblikovanje (določiti, iz katerih delov bo program sestavljen, kako bodo ti deli medsebojno povezani, prikazali različne vidike strukture in obnašanja programa v obliki diagramov itd.). Vsekakor pa začnite programirati, ne da bi razumeli vhodne in izhodne podatke ter na splošno ne razumete bistva algoritma nesmiselno... Razmislite vsaj na splošno o bistvu algoritma, ne da bi poznali vhodne in izhodne podatke nemogoče.

    Zato vaje vedno začnite z opredelitvijo vhodov in izhodov. Če imate v zvezi s tem težave, se obrnite na učitelja.

    Literatura na to temo:

    Osnovne konstrukcije algoritmov (ponavljanje)

    Pozor! Na tej stopnji usposabljanja bi morali že imeti znanje o tej temi.Če jih ni in so materiali za ponovitev nerazumljivi ali nezadostni, se ne boste spopadli z nalogami! Nujno se je treba posvetovati z literaturo na to temo.

    Torej je algoritem zaporedje dejanj za pretvorbo vhodnih podatkov v izhodne podatke.

    Algoritem lahko zapišemo na tri glavne načine:

    Posamezni koraki algoritma (ne glede na to, kako je napisan) so med seboj povezani s tremi standardnimi konstrukti, ki se izvajajo v absolutno vseh programskih jezikih:

      Zaporedna izvedba. Koraki se izvajajo drug za drugim.

      Podružnice. Odvisno od izpolnjevanja določenega pogoja (v obravnavanem primeru je x> y?) Se izvede ena ali druga veja programa.

      Kolesa. Zaporedje korakov programa se izvede večkrat. Dejansko zanka temelji na razvejanju (preverjen je pogoj za izhod iz zanke), če pa ta pogoj ni izpolnjen, se nadzor prenese na začetek zanke (nazaj na že dokončan korak).

    Razmislite o težavi: prikažite vsa parna števila, manjša od 10. Za to težavo lahko uporabite algoritem, ki temelji na zaporednih korakih, in algoritem, ki uporablja zanko. Diagrami za obe možnosti so prikazani na sliki:

    Prvi diagram je jasnejši, toda v primeru, ko je treba prikazati ne 5 številk, ampak 100, se bo diagram (in program, ki ustreza temu algoritmu) povečal 20 -krat, v programu, ki ustreza drugemu algoritmu, pa le eno mesto se bo spremenilo: 10 se bo spremenilo v 100 Zato so ponavljajoča se dejanja zasnovana v obliki ciklov, čeprav se jim v mnogih primerih ni mogoče izogniti.

    Ne pozabite: algoritem mora biti zgrajen samo iz treh imenovanih konstruktov!

    Literatura na to temo:

    1. Šolski učbenik za računalništvo.

    Osnove osnove sintakse Java

    1. Jezik Java razlikuje velike in male črke. To pomeni, da morajo biti imena vseh funkcij in ključnih besed zapisana tako, kot so prikazana v primerih in referenčnih knjigah.
    2. Vsak ukaz (operator) v jeziku Java se mora končati s podpičjem.
    3. Program Java je sestavljen iz enega ali več razredov... Absolutno je treba vnesti celoten funkcionalni del programa (tj. Kaj počne) metode določene razrede. (Razred in metoda, kot objektno usmerjen programski koncept, bosta obravnavana v lekciji 3. Prav tako bo obravnavana sintaksa razreda. V prvih vajah uporabite razrede, ki jih Eclipse privzeto ustvari.)
    4. Razredi so združeni v pakete.
    5. Vsaj eden od razredov mora imeti metodo main (), popolnoma enako kot v primeru, ki smo ga obravnavali. (Sprva ni treba razumeti ali si zapomniti pravilnega črkovanja te metode - Eclipse bo vse ustvaril sam, če potrdite potrebno polje.) Ta metoda se bo najprej izvedla.

    V najpreprostejšem primeru je lahko program sestavljen iz enega (ali celo nobenega) paketa, enega razreda v paketu in ene same metode main () v razredu. Ukazi programa bodo zapisani med vrsticami

    javna statična void main (String args) (

    in zaključni zavit oklepaj), ki označuje konec telesa metode. Temu pristopu je treba slediti pri izvajanju najpreprostejših vaj.

    Komentarji (1)

    Komentarji so pojasnjevalne oznake, ki jih programerji uporabljajo za izboljšanje razumljivosti kode. Pri sestavljanju programa se komentarji ne upoštevajo, zato je vanje mogoče zapisati karkoli. Glavna stvar je pokazati, da je ta napis komentar in ga ne smemo razlagati kot ukaze programa. V Javi se to izvede na enega od naslednjih načinov:

    1. Dve poševnici naprej // sta vstavljeni. Od zdaj do konca vrstice lahko pišete kar želite - Java bo to obravnavala kot komentar.
    2. Na začetku komentarja so znaki / *, na koncu pa * /. V tem primeru lahko komentar obsega poljubno število vrstic.
    3. Poudarite komentarji za dokumentacijo ki so postavljeni med označevalce / ** in * /. O njihovi uporabi bomo govorili kasneje.

    Dobesedna pravila pisanja

    o različnih oblikah pisanja literalov

    Cela števila (celoštevilske črke) v Javi je mogoče zapisati na običajen način v decimalni obliki: 12345, +4, -11.

    Poleg tega lahko napišete cela števila v oktalni obliki, začenši od nič (0777, -056) in v šestnajstiški obliki, začenši od nič in latinične črke x (0xFFFF, 0x14, 0xA1BC).

    Veljavne črke so zapisane v decimalnem zapisu, celoštevilčni del je ločen od decimalne vejice.

    Lahko se zapiše resnično število plavajoča vejica, na primer: 5.4e19, 17E -11, -123e + 4. Del številke pred črko e se imenuje mantisa, del, ki sledi za črko e, pa vrstni red. Zapis pomeni naslednje: dvigniti morate 10 na moč reda in pomnožiti z mantiso. Včasih je dejansko bolj priročno napisati 1e-9 kot 0,000000001.

    Posamezni znaki so zapisani z apostrofami, na primer "a", "D", "@".

    Obstaja nekaj posebnih in kontrolnih znakov, ki so napisani s posebnim zaporedjem izhodov. Najpogostejši so navedeni v tabeli:

    Zaporedje pobega je zaprto tudi v apostrofah.

    Prva vrstica tabele pravi, da lahko kateri koli znak podate s svojo kodo (z decimalnim kodiranjem od 0 do 255) tako, da to kodo napišete v oktalnem številčnem sistemu. Na primer, črka "g" v kodiranju CP1251 bo zapisana z zaporedjem izklopa "\ 346"

    Če je potrebno, lahko podate kodo katerega koli znaka v Kodiranje Unicode- za poševnico in latinično črko u - v štirih šestnajstiških znakih. Na primer, "\ u0055" je črka U.

    Niz znakov je zaprt med narekovaji. Začetni in zaključni narekovaji morajo biti v isti vrstici kode.

    Pri nizih je definirana operacija združevanja +, ki omogoča zbiranje več nizov v enega ("pripisovanje" drug drugemu).

    Če je konstanta niza predolga in je v njej slabo berljiva programsko kodo ko ga pišete v eno vrstico, ga lahko zapišete v več vrstic in jih združite s pomočjo operacije združevanja nizov. Na primer:

    "To je zelo dolga konstanta niza" + "na dveh vrsticah vira"

    Kontrolni znaki in kode so zapisani v nizu na popolnoma enak način poševnica(vendar brez apostrofov).

    Logične črke so resnične in napačne.

    Identifikatorji

    o pravilih dobrega sloga

    Pri programiranju se nenehno pojavljajo identifikatorji za poimenovanje predmetov.

    Identifikator je lahko sestavljen iz črk, številk, podčrtaja _ in znaka dolarja $ (slednje ni priporočljivo, Java ga uporablja za lastne potrebe). Identifikator se ne more začeti s števko. Ključne besede Java (niti literal pravilno napačno in nič).

    Kot je navedeno zgoraj, jezik Java razlikuje med preprostimi in malimi črkami... To pomeni, da so myAge, myage in MyAge imena popolnoma različnih predmetov. Bodite previdni: napaka v registru je zelo pogost primer!

    Imena razredov se začnejo z veliko črko; če je ime sestavljeno iz več besed, se vsaka beseda začne z veliko črko. Na primer: MyClass, Book.

    Imena metod in spremenljivk se začnejo z malimi črkami (majhne črke); če ime vsebuje več besed, se vsaka naslednja beseda začne z veliko začetnico. Na primer myVar, x, y, newBigCounter.

    Stalna imena so napisana v celoti Velike črke; če ime vsebuje več besed, je med njimi podčrtaj. Na primer PI, COUNT_OF_MONTHS.

    Uporaba teh smernic ima številne prednosti. Eden od njih je, da boste pri uporabi standarda natančno vedeli, kako postaviti velike in male črke Knjižnice Java, katerih razvijalci so se držali priporočil.

    Vrste podatkov

    o vrstah podatkov Java

    Vrsta int se najpogosteje uporablja za shranjevanje celih števil v Javi.

    Na splošno v jeziku Java obstajajo štiri vrste celih števil: byte, short, int, long. Razlikujejo se po količini pomnilnika, ki bo dodeljen spremenljivki, in temu primerno tudi po obsegu vrednosti, ki jih je mogoče shraniti v to spremenljivko. Najpogosteje uporabljen tip int zaseda 4 bajte v pomnilniku in je primeren za shranjevanje številk od -2147483648 do 2147483647. Tip bajtov porabi najmanj pomnilnika in je primeren za delo z majhnimi številkami (od -128 do 127). Kratka in dolga vrsta sta 2 in 8 bajtov.

    Dvojni tip je primeren za realna števila.

    Realne (realne) številke (ali številke s plavajočo vejico) predstavljajo dve vrsti: plavajoča in dvojna. Float tip zavzame 4 bajte pomnilnika in ne zagotavlja visoke stopnje natančnosti pri ravnanju z zelo velikimi ali zelo majhnimi številkami. Priporočljivo je, da ga uporabite, ko je potreben delni del, vendar visoka natančnost ni potrebna (na primer za merjenje razdalj v metrih, vendar ob upoštevanju centimetrov in milimetrov ali merjenje cen v rubljih, ob upoštevanju kopejk). Če so potrebni natančnejši izračuni, je priporočljivo, da delujete z vrednostmi dvojnega tipa (na primer taka spremenljivka lahko shrani vrednost sinusa kota).

    Veljavne črke, kot so 5.3, 8.0, 2e-3, Java obravnava kot dvojne. Če jih želimo v programu uporabljati kot plavajoče, se morajo končati s črko f: 5.3f, 8.0f, 2e-3f.

    Vrsta char se uporablja za shranjevanje posameznih znakov. Java meni, da gre za nekakšno celoštevilsko vrsto (saj je vsak znak določen s svojo kodo Unicode), zato vse operacije števila veljajo za char.

    Logične vrednosti (resnične ali napačne) so predstavljene z logičnim tipom.

    Tako Java opredeljuje osem preprostih tipov, katerih značilnosti so predstavljene v miza:

    Razglasitev spremenljivk

    V Javi (kot v mnogih drugih jezikih) jo morate opisati, preden jo uporabite. Če želite opisati spremenljivko, ji dajte ime in določite njeno vrsto.

    Pri razglasitvi spremenljivke se najprej navede vrsta (ki je lahko ena od preprostih vrst, ime razreda ali vmesnika), nato ime spremenljivke. Če je potrebna spremenljivka inicializirati(dodeli začetno vrednost), je začetna vrednost podana za imenom skozi znak enakosti. Več več spremenljivk iste vrste je mogoče razglasiti ločenih z vejicami.

    Primeri deklaracij spremenljivk:

    int x; // Razglasimo celoštevilsko spremenljivko x dvojni a, b; // Izjava dveh resničnih spremenljivk a in bčrka char = "Z"; // Razglasi črko spremenljivke znakov, inicializirano z začetno vrednostjo "Z" logična vrednost b1 = true, b2, b3 = false; // Razglasimo tri logične spremenljivke, prva od njih bo resnična, zadnja bo napačna

    Osnovne jezikovne operacije

    Spremenljivke in pri njih lahko sodelujejo (iz njih pa se lahko gradijo zapletene). Razmislimo o najpreprostejših operacijah jezika Java.

    Matematične operacije

    Primerjalne operacije, rezultat je logična vrednost: true ali false

    Logične operacije

    o operacijah Java

    && in || se razlikujejo po tem, da vrednost drugega ni nujno izračunana. && na primer ovrednoti vrednost prvega operanda in, če je napačno, takoj vrne false, medtem ko || takoj vrne true, če vidi, da je prvi operand res. Java ima podobne operacije & in | , ocenijo vrednosti obeh operandov, preden izvedejo operacijo na njih.

    Premične operacije

    (delo z bitno predstavitvijo prvega operanda)

    Bitne operacije

    (delo z bitno predstavitvijo operandov)

    Operacija?:

    Operacija?: Trojni, torej ima tri operande. Prvi operand je pogoj, logični izraz. Drugi in tretji operand sta izraza katere koli druge vrste. Operacija deluje na naslednji način: če je pogoj resničen, kot rezultat vrne svoj drugi operand, in če je napačen, potem tretji.

    Na primer izraz (5> 3)? 7 + 1: 2 * 2 bo imelo vrednost 8, toda izraz (5 == 3)? 7 + 1: 2 * 2 - vrednost 4. Ta zapis ni videti zelo opisno, vendar ga programerji pogosto uporabljajo za skrajšanje kode. Namesto zaporedja ukazov:

    če (x> 0) y = 45 + a * 2; // če spodaj razpravljamo o izjavi sicer y = 45 - b * 3;

    lahko napišete:

    Y = 45 + ((x> 0)? A * 2: -b * 3);

    Operater dodelitve

    Ko je spremenljivka opisana, lahko z njo delate v programu. Zlasti mu lahko dodelimo vrednost ustrezne vrste. Nato se bo v prihodnosti pri uporabi te spremenljivke v katerem koli izrazu ta trenutna vrednost samodejno nadomestila z njo.

    Vrednost je z dodelitvijo povezana s spremenljivko. V Javi je napisano s preprostim znakom enakosti:

    Spremenljivka = izraz;

    Levo od operatorja dodelitve je vedno spremenljivka. na desni se mora po vrsti ujemati s spremenljivko. Lahko je preprosto (na primer številka ali simbol):

    X = 7; // spremenljivki x je dodeljena vrednost 7črka = "Q"; // črka je nastavljena na "Q"

    Na splošno je izraz nekaj, kar je mogoče izračunati (na primer rezultat matematične operacije ali rezultat, ki ga vrne neka metoda):

    A = 7,5 + 2,4; // spremenljivki a je kot rezultat dodeljenih 9,9

    Poleg črk lahko v izrazu sodelujejo tudi druge spremenljivke. Njihova trenutna vrednost se nadomesti z njimi. Kot rezultat ukaza:

    B = a + 1;

    spremenljivka b bo nastavljena na 10.9.

    Torej operater dodelitve deluje na naslednji način. Najprej se izračuna vrednost izraza na desni strani, nato pa se rezultat dodeli spremenljivki, podani na levi strani. Možna je celo naslednja situacija:

    X = x + 4;

    Ta ukaz poveča trenutno vrednost celoštevilske spremenljivke x za 4.

    Naslednji ukazi so napisani napačno in ne bodo delovali:

    5 = x + 7; // na levi strani mora biti spremenljivka x + 3 = 14; // na levi bi morala biti samo ena spremenljivka x = 4,5; // spremenljivka x lahko sprejme samo celoštevilčne vrednosti

    Eclipse bo pred izvajanjem programa poskušal označiti napako v teh vrsticah tako, da bo na robu urejevalnika kod postavil opozorilne znake. Lahko vidite, kako mu to uspe.

    o tip litju

    Ko je spremenljivki enega tipa dodeljena vrednost drugega tipa, se ta uporabi ulivanje (pretvorba) vrst... Za številske vrste (byte, short, int, long, float, double, char) se to zgodi samodejno, če lahko vrsta spremenljivke, ki se spreminja, "prilagodi" vrednost druge vrste.

    Če je na primer spremenljivki tipa int dodeljena vrednost tip bajta, bo samodejno prišlo do pretvorbe iz tipa bajta v tip int. Podobno je mogoče plavajoči tip uvrstiti v dvojni tip itd.

    Če poskusite spremenljivki manj natančnega tipa (na primer bajt) dodeliti vrednost natančnejšega tipa (na primer int), bo prevajalnik ustvaril sporočilo o napaki.

    Za tip vlivanja lahko uporabite operater igralske zasedbe- pred izrazom, za katerega želimo izvesti pretvorbo tipa, so v oklepajih postavljeni oklepaji z vrsto, v katero se izvede pretvorba. Pri vlivanju celovitega tipa z večjo natančnostjo v niz z nizko natančnostjo se lahko modularna delitev izvede z dovoljenim obsegom vrste, na katero se izvaja vlivanje, pri ulivanju dvojnega izraza na plavajoči izraz pa bo natančnost izraza zmanjšati.

    dolg j = (dolg) 1,0; // uporabimo operater vlivanja za long, j = 1 char ch = (char) 1001; // z uporabo operaterja za vlivanje char, ch = "d" bajt b2 = (bajt) (100); // uporabite operator za oddajanje od int do bajta, b2 = 100 bajt b3 = (bajt) (100 * 2); // Pozor! pride do modularne delitve, b3 = -56

    Napaka pri neusklajenosti vrst se pogosto pojavlja pri veljavnih literalih. Naloge na primer ne morete izvesti a = 7,5 + 2,4; če je spremenljivka a tipa float, se šteje, da sta literala 7.5 in 2.4 tipa double. Da bi se izognili napaki, morate uporabiti tipkanje:

    A = (plavajoče) (7,5 + 2,4);

    ali označiti, da so tudi literalne vrednosti plavajoče:

    A = 7,5f + 2,4f; // to je tudi veljaven ukaz

    Skoraj vsaka binarna operacija ima svoj operater dodeljevanja. Na primer, za operacijo seštevanja + obstaja operater unarnega dodeljevanja + =, ki poveča vrednost operanda za dano količino:

    X + = 8; // enako kot x = x + 8 (x se poveča za 8)

    Podobno za druge operacije: operatorji * =, - =, / =,% =, & = ^ = itd.

    X * = 3; // enako kot x = x * 3 (x se poveča za 3 -krat) b1 ^ = b2; // enako kot b1 = b1 ^ b2

    Vaja 1

    Razglasite dve spremenljivki celega števila in jim dodelite poljubne vrednosti. Natisnite njihovo vsoto in izdelek.

    Poziv: z lepljenjem lahko uporabite že ustvarjen projekt v Eclipse zahtevane ukaze po ukazu za izpis vrstice "Pozdravljeni, svet!" ali namesto tega.

    Operatorji povečevanja in zmanjševanja

    o operaterjih priraščanja in zmanjševanja

    Operatorja povečevanja in zmanjševanja ++ in –– povečujeta in zmanjšujeta vrednost operanda za eno. Veliko bolj priročno je uporabiti ukaz x ++; namesto ukaza x = x + 1;

    Operatorja povečanja in zmanjšanja prav tako vrneta vrednost. To pomeni, da je ukaz zakonit

    Y = 7 * x ++;

    Posledično se bo spremenljivka x povečala za 1, spremenljivka y pa bo imela sedemkrat večjo staro vrednost x. Zaženete lahko tudi ta ukaz:

    Y = 7 * ++ x;

    Posledično se bo spremenljivka x povečala za 1, spremenljivka y pa bo prevzela vrednost sedemkrat večjo od nove vrednosti x.

    Pogojni stavek if

    Najenostavnejša oblika zapisa pogojni operator izgleda kot:

    if (pogoj) ukaz

    Pogoj v oklepaju je logični izraz, tj. je lahko res ali napačno. Če je pogoj resničen, se ukaz izvede, sicer se ne bo nič zgodilo. Na primer:

    if (x // če je vrednost spremenljivke x manjša od 17, dodelite x 17

    Če je potrebno, da se v primeru, ko je pogoj napačen, izvede kakšen drug ukaz, uporabite razširjeno obliko stavka if:

    if (pogoj) command1 else ukaz2

    o drugem if construct

    V zgornjem primeru bi lahko spremenljivko x dodelili 5, če je pogoj x ni izveden (zakaj ga potrebujemo, drugo vprašanje).

    če (x sicer x = 5;

    Če je treba uporabiti več medsebojno izključujočih pogojev, jih lahko zapišemo na naslednji način:

    if (condition1) command1 else if (condition2) command2 else if (condition3) command3 ... else ukazN

    Vaja 2

    Razglasite dve spremenljivki celega števila in jim dodelite poljubne vrednosti. Uporabite stavek if, da poiščete in prikažete največ njih.

    Poziv: algoritem za iskanje maksimuma smo upoštevali ob ponavljanju osnovnih konstrukcij algoritma.

    Sestavljeni ukazi

    Več ukazov v jeziku Java je mogoče združiti v en sestavljen ukaz z uporabo kodrastih oklepajev (). Na primer, lahko napišete:

    (a = 12; črka = "D";)

    Sestavljeni ukazi se lahko uporabljajo povsod, kjer so običajni ukazi. Če na primer v stavku if izvedete več dejanj, ko je izpolnjen pogoj:

    če (x "S";) drugače (x = 5;)

    Imenuje se tudi konstrukcija kodrastih naramnic blok ukazov in kodrasti naramniki so meje blokov.

    Upoštevajte, da je zapis v primeru (ko so meje bloka postavljene v ločene vrstice in je vsebina bloka zapisana z zamikom od njegovih meja) neobvezen. To je samo slogovno pravilo, ki olajša razumevanje programov in se ne zmoti z zavitimi oklepaji, ki se pogosto uporabljajo v programu Java.

    o izjavi o izbiri stikala

    Preklopi izjavo o izbiri

    Pogosto je izbira ukaza za izvedbo odvisna od vrednosti neke spremenljivke (ali izraza). Na primer, uporabnik mora vnesti znak operacije, odvisno od vnesenega znaka pa mora prikazati rezultat seštevanja, odštevanja itd. ali, če je vnesen napačen znak, sporočilo o napaki. V tem primeru je priročno uporabiti izjavo o izbiri stikala, ki ima naslednji zapis:

    stikalo (izraz) (velika vrednost1: zaporedje ukazov 1 prelom; vrednost vrednosti2: zaporedje ukazov 2 prelom; ... privzeto: privzeto zaporedje ukazov)

    Vrednost1, vrednost2 itd. so konstante ali izrazi, ki vključujejo samo konstante. Izraz v oklepaju za ključna beseda stikalo lahko vsebuje spremenljivke. Ta izraz se ovrednoti, nato pa se rezultat ujema z eno od vrednosti za ključno besedo case. Če se najde tako ujemanje, se izvede celotno zaporedje ukazov, ki se nahajajo med dvopičjem in najbližjim ukazom break. Če ujemanja ni mogoče najti, se izvede privzeto zaporedje ukazov, ki sledijo privzeti ključni besedi. Na primer:

    char oper; // Operacijski znak, izbral ga bo uporabnik ... // Predpostavimo, da je do tega trenutka uporabnik izbral znak switch (oper) (primer " +": System.out.println (a + b); prelom; case " -": System.out.println (a - b); prelom; case "*": System.out. println (a * b); break; privzeto: System.out.println ( "Neveljaven znak transakcije"); }

    Privzeti razdelek lahko izpustite. Če v tem primeru ni ujemanja, se ukaz ne izvede.

    Stavek while zanke

    Zanka while ima naslednjo obliko:

    medtem ko (pogoj) ukaz

    Če je pogoj v oklepaju (ki predstavlja logični izraz) res, se ukaz izvede - telo zanke(lahko je preprost ukaz ali zaporedje ukazov v ukrivljenih oklepajih), po katerem se bo program znova vrnil k izvajanju te izjave in bo to ponavljal, dokler pogoj ni napačen.

    Zato, da program ne vstopi v neskončno zanko in ne visi, mora telo zanke predvideti možnost izhoda, to pomeni, da morajo na primer ukazi v telesu zanke nekako vplivati ​​na spremenljivke, vključene v pogoj.

    Naslednji delček kode na primer natisne parne številke od 2 do 10:

    int x = 2; medtem ko (x<= 10){ System.out.println(x); x += 2; }

    približno zanka while s postpogojem

    Obstaja še en način za zapis zanke while:

    naredi ukaz while (stanje)

    Pri uporabi te možnosti se najprej izvede ukaz, nato pa se preveri stanje. Obe možnosti delujeta na enak način, vendar bo v drugem primeru telo zanke (ukaz) izvedeno vsaj enkrat, tudi če je pogoj na začetku napačen.

    Vaja # 3

    Z zanko while natisnite vsa liha števila od 1 do 10.

    Poziv: rahlo spremenite algoritem za izpis parnih števil.

    Za operator zanke

    Zanka for se običajno uporablja, če je vnaprej znano, kolikokrat je treba ponoviti izvajanje ukaza (ali zaporedja ukazov). Ima naslednjo obliko:

    for (ukaz init; pogoj; ukaz skok) loop-body

    Pred začetkom cikla se izvede ukaz za inicializacijo. Nato se preveri pogoj skoka (ki je logični izraz). Če je ta pogoj resničen, se izvede ukaz (ali blok ukazov v ukrivljenih oklepajih), ki sestavlja telo zanke. Nato se izvede ukaz jump in vse se začne znova. Navodilo za skok običajno spremeni spremenljivko, ki vpliva na resničnost pogoja, inicializacijsko navodilo pa je opis te spremenljivke.

    Običajno se zanka for uporablja tako:

    za (int i = 1; i<= 10; i++) тело_цикла;

    V tem primeru se loop_body izvede natančno 10 -krat. V tem primeru bo na vsaki iteraciji na voljo spremenljivka i (imenuje se spremenljivka zanke), ki zaporedno teče skozi vrednosti od 1 do 10. Naslednji fragment programa prikaže parne številke od 2 do 10 (podobno kot primer zanke while):

    za (int i = 1; i<= 5; i++) System.out.println(i*2);

    Vaja 4

    Z zanko for natisnite vsa liha števila od 1 do 10.

    Prekinite in nadaljujte izjave

    Ko je telo zanke (za ali medtem) sestavljeno iz več ukazov, se lahko pojavi situacija, da jih ni treba izvesti pri naslednji ponovitvi. V tem primeru sta izjavi break in continue koristni.

    Stavek break prekine izvajanje trenutne zanke, ne glede na to, ali je njen zaključni pogoj izpolnjen.

    Stavek continue prekine izvajanje trenutne iteracije zanke. To pomeni, da če se ta operator pojavi v telesu zanke, se preostali naslednji ukazi preskočijo in začne se nova ponovitev (ponovitev) zanke.

    Zaključek

    Kljub temu, da je gradivo prve lekcije precej obsežno, ne bi smelo povzročiti težav učencem, ki že poznajo vsaj en programski jezik, saj so konstrukcije v vseh jezikih enake in morate le obvladati pravila za njihovo pisanje (skladnja). Če je bilo poznavanje drugih programskih jezikov šibko, potrebujete več domačih nalog v priročniku in rešitev dodatnih nalog. Najboljša možnost v tem primeru je, da pred naslednjo lekcijo preberete priporočena poglavja iz predlagane literature.

    dodatno literaturo

    1. Vyazovik N.A. Java programiranje. (poglavja 1 - 4, 7, 10)

    2. Khabibullin I.Sh. Java Self Tutorial 2. (1. poglavje)

    Posebno pozornost namenite vrstam podatkov Java in pravilom oddajanja, ki niso podrobno obravnavana v tej vadnici. Poklicni programer mora v svojih programih vedno nadzorovati možnost, da spremenljiva vrednost preseže območje, dovoljeno za njeno vrsto. Napake pri tipkanju so ene najpogostejših in jih je težko odkriti. 4. in 7. poglavje prve knjige sta zelo priporočljiva za branje vsem učencem, ki se prijavijo za odlično oceno.