Počítače Okna Internet

Syntaxe stránky JSP. Podmíněné konstrukce

Programování je psaní zdrojového kódu programu v jednom z programovacích jazyků. Je jich mnoho různé jazyky programování, díky kterému vznikají všechny druhy programů, které řeší určitý rozsah problémů. Programovací jazyk je sada vyhrazených slov používaných k zápisu zdrojového kódu programu. Počítačové systémy nejsou schopny (zatím) rozumět lidské řeči, a ještě více lidské logice (zejména ženské), takže všechny programy jsou psány v programovacích jazycích, které jsou následně přeloženy do počítačového jazyka nebo strojového kódu. Systémy, které překládají zdrojový kód programu do strojového kódu, jsou velmi složité a zpravidla je vytváří více než tucet měsíců a více než tucet programátorů. Takové systémy se nazývají integrovaná programovací prostředí nebo nástroje.

Programovací systém je obrovské promyšlené vizuální prostředí, kde můžete psát zdrojový kód programu, překládat ho do strojového kódu, testovat, ladit a mnoho dalšího. Kromě toho existují programy, které vám umožňují provádět výše uvedené akce pomocí příkazový řádek.

Pravděpodobně jste vícekrát slyšeli termín „program je napsán pod Windows nebo pod Linuxem, Unix“. Faktem je, že programovací prostředí pro překlad programovacího jazyka do strojového kódu mohou být dvou typů: překladače a tlumočníky. Kompilace nebo interpretace programu určuje, jak bude program na zařízení pokračovat. Programy napsané v jazyce Java fungují vždy na základě interpretace, zatímco programy napsané v C / C ++ - kompilace. Jaký je rozdíl mezi těmito dvěma metodami?

Kompilátor po napsání zdrojového kódu v době kompilace přečte celý zdrojový kód programu najednou a převede jej do strojového kódu. Poté program existuje jako celek a může být spuštěn pouze v něm operační systém ve kterém to bylo napsáno. Programy napsané pod Windows proto nemohou fungovat pod Linuxem a naopak. Tlumočník bude krokovat po řádcích nebo po řádcích provádění programu při každém jeho spuštění. Během interpretace není generován spustitelný kód, ale virtuální kód, který je následně spuštěn virtuálním strojem Java. Na jakékoli platformě - Windows nebo Linux lze tedy programy Java spouštět stejným způsobem, pokud je v systému virtuální stroj Java, kterému se také říká Runtime System.

Objektově orientované programování

Objektově orientované programování je založeno na objektech, které jsou do jisté míry podobné našemu světu. Pokud se rozhlédnete kolem sebe, pak určitě najdete něco, co vám pomůže jasněji porozumět modelu takového programování. Například teď sedím u stolu a píšu tuto kapitolu na počítači, který se skládá z monitoru, systémové jednotky, klávesnice, myši, reproduktorů atd. Všechny tyto části jsou objekty, které tvoří počítač. Když to víme, je velmi snadné formulovat nějaký generalizovaný model pro provoz celého počítače. Pokud nerozumíte složitostem softwarových a hardwarových vlastností počítače, pak můžeme říci, že objekt System unit provádí určité akce, které jsou zobrazeny objektem Monitor. Objekt Keyboard může zase opravit nebo dokonce určit akce pro objekt systémové jednotky, které ovlivňují provoz objektu Monitor. Prezentovaný proces velmi dobře charakterizuje celý objektově orientovaný programovací systém.

Představte si nějaké silné software obsahující stovky tisíc řádků kódu. Celý program se provádí řádek po řádku, řádek po řádku a v zásadě bude každý z následujících řádků kódu nutně propojen s předchozím řádkem kódu. Pokud nepoužíváte objektově orientované programování a potřebujete změnit tento programový kód, řekněme, pokud potřebujete vylepšit některé prvky, budete muset udělat spoustu práce se všemi zdrojovými kódy tohoto programu.

Objektově orientované programování je mnohem jednodušší, vraťme se k příkladu počítačového systému. Řekněme, že už nejste spokojeni se sedmnáctipalcovým monitorem. Můžete jej bezpečně vyměnit za dvacetipalcový monitor, samozřejmě pokud máte určité materiální prostředky. Samotný proces výměny nebude znamenat obrovské problémy, kromě toho, že bude nutné změnit ovladač a prach ze starého monitoru by měl být setřen a je to. Objektově orientované programování je založeno přibližně na tomto principu fungování, kdy určitá část kódu může představovat třídu homogenních objektů, které lze snadno modernizovat nebo nahradit.

Objektově orientované programování velmi snadno a jasně odráží podstatu řešeného problému a hlavně umožňuje, aniž by byl dotčen celý program, odstranit nepotřebné objekty nahrazením těchto objektů novějšími. V důsledku toho je celková čitelnost celého zdrojového kódu programu mnohem snazší. Je také důležité, aby stejný kód mohl být použit ve zcela odlišných programech.

Třídy

Jádrem všech programů Java jsou třídy, na nichž je založeno objektově orientované programování. Ve skutečnosti už víte, co jsou to třídy, ale zatím o tom nevíte. V předchozí části jsme hovořili o objektech, přičemž příkladem je struktura celého počítače. Každý objekt, ze kterého je sestaven počítač, je zástupcem své vlastní třídy. Například třída Monitory spojuje všechny monitory bez ohledu na jejich typy, velikosti a možnosti a jeden konkrétní monitor stojící na vašem stole je předmětem třídy monitorů.

Tento přístup velmi usnadňuje simulaci všech druhů procesů v programování a usnadňuje řešení zadaných úkolů. Existují například čtyři objekty čtyř různých tříd: monitor, systémová jednotka, klávesnice a reproduktory. Chcete -li přehrát zvukový soubor, zadejte příkaz pomocí klávesnice systémová jednotka„Samotnou akci dávání příkazu budete vizuálně sledovat na monitoru a v důsledku toho reproduktory přehrají zvukový soubor. To znamená, že jakýkoli objekt je součástí určité třídy a obsahuje všechny prostředky a možnosti této třídy. K vyřešení problému může být tolik předmětů stejné třídy, kolik je potřeba.

Metody

Když byl uveden příklad přehrávání zvukový soubor, pak bylo zmíněno o vydání příkazu nebo zprávy, na základě které byly provedeny určité akce. Úkol provádění akcí je řešen pomocí metod, které každý objekt má. Metody jsou sadou příkazů, pomocí kterých můžete s objektem provádět určité akce.

Každý objekt má svůj vlastní účel a je navržen tak, aby pomocí metod řešil určitý rozsah problémů. K čemu by byl například objekt Klávesnice, kdybyste nemohli mačkat klávesy a přesto mohli vydávat příkazy? Objekt Keyboard má určitý počet klíčů, pomocí kterých uživatel získává kontrolu nad vstupním zařízením a může vydávat potřebné příkazy. Zpracování takových příkazů probíhá pomocí metod.

Například stisknutím klávesy Esc zrušíte jakoukoli akci a tím zadáte příkaz metodě přiřazené této klávese, která tento problém řeší na úrovni programu. Okamžitě vyvstává otázka ohledně počtu metod objektu Keyboard, ale může existovat jiná implementace - od definování metod pro každý z klíčů (což je obecně nerozumné) až po vytvoření jedné metody, která bude monitorovat obecné stav klávesnice. To znamená, že tato metoda monitoruje, zda byla klávesa stisknuta, a poté podle toho, která z kláves je zapojena, rozhodne, co má dělat.

Vidíme tedy, že každý z objektů může mít k dispozici sadu metod řešení různých problémů. A protože každý objekt je objektem určité třídy, ukazuje se, že třída obsahuje sadu metod, které používají různé objekty stejné třídy. V Javě musí být všechny vámi vytvořené metody vlastnictvím nebo součástí určité třídy.

Syntaxe a sémantika Jazyk Java

Abyste mohli mluvit a číst jakýkoli cizí jazyk, musíte se naučit abecedu a gramatiku tohoto jazyka. Podobná podmínka je pozorována při studiu programovacích jazyků, jen se mi zdá, že je tento proces poněkud jednodušší. Než však začnete psát zdrojový kód programu, musíte nejprve vyřešit problém, který vám byl předložen, v jakékoli vhodné formě.

Vytvořme určitou třídu, která je zodpovědná například za telefon, který bude mít pouze dvě metody: zapnutí a vypnutí tohoto telefonu. Protože nyní neznáme syntaxi jazyka Java, napíšeme třídu Phone v abstraktním jazyce.

Telefon třídy
{
Metoda Include ()
{
// operace pro zapnutí telefonu
}
Metoda Disable ()
{
// operace k vypnutí telefonu
}
}

Třída Telefon může vypadat takto. Všimněte si, že složené závorky označují začátek a konec těla třídy, metody nebo libovolné posloupnosti dat. To znamená, že závorky označují příslušnost k metodě nebo třídě. Každá otevřená závorka musí mít závěrečnou závorku. Aby nedošlo k záměně, jsou v kódu obvykle umístěny na stejné úrovni.

Nyní napíšeme stejnou třídu pouze v Javě.

Třída Telefon
{
neplatné dne ()
{
// tělo metody on ()
}
zrušit ()
{
// tělo metody off ()
}
}

Klíčové slovo class v jazyce Java deklaruje třídu, za níž následuje název samotné třídy. V našem případě je to Telefon. Jen pár slov o registru záznamu. Téměř ve všech programovacích jazycích je důležité ponechat jména v registru, ve kterém byla vytvořena. Pokud jste napsali Telefon, pak již takový pravopis jako telefon nebo TELefoN způsobí během kompilace chybu. Jak bylo původně napsáno, je nutné psát dále.

Rezervovaná nebo klíčová slova jsou zapsána v jejich konkrétním případě a nemůžete je použít zadáním jejich názvů metodám, třídám, objektům atd. Mezery mezi slovy nevadí, protože je kompilátor jednoduše ignoruje, ale jsou důležité pro čitelnost kódu.

V těle třídy Telefon existují dvě metody: on () - zapne telefon a metoda off () - vypne telefon. Obě metody mají svá vlastní těla a teoreticky by měly obsahovat nějaký druh zdrojového kódu popisujícího nezbytné akce obou metod. Pro nás je nyní jedno, jak jsou tyto metody implementovány, hlavní je syntaxe jazyka Java.

Obě metody mají závorky na (), uvnitř kterých lze zapisovat parametry, například na (int čas) nebo na (int čas, int čas1). Pomocí parametrů existuje jakési propojení mezi metodami a vnějším světem. Metoda on (int time) prý bere časový parametr. K čemu to je? Například chcete, aby se váš telefon zapnul určitý čas... Poté bude do těla metody předána celočíselná hodnota v časovém parametru a na základě přijatých dat bude telefon zapnutý. Pokud jsou závorky prázdné, pak metoda nevyžaduje žádné parametry.

Komentáře (1)

Ve třídě Telefon mají těla obou metod záznam po dvou lomítcích: //. Taková položka označuje komentáře, které budou kompilátorem ignorovány, ale jsou potřebné pro čitelnost kódu. Čím více informací při psaní programu okomentujete, tím větší bude šance, že si za rok budete pamatovat, na čem jste celou dobu pracovali.

Komentáře v Javě mohou být tří typů, jsou to:

//, /*…*/ a /**…*/

Komentáře napsané pomocí operátoru // musí být umístěny na jednom řádku:

// Jeden řádek
!!! Chyba! Nemůžete zabalit do druhého řádku!
// První řada
// Druhý řádek
// …
// Poslední řádek

Komentáře pomocí operátorů / * ... * / mohou zahrnovat více řádků. Na začátek komentáře vložte / * a na konci, když dokončíte komentování kódu, vložte operátor * /. Poslední druh komentáře / ** ... * / se používá při dokumentování kódu a může být také umístěn na libovolném počtu řádků.

Datové typy Java

V Javě existují datové typy pro nastavení libovolné hodnoty. Ve třídě Telefon jsme vytvořili dvě metody. Obě metody neměly žádné parametry, ale když byl uveden příklad metody on (int time) s parametrem time, bylo řečeno o předání hodnoty metodě. Tato hodnota udávala čas, do kterého by se měl telefon údajně zapnout. Specifikátor int definuje typ časové hodnoty. Java 2 ME má šest datových typů.

Byte - malá celočíselná hodnota od –128 do 128;
short - krátká celočíselná hodnota v rozsahu od –32768 do 32767;
int - obsahuje libovolnou celočíselnou hodnotu od –2147483648 do 2147483647;
long je velmi velká celočíselná hodnota od –922337203685475808 do 9223372036854775807;
char je znaková konstanta Unicode. Rozsah tento formát 0 až 65536, což je 256 znaků. Jakýkoli znak tohoto typu musí být napsán v jednoduchých uvozovkách, například: „G“;
boolean je booleovský typ, má pouze dvě hodnoty: false - false a true - true. Tento typ se často používá ve smyčkách, o kterých o něco později. Myšlenka je velmi jednoduchá - pokud máte peníze v kapse, je to pravděpodobně pravda, a pokud ne, pak nepravda. Pokud jsou tedy peníze, jdeme do obchodu pro chléb nebo pivo (podtrhněte nutné), pokud nejsou peníze, zůstaneme doma. To znamená, že je to taková logická hodnota, která přispívá k volbě dalších akcí pro váš program.

K deklaraci některé požadované hodnoty se používá následující položka:

Int time;
dlouhý BigTime;
char slovo;

Operátor středníku je vyžadován po zadáních a je umístěn na konci řádku. Můžete kombinovat několik reklam stejného typu oddělených čárkami:

Mt čas, čas1, čas2;

Pojďme nyní vylepšit naši třídu Telefon přidáním některých hodnot. Už nepotřebujeme metody on () a off (), přidáme nové metody, které skutečně dokážou vyřešit určité problémy.

Třída Telefon
{
// S - oblast zobrazení
// w - šířka zobrazení
// h - výška zobrazení
int w, h, S;
// metoda, která vypočítá oblast zobrazení
vordská oblast ()
{
S = w * h;
}
}

Máme tedy tři proměnné S, w a h, které jsou odpovědné za plochu, šířku a výšku displeje v pixelech. Metoda Area () vypočítá plochu obrazovky telefonu v pixelech. Operace je zbytečná, ale velmi orientační a snadno srozumitelná. Tělo metody Area () získalo samo sebe a má tvar S = w * h. V této metodě jednoduše vynásobíme šířku výškou a přiřadíme nebo, jak se říká, výsledek uložíme do proměnné S. Tato proměnná bude obsahovat hodnoty oblasti zobrazení tento telefon.

Nyní se přiblížíme k operátorům jazyka Java, se kterými můžete provádět nejrůznější operace. Provozovatelé jazyka Java, jakož i dalších programovacích jazyků, mají své vlastní účely. Existují tedy aritmetické operátory, inkrementální a dekrementační operátory, logické operátory a relační operátory. Podívejme se na každý z výše uvedených operátorů.

Aritmetické operátory

Všechny aritmetické operátory jsou velmi jednoduché a podobné operátorům pro násobení „*“, dělení „/“, sčítání „+“ a odčítání „-“ používanými v matematice. Existuje operátor modulo „%“ a situace s operátorem rovným „=“ je na první pohled trochu matoucí. Operátor rovná se v programovacích jazycích se nazývá operátor přiřazení:

Zde přiřadíte proměnné x hodnotu 3. A operátor „rovný“ v programovacích jazycích odpovídá zápisu dvou po sobě následujících operátorů „rovno“: „==“. Podívejme se na příklad toho, co mohou dělat různé aritmetické operátory.

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

V tomto případě bude mít z hodnotu součtu x a y, tj. 8.

Proměnná x měla hodnotu 5, ale po takovém záznamu se předchozí hodnota ztratí a zapíše se součin z * x (8 * 5), což je 40. Nyní, pokud budeme pokračovat v našem kódu dále, proměnné budou vypadat takto:

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

Operátory sčítání a odčítání mají stejné účely jako v matematice. Záporná čísla jsou podobně příbuzná.

Operátory snižování „––“ a přírůstky „++“ jsou velmi specifické, ale velmi jednoduché. Při programování se často vyskytují případy, kdy potřebujete zvýšit nebo snížit hodnotu o jednu. To se často vyskytuje ve smyčkách. Operace přírůstku zvyšuje proměnnou o jednu.

Int x = 5;
x ++;
// Tady x je už 6

Operace dekrementace snižuje proměnnou o jednu.

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

Operace přírůstku a úbytku mohou být zaúčtovány a předpony:

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

V posledním řádku kódu je nejprve hodnota x přiřazena y, toto je hodnota 5 a teprve potom je proměnná x zvýšena o jednu. Ukázalo se, že:

Přírůstek předpony je:

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

A v tomto případě se nejprve proměnná x zvýší o jednu a poté přiřadí již zvýšenou hodnotu y.

Relační operátoři

Relační operátory umožňují zkontrolovat rovnost obou částí výrazu. Existuje operátor rovnosti "==", operátory menší než "<» и больше «>", menší než nebo rovno"<=» и больше или равно «>= ", Stejně jako operátor negace"! = ".
9 == 10;

Tento výraz není pravdivý, devítka se nerovná deseti, takže jeho hodnota pro tento výraz je nepravdivá.

Zde naopak operátor negace indikuje nerovnost výrazu a hodnota bude pravdivá. Operátory větší než, menší než, větší než nebo rovno a menší nebo rovné jsou podobné odpovídajícím operátorům z matematiky.

Logické operátory

Existují dva logické operátory. Operátor AND, označený &&, a operátor OR, označený dvěma lomítky „||“. Například existuje výraz:

A * B && B * C;

V případě, že jsou pravdivé pouze obě části výrazu, je hodnota výrazu považována za pravdivou. Pokud je jedna z částí špatná, pak bude hodnota celého výrazu nepravdivá.
Na rozdíl od operátoru „&&“ existuje operátor „||“, kterému se nadarmo neříká „NEBO“.

A * B || PŘED NAŠÍM LETOPOČTEM;

Pokud je jakákoli část výrazu pravdivá, pak je celý výraz považován za pravdivý. Oba operátory lze zkombinovat do jednoho výrazu, například:

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

Zdá se mi, že pomocí tohoto výrazu jsem vás přivedl do nesnází, že? Faktem je, že v Javě, stejně jako v matematice, existuje priorita nebo takzvaná hierarchie operátorů, pomocí kterých se určuje, který z operátorů je důležitější, a proto je nejprve zkontrolován. Zvažme použití seznamu přednosti všech dostupných operátorů v jazyce Java:

, ., (),
!, ~, ++, - -, +(unární), - (unární), nový,
*, /, %,
+, –,
<<, >>, >>>,
<, <=, >, >=,
= =, !=,
&, ^, |,
&&,
||,
?:,
=, +=, –=, *=, /=, %=, |=, ^=, <<=, >>=, >>>=.

Asociativita operátorů v seznamu následuje zleva doprava a shora dolů. To znamená, že vše, co je vlevo a výše, je v hodnosti starší a důležitější.

Stránky JSP mají kombinovanou syntaxi: kombinaci standardní syntaxe, která odpovídá specifikaci HTML a syntaxi JSP, která je definována specifikací stránek Java Server Pages. Syntaxe JSP definuje pravidla pro psaní stránek JSP, které se skládají ze standardních HTML tagů a JSP tagů. Stránky JSP kromě značek HTML obsahují značky JSP následujících kategorií:

Směrnice JSP

Směrnice poskytnout globální informace týkající se konkrétních požadavků na JSP a poskytnout informace potřebné během fáze překladu.

Směrnice jsou vždy umístěny na začátek stránky JSP před všechny ostatní značky, takže analyzátor(analyzátor) JSP při analýze textu na úplném začátku zvýraznil globální pokyny. JSP Engine (JSP runtime) tedy analyzuje kód a vytvoří servlet z JSP. Směrnice jsou zprávy do kontejneru JSP. Syntax směrnic JSP vypadá takto:

<%@ директива имяАтрибута="значение" %>Syntaxe úkolu směrnic v XML: Směrnice může mít více atributů. V tomto případě směrnice lze opakovat pro každý z atributů. Přitom páry "Název atributu = hodnota" lze umístit pod jednu směrnici s mezerou jako oddělovač. Existují tři typy směrnic:

  • stránka (stránka)
  • taglib (knihovna tagů)
  • zahrnout (zahrnout)

Směrnice stránky

Směrnice strana definuje vlastnosti Stránky JSP které ovlivňují překladatele. Pořadí atributů ve směrnici strana nevadí. Porušení syntaxe nebo přítomnost nerozpoznaných atributů má za následek chybu překladu. Příklad směrnice strana může sloužit následující kód:<%@ page buffer="none" isThreadSafe="yes" errorPage="/error.jsp" %>Tato směrnice to prohlašuje tato stránka JSP nepoužívá ukládání do vyrovnávací paměti, že je možné, aby mnoho uživatelů přistupovalo k dané stránce JSP současně, a že chybová stránka s názvem error.jsp.
Směrnice strana může obsahovat informace o stránce:<%@ page info = "JSP Sample 1" %>Seznam možných atributů direktivy strana uvedené v tabulce.
Název atributuVýznam Popis
Jazyk Čára Určuje jazyk používaný v skriptech, výrazech nebo v souborech JSP, včetně těla přeloženého kódu. Výchozí hodnota je "java"
rozšiřuje Čára Určuje nadtřídu pro generovaný servlet. Tento atribut by měl být používán s velkou opatrností, protože je možné, že server již používá nadtřídu.
import Čára Definice balíků k importu, například:
& lt% @ page import = "java.util. *%>
Zasedání pravda nebo lež Význam skutečný(výchozí) označuje předdefinovanou proměnnou zasedání(typ HttpSession) musí být svázán s existující relací, pokud existuje, jinak je vytvořena nová relace a je k ní vázáno. Význam Nepravdivé určuje, že relace nebudou použity, a pokusí se získat přístup k proměnné zasedání způsobí chybu při překladu stránky JSP na servlet
Vyrovnávací paměť žádný nebo velikost vyrovnávací paměti v kB. Nastaví velikost vyrovnávací paměti pro JspWriter. Výchozí hodnota závisí na nastavení serveru a neměla by překročit 8 kB. Pokud je hodnota žádný výstup jde přímo k objektu
autoFlush pravda nebo lež Určuje, zda má být vyrovnávací paměť automaticky vyprázdněna, když přeteče, nebo dojde k chybě. Výchozí hodnota je skutečný
isThreadSafe pravda nebo lež Význam skutečný(výchozí) určuje normální režim provádění servletu, kde je zpracováváno více požadavků souběžně pomocí jediné instance servletu, za předpokladu, že autor má synchronizovaný přístup k proměnným této instance. Falešná hodnota signalizuje, že by servlet měl dědit Model s jedním vláknem(model s jedním vláknem), kde jsou sekvenční nebo souběžné požadavky zpracovávány samostatnými instancemi servletu
informace Čára Definuje řetězec informací o stránce JSP, ke které se bude přistupovat pomocí metody Servlet.getServletInfo ()
errorPage Čára Hodnota atributu je adresa URL stránky, která by se měla v události zobrazit možné chyby házení výjimek
jeErrorPage pravda nebo lež Signalizuje, zda lze tuto stránku použít ke zpracování chyb pro jiné stránky JSP. Výchozí hodnota je Nepravdivé
typ obsahu Čára Určuje kódování stránky a odpovědi JSP a typ MIME odpovědi JSP. Výchozí hodnota typu obsahu je text / html, kódování - ISO-8859-1. Například:
contentType = "text / html; charset = ISO-8859-1"
stránka Kódování Čára Určuje kódování znaků stránky JSP. Výchozí hodnota je znaková sada z atributu typ obsahu pokud je to tam definováno. Pokud hodnota znaková sada v atributu typ obsahu nedefinováno, hodnota stránka Kódování je nastavena na stejnou hodnotu ISO-8859-1

Směrnice Taglib

Směrnice taglib prohlašuje, že daná stránka JSP používá knihovnu značek, jednoznačně ji identifikuje pomocí identifikátoru URI a mapuje předponu značky, podle které lze s knihovnou jednat. Pokud kontejner nemůže najít knihovnu značek, dojde k závažné chybě překladu. Směrnice taglib má následující syntaxi:<%@ taglib uri="URI zahrnuté knihovny značek"prefix =" název předpony"%> Předpona" název předpony"se používá při odkazování na knihovnu. Příklad použití knihovny značek." mytags: <%@ taglib uri="http://www.taglib/mytags" prefix="customs" %> . . . PROTI tento příklad knihovna značek má identifikátor URI "http: //www.taglib/mytags", řetězec je přiřazen jako předpona celní který se používá na stránce JSP při přístupu k prvkům knihovny značek.

Zahrnout směrnici

Směrnice zahrnout umožňuje vložit text nebo kód při překladu stránky JSP do servletu. Syntaxe směrnice zahrnout vypadá takto:<%@ include file="Relativní URI stránky, kterou chcete zahrnout"%> Směrnice." zahrnout má jeden atribut - soubor... Obsahuje text zadaného zdroje v souboru JSP. Tuto směrnici lze použít k umístění standardní hlavičky autorských práv na každou stránku JSP:<%@ include file="copyright.html" %>Kontejner JSP přistupuje k souboru pro zahrnutí. Pokud se soubor zahrnutí změnil, kontejner může znovu zkompilovat stránku JSP. Směrnice zahrnout považuje zdroj, jako je stránka JSP, za statický objekt. Daný URI je obvykle interpretován relativně k JSP stránky, na které je odkaz umístěn, ale stejně jako u jiných relativních URI můžete systému sdělit pozici zdroje zájmu vzhledem k domovskému adresáři WEB serveru podle prefix URI se znakem "/". Obsah souboru include je považován za prostý text JSP, a proto může zahrnovat prvky, jako je statický HTML, prvky skriptu, směrnice a akce. Mnoho webů používá na každé stránce malý navigační panel. Kvůli problémům s používáním rámců HTML je tento úkol často vyřešen umístěním malé tabulky na začátek nebo do levé poloviny stránky, jejíž kód HTML se pro každou stránku webu mnohokrát opakuje. Směrnice zahrnout- toto je nejpřirozenější způsob, jak tento problém vyřešit, ušetřit vývojáře před noční můrou rutiny kopírování HTML do každého samostatného souboru. Od směrnice zahrnout zahrnuje soubory během překladu stránky, poté je po provedení změn na navigačním panelu vyžadován opětovný překlad všech stránek JSP, které jej používají. Pokud se připojené soubory poměrně často mění, můžete akci použít jsp: zahrnout který spojuje soubor při přístupu na stránku JSP.

Deklarace JSP

Prohlášení (Prohlášení) jsou určeny pro definování proměnných a metod ve skriptovacím jazyce, které jsou později použity na stránce JSP. Syntax prohlášení vypadá takto:<%! код Java %> reklamy jsou umístěny v deklaračním bloku a jsou volány v expresním bloku stránky JSP. Kód v deklaračním bloku je obvykle napsán v Javě, ale aplikační servery mohou používat syntaxi jiných skriptů. reklamy se někdy používají k přidání dalších funkcí při práci s dynamickými daty získanými z vlastností komponent JavaBeans. Příklady reklamy jsou uvedeny v tabulce. Oznámení může obsahovat více řádků, například v níže uvedeném kódu pro výpočet hodnoty funkce fakt (int n), která by se měla rovnat 1, když n je menší než 2 a n! s kladnou hodnotou n;<%! public static int fact (int n) { if (n reklamy neprodukujte žádný výstup na standardní výstup ven... Proměnné a metody deklarované v oznámení jsou inicializovány a zpřístupněny skriptletům a dalším reklamy v době inicializace stránky JSP.

Skripty JSP

Skripty obsahovat různé části kódu napsané ve skriptovacím jazyce definovaném ve směrnici Jazyk... Fragmenty kódu musí vyhovovat syntaktickým konstrukcím jazyka skriptlety, tj. obvykle syntaxe jazyka Java. Skripty mít následující syntaxi:<% текст скриптлета %>Ekvivalent syntaxe skriptlet pro XML je: text skriptů
Pokud v textu skriptlet je nutné použít posloupnost znaků%> přesně jako kombinaci znaků, a ne jako značku - znak konce skriptlet, místo posloupnosti%> použijte následující kombinaci znaků% \>.
Specifikace JSP poskytuje jednoduchý a přímý příklad skriptlet který dynamicky mění obsah stránky JSP po celý den.<% if (Calendar.getInstance ().get (Calendar.AM_PM) == Calendar.AM) {%>Dobré ráno<% } else { %>Dobré odpoledne<% } %>Je třeba poznamenat, že kód uvnitř skriptlet vložen jako napsaný a veškerý statický text HTML (text šablony) před nebo za skriptlet převedeny pomocí operátoru tisk... To znamená, že skripty nemusí obsahovat dokončené bloky Java a že ponechané otevřené bloky mohou ovlivnit statický HTML mimo skriptlet. Skripty mít přístup ke stejným automaticky definovaným proměnným jako výrazy. Proto například pokud je na stránce potřeba zobrazit jakékoli informace, musíte použít proměnnou ven. <% String queryData = request.getQueryString (); out.println ("Дополнительные данные запроса: " + queryData); %>

Výrazy JSP

Výraz na stránce JSP je spustitelný výraz napsaný ve skriptovacím jazyce uvedeném v deklaraci Jazyk(jak Pravidlo Java). Výsledek výrazy JSP požadovaného typu Tětiva, odesláno na standardní výstup ven pomocí aktuálního objektu JspWriter... Pokud je výsledek výrazy nelze obsadit Tětiva, buď dojde k chybě překladu, pokud byl problém zjištěn ve fázi překladu, nebo je vyvolána výjimka ClassCastException pokud byla při provádění požadavku zjištěna nesrovnalost. Výraz má následující syntaxi: & lt% = výraz text%> alternativní syntaxe pro výrazy JSP při použití XML: výrazový textExekuční příkaz výrazy na stránce JSP zleva doprava. Li výraz se objevuje ve více než jednom atributu run-time, poté v této značce běží zleva doprava. Výraz musí být úplný výraz v konkrétním skriptu (obvykle Java). Výrazy jsou prováděny za běhu protokolu HTTP. Hodnota výrazu je převedena na řetězec a zahrnuta na příslušném místě v souboru JSP. Výrazy se běžně používají k výpočtu a zobrazení řetězcové reprezentace proměnných a metod definovaných v bloku deklarace stránky JSP nebo odvozených z JavaBeans, které jsou přístupné z JSP. Následující kód výrazy slouží k zobrazení data a času požadavku na tuto stránku: Aktuální čas: & lt% = new java.util.Date ()%> Pro zjednodušení výrazy existuje několik předdefinovaných proměnných, které můžete použít. Nejčastěji používané proměnné jsou:
  • požadavek, HttpServletRequest;
  • odpověď, HttpServletResponse;
  • relace, HttpSession - související s požadavkem, pokud existuje;
  • ven, PrintWriter - vyrovnávací verze typu JspWriter pro odesílání dat klientovi.

musí nutně odpovídat názvu třídy, jejíž metoda main () je volána při spuštění stroje Java.

  • Object - třída, ze které se dědí Všechno objekty v Javě, včetně polí a řetězců ().
  • Specifikátory přístupu jsou individuální pro každého člena (zadáno před deklarací).
  • Všichni členové třídy jsou ve výchozím nastavení otevřeni rozsahu balík... Výchozí obor je kříženec mezi soukromým a chráněným, viz.
  • Každý soubor * .java může obsahovat jen jeden třída vyhlášena jako veřejná a přístupná zvenčí.
  • Definice a deklarace třídy je vždy v jednom souboru, není možné vkládat prototypy do hlaviček.
  • Ukazatele chybí.
  • Všechny proměnné třídy jsou ve skutečnosti odkazy na objekty, nikoli na samotné objekty. Jejich inicializace k použití musí být provedena prostřednictvím nového<конструктор-класса>(...) .
  • Na základě předchozí odstavec- při přiřazování jedné proměnné objektu k jiné se mění pouze reference, nikoli kopie objektu.
  • Proměnné ve funkci jsou předávány podle hodnoty, pokud ano elementární typy(int, byte, long, atd ...), nebo odkazem, pokud se jedná o objekty.
  • K veřejným statickým členům třídy se přistupuje prostřednictvím tečkového operátoru. , a ne prostřednictvím ::, což podle mého názoru zavádí určité vnější zmatky.
  • Neexistuje žádný destruktor, ale existuje finalize ().
  • Finalize () by nemělo být zaměňováno s destruktorem C ++. se nazývá finalize () pouze svoz odpadu, který nemá nic společného s tím, že se objekt dostane mimo rozsah a absence alespoň jednoho odkazu na tento objekt.
  • Sbírání odpadků můžete vynutit voláním metody Runtime.gc () na aktuálním objektu Runtime nebo statické metody System.gc (). Soudě podle provedených experimentů, uvolnění paměti funguje pouze uvnitř virtuální stroj Java a jednou přidělená paměť v operačním systému se nevrátí, dokud počítač neskončí.
  • V kódování ve stylu Java funkce vyvolávají výjimky namísto vracení kódu. systémové chyby nebo chyby v logice virtuálního počítače. Proto mnoho funkcí musí být provedeno uvnitř bloku try (...) catch (...) (...), který zpracovává výjimky, nebo metoda, která je volá, musí explicitně specifikovat prostřednictvím vyvolání seznamu výjimek vyvolaných tyto funkce, které nejsou zpracovávány jimi, pro zpracování jejich metodami do zásobníku volání.
  • Výjimky se dělí na a.
  • Blok try (...) může také končit blokem finally (...), který se provede bez ohledu na přítomnost / nepřítomnost výjimek v předchozím bloku try (...). Je vhodné to použít k provedení požadovaných akcí bez ohledu na výsledky spuštění bloku kódu, například k automatickému uvolnění všech prostředků v něm přidělených.
  • char není jednobajtový typ jako u C / C ++, je to 16bitový typ, který podporuje unicode struny.
  • bool je v Javě známý jako boolean.
  • Podmíněné konstrukce přijmout pouze booleovský typ proměnných nebo výrazů. To znamená, že kód je jako:
    int a; ... akce s proměnnou a ...; Pokud) (...)
    Není správné z hlediska syntaxe Javy a nebude kompilováno.
  • Konstanty jsou deklarovány jako konečné a nejsou konstantní.
  • Všechna pole jsou objekty.
  • I řetězcové konstanty (jako „libovolný řetězec konstantní“) jsou objekty.
  • Pro řetězce (třída String) je definován pouze jeden operátor - +, zřetězení.
  • Porovnání řetězců se provádí metodou bool equals () třídy String, například s1.equals (s2).
  • Obsah String objektů je konstantní a neznamená změnu jediného prvku řetězce, to se děje z důvodů výkonu. Pokud takové operace potřebujete, můžete použít třídu StringBuffer.
  • Při zřetězení neinicializovaného řetězce s neprázdným řetězcem získáte null + neprázdný řetězec, například s + = "| řetězec"; se bude rovnat "null | string"
  • Pole mají veřejnou proměnnou délku člena, struny nemají místo toho používají metodu length ().
  • Jáva nepodporovat vícenásobná dědičnost. Některé z jeho funkcí jsou prováděny prostřednictvím „rozhraní“. Rozhraní podporují více "dědičných" implementací více rozhraní v jedné třídě a obecně mnoho vztahů (rozhraní) k mnoha (třídám) a naopak.
  • Rozhraní umožňují vytváření odkazů, pomocí kterých můžete odkazovat na objekty tříd, které tato rozhraní implementují. Je pravda, že dynamické hledání vhodné metody při přístupu přes referenční rozhraní vyžaduje hodně režie, proto není žádoucí.
  • Místo výčtů můžete použít rozhraní bez deklarace metod v nich. V tomto případě musí být všechny proměnné rozhraní inicializovány, když je rozhraní definováno a jejich hodnoty budou automaticky konstantní. Poté mohou být prostřednictvím nástrojů „připojeni“ k definované třídě.
  • Také, protože JDK 5 existují navenek klasické výčty - výčet. Ve skutečnosti to není jen seznam pojmenovaných konstant, ale speciální třída zděděná z nadtřídy Enum. Každý prvek výčtu je objektem této třídy. Číselnou hodnotu objektu výčtu lze získat pomocí řadové vestavěné funkce.
  • Zvyk přetížení obsluhy známé v C ++, v Javě není podporováno.
  • K práci v objektovém prostředí s „primitivními typy“ (int, float, char atd.) Java používá autobox / autobox do typů obalů (Integer, Float, Character, atd ...). Ve skutečnosti se jedná o implementaci přetížení operátora pro několik předdefinovaných tříd, které implementují funkčnost primitivních typů + objektové metody.
  • super - klíčové slovo, které vám umožní zavolat konstruktor nadtřídy z podtřídy nebo odkazovat na člena nadtřídy skrytého členem podtřídy.
    • Při použití jako konstruktor - super by měl být vždy první operátor v konstruktoru podtřídy.
  • Pro určení abstraktní metody, používá se abstraktní klíčové slovo, třída obsahující abstraktní metodu musí být také definována jako abstraktní třída ....
  • final zakazuje přepisování metod v podřízených třídách. U „krátkých“ metod deklarovaných jako konečné má toto klíčové slovo stejný účinek jako vložené v C ++ - v podtřídách místo volání funkce. možná do kódu metody volání třídy vložil bytecode metody superclass.
  • final také zakazuje dědění ze třídy deklarované jako konečná.
  • Jmenné prostory(namespace) v Javě jsou implementovány jako balíčky(balík).
  • Pro připojení balíčky použijte import, můžete také použít import static ..(*|) importovat statické členy třídy.
  • Java podporuje vlákna prostřednictvím vestavěné třídy Thread a spustitelného rozhraní. Pro synchronizaci použijte synchronizovaný specifikátor před metodou v popisu třídy nebo synchronizujte ( ) (...) pro blok kódu synchronizovaný s ... Pro signály mezi synchronizovanými vlákny se používají metody nadřazené třídy Object: wait () / Notify () / NotifyAll ().
  • přechodný - modifikátor indikující, že hodnotu objektu / proměnné není třeba „zadržovat“ při ukládání objektu, například při jeho serializaci před zápisem na disk / databázi. Je logické označit proměnné obsahující jedinečné identifikátory runtime a další podobné informace, které dávají smysl pouze v aktuální instanci procesu java.
  • příklad - běhová operace, návraty skutečný-li je tam odkaz na třídu , nebo jej lze přetypovat na odkaz na tuto třídu, jinak Nepravdivé.
  • assert - Java tvrzení jsou používána v podstatě stejným způsobem jako v C: assert [: Popis selhání tvrzení], ale je třeba mít na pamětiže jsou „vloženy“ do kompilovaného bajtkódu a lze je zahrnout do běžící java-ea.
  • this (...) - can be used inside the constructor of a class to call another constructor of the same class, matching the signature of the arguments.
  • Namísto šablony Jsou používány zobecnění, vypadá velmi podobně: třída CLASS_NAME (...). Ve zobecněních je to zakázáno použití primitivní typy ( int, byte, char atd ...). Parametry lze použít pouze třídy.
    Navíc podporováno omezené typy, zadáním nadtřídy pro třídy parametrů. Například deklarace třídy „generické třídy“ CLASS_NAME ve kterých jsou povoleny pouze potomkové třídy obecné číselné třídy Číslo.
  • K rychlému kopírování polí je vhodné použít System.arraycopy ().
  • Stanislav Gornakov

    Abyste mohli mluvit a číst jakýkoli cizí jazyk, musíte se naučit abecedu a gramatiku tohoto jazyka. Podobná podmínka je pozorována při studiu programovacích jazyků, jen se mi zdá, že je tento proces poněkud jednodušší. Než však začnete psát zdrojový kód programu, musíte nejprve vyřešit problém, který vám byl předložen, v jakékoli vhodné formě.

    Vytvořme určitou třídu, která je zodpovědná například za telefon, který bude mít pouze dvě metody: zapnutí a vypnutí tohoto telefonu. Protože nyní neznáme syntaxi jazyka Java, napíšeme třídu Phone v abstraktním jazyce.

    Class Phone (metoda Enable () (// operace pro zapnutí telefonu) Method Turn off () (// operace pro vypnutí telefonu))

    Třída Telefon může vypadat takto. Všimněte si, že složené závorky označují začátek a konec těla třídy, metody nebo libovolné posloupnosti dat. To znamená, že závorky označují příslušnost k metodě nebo třídě. Každá otevřená závorka musí mít závěrečnou závorku. Aby nedošlo k záměně, jsou v kódu obvykle umístěny na stejné úrovni.

    Nyní napíšeme stejnou třídu pouze v Javě.

    Třída Telefon (void on () (// tělo metody on ()) void off () (// tělo metody off ()))

    Klíčové slovo class v jazyce Java deklaruje třídu, za níž následuje název samotné třídy. V našem případě je to Telefon. Jen pár slov o registru záznamu. Téměř ve všech programovacích jazycích je důležité ponechat jména v registru, ve kterém byla vytvořena. Pokud jste napsali Telefon, pak již takový pravopis jako telefon nebo TELefoN způsobí během kompilace chybu. Jak bylo původně napsáno, je nutné psát dále.

    Rezervovaná nebo klíčová slova jsou zapsána v jejich konkrétním případě a nemůžete je použít zadáním jejich názvů metodám, třídám, objektům atd. Mezery mezi slovy nevadí, protože je kompilátor jednoduše ignoruje, ale jsou důležité pro čitelnost kódu.

    V těle třídy Telefon existují dvě metody: on () - zapne telefon a metoda off () - vypne telefon. Obě metody mají svá vlastní těla a teoreticky by měly obsahovat nějaký druh zdrojového kódu popisujícího nezbytné akce obou metod. Pro nás je nyní jedno, jak jsou tyto metody implementovány, hlavní je syntaxe jazyka Java.

    Obě metody mají závorky na (), uvnitř kterých lze zapisovat parametry, například na (int čas) nebo na (int čas, int čas1). Pomocí parametrů existuje jakési propojení mezi metodami a vnějším světem. Metoda on (int time) prý bere časový parametr. K čemu to je? Například chcete, aby se váš telefon v určitou dobu zapnul. Poté bude do těla metody předána celočíselná hodnota v časovém parametru a na základě přijatých dat bude telefon zapnutý. Pokud jsou závorky prázdné, pak metoda nevyžaduje žádné parametry.

    Komentáře (1)

    Ve třídě Telefon mají těla obou metod záznam po dvou lomítcích: //. Taková položka označuje komentáře, které budou kompilátorem ignorovány, ale jsou potřebné pro čitelnost kódu. Čím více informací při psaní programu okomentujete, tím větší bude šance, že si za rok budete pamatovat, na čem jste celou dobu pracovali.

    Komentáře v Javě mohou být tří typů, jsou to: //, / *… * / a / **… * /. Komentáře napsané pomocí operátoru // musí být umístěny na jednom řádku:

    // Jeden řádek !!! Chyba! Nemůžete zabalit do druhého řádku! // První řádek // Druhý řádek //… // Poslední řádek

    Komentáře pomocí operátorů / * ... * / mohou zahrnovat více řádků. Na začátek komentáře vložte / * a na konci, když dokončíte komentování kódu, vložte operátor * /. Poslední druh komentáře / ** ... * / se používá při dokumentování kódu a může být také umístěn na libovolném počtu řádků.

    Datové typy Java

    V Javě existují datové typy pro nastavení libovolné hodnoty. Ve třídě Telefon jsme vytvořili dvě metody. Obě metody neměly žádné parametry, ale když byl uveden příklad metody on (int time) s parametrem time, bylo řečeno o předání hodnoty metodě. Tato hodnota udávala čas, do kterého by se měl telefon údajně zapnout. Specifikátor int definuje typ časové hodnoty. Java 2 ME má šest datových typů.

    Byte - malá celočíselná hodnota od –128 do 128;
    short - krátká celočíselná hodnota v rozsahu od –32768 do 32767;
    int - obsahuje libovolnou celočíselnou hodnotu od –2147483648 do 2147483647;
    long je velmi velká celočíselná hodnota od –922337203685475808 do 9223372036854775807;
    char je znaková konstanta Unicode. Rozsah tohoto formátu je od 0 do 65536, což se rovná 256 znakům. Jakýkoli znak tohoto typu musí být napsán v jednoduchých uvozovkách, například: „G“;
    boolean je booleovský typ, má pouze dvě hodnoty: false - false a true - true. Tento typ se často používá ve smyčkách, o kterých o něco později. Myšlenka je velmi jednoduchá - pokud máte peníze v kapse, je to pravděpodobně pravda, a pokud ne, pak nepravda. Pokud jsou tedy peníze, jdeme do obchodu pro chléb nebo pivo (podtrhněte nutné), pokud nejsou peníze, zůstaneme doma. To znamená, že je to taková logická hodnota, která přispívá k volbě dalších akcí pro váš program.

    K deklaraci některé požadované hodnoty se používá následující položka:

    Int time; dlouhý BigTime; char slovo;

    Operátor středníku je vyžadován po zadáních a je umístěn na konci řádku. Můžete kombinovat několik reklam stejného typu oddělených čárkami:

    Mt čas, čas1, čas2;

    Pojďme nyní vylepšit naši třídu Telefon přidáním některých hodnot. Už nepotřebujeme metody on () a off (), přidáme nové metody, které skutečně dokážou vyřešit určité problémy.

    Třída Telefon (// S - oblast zobrazení // w - šířka displeje // h - výška displeje int w, h, S; // metoda, která vypočítá prázdnou oblast zobrazení Area () (S = w * h;))

    Máme tedy tři proměnné S, w a h, které jsou odpovědné za plochu, šířku a výšku displeje v pixelech. Metoda Area () vypočítá plochu obrazovky telefonu v pixelech. Operace je zbytečná, ale velmi orientační a snadno srozumitelná. Tělo metody Area () získalo samo sebe a má tvar S = w * h. Při této metodě jednoduše vynásobíme šířku výškou a výsledek přiřadíme nebo, jak se říká, uložíme do proměnné S. Tato proměnná bude obsahovat hodnoty oblasti zobrazení tohoto telefonu. Nyní se přiblížíme k operátorům jazyka Java, se kterými můžete provádět nejrůznější operace a o kterých si povíme v další části této série článků.


    Účel, vlastnosti a výhody Eclipse

    Eclipse je rozšiřitelné IDE (Integrated Development Environment). IDE je pohodlně organizovaná sada nástrojů potřebných pro práci na softwarovém projektu.

    Eclipse je univerzální platforma, kterou lze použít k vývoji aplikací v jakémkoli programovacím jazyce (například Python můžete použít po instalaci připojení Pydev (), ale Java je nativní pro Eclipse (která je mimochodem napsána v Eclipse) .

    Nejdůležitější vlastnosti Eclipse jsou:

    1. Cross-platform. Eclipse běží na všech běžných platformách: Windows, Linux a MacOS X. Ještě důležitější je, že jeho funkce jsou na každé z těchto platforem stejné.
    2. Všestrannost a rozšiřitelnost. Eclipse má schopnost používat celou řadu nástrojů třetích stran.
    3. Otevřenost a bezdůvodnost. Eclipse je projekt OpenSource (tj. Jeho zdrojové kódy k dispozici komukoli a kdokoli se může připojit k vývoji tohoto nástroje). Eclipse má aktivní komunitu, která neustále pracuje na vylepšení programu a rozšíření jeho schopností.

    Pracovní prostor Eclipse

    První věc, kterou uvidíte při spuštění Eclipse, je dialogové okno, které vám umožní vybrat, kde bude pracovní prostor umístěn. Workspace je adresář, kam bude vaše práce uložena.

    Po výběru pracovního prostoru se na obrazovce zobrazí úvodní stránka s návrhy na návody, příklady atd. Vyberte Workbench a dostanete se k oknu pracovní prostředí (Workbench), ve kterém bude probíhat vaše další práce.

    Hlavní součásti pracovního prostoru jsou pohledy, editory a perspektivy.

    Výkon Je malá část v pracovním prostoru, která se používá k procházení určitou kategorií objektů (jako jsou prostředky nebo balíčky), otevřenými editory a zobrazovacími vlastnostmi aktivních editorů. Pohled Navigátor například zobrazuje projekty a další zdroje, zatímco zobrazení Záložky zobrazuje všechny záložky v Workbench spolu s názvy souborů, ke kterým jsou tyto záložky přidruženy. Obrázek ukazuje pravý horní roh pracovního prostoru s aktivním zobrazením Obrys.

    Veškeré změny provedené v zobrazeních se okamžitě uloží.

    Další typ vizuálních komponent Workbench - redaktoři, které slouží k prohlížení a úpravám nějakého zdroje (například programového kódu). Když vyberete zdroj, zobrazí se vhodný editor. Například otevřete libovolný textový dokument (s příponou .txt) pomocí příkazu Soubor -> Otevřít soubor ... a zobrazí se vám vestavěný editor prostého textu. Pokud do tohoto editoru něco napíšete, na jeho kartě se objeví hvězdička, kde je napsán název souboru. To znamená, že editor obsahuje neuložené změny. Budou uloženy, pokud stisknete Ctrl + S nebo vyberete příkaz Soubor -> Uložit.

    Existuje mnoho užitečných pohledů, které lze přidat do okna pracovního prostoru pomocí příkazu Okno -> Zobrazit pohled. Místo toho, abyste je přidávali po jednom, je ale výhodnější změnit perspektivu. Projekce(nebo perspektivní) Je sbírka pohledů a editorů speciálně přizpůsobená k splnění úkolu. Po spuštění v Eclipse se otevře perspektiva Java nakonfigurovaná pro skutečné psaní programu. Pro ladění programu se často používá projekce Debug. Projekci můžete přepnout pomocí příkazu Okno -> Otevřít perspektivu. Název aktuální projekce je zobrazen v pravém horním rohu pracovního prostředí (viz obrázek).

    První program Java

    Než začnete programovat, musíte vytvořit projekt, do kterého bude Eclipse ukládat všechny prostředky související s vaším programem.

    Chcete -li vytvořit projekt, spusťte příkaz Soubor -> Nový -> Projekt. V zobrazeném okně vyberte Java Project a klikněte na Další. Zadejte název projektu. Vezměte prosím na vědomí, že složka s názvem vašeho projektu bude vytvořena v adresáři, který jste zadali jako pracovní prostor (pokud ovšem v tomto okně nezměníte nastavení, což nebudeme dělat poprvé). Klikněte na tlačítko Dokončit.

    Váš projekt je nyní přítomen v zobrazení PackageExplorer na levé straně pracovního prostoru. Můžete jej kdykoli smazat kliknutím na jeho název klikněte pravým tlačítkem myši myší a výběrem Odstranit. Poté se Eclipse zeptá, zda současně zničit složku se soubory projektu (v případě potřeby ji můžete také zničit).

    Pokud jste projekt neodstranili, můžete do něj přidat soubory a složky pomocí příkazů kontextové nabídky Nový -> Soubor a Nový -> Složka resp. Pokud je projekt velký, potřebuje vnořenou strukturu složek. Ale v případě projektu Java jsou věci trochu jiné. Jde o to, že fragmenty programu Java jsou seskupeny do balíčky a pro každý balíček je vytvořena samostatná složka. Balíček je vytvořen příkazem Nový -> Balíček. Musíte také vymyslet název balíčku. V důsledku toho bude ve složce projektu vytvořena nová složka s tímto názvem. Můžeš zkontrolovat.

    Procházení zdrojů projektu může být snazší pomocí zobrazení Navigátor. Otevřete jej Oknem -> Zobrazit příkaz zobrazení. Uvidíte, že kromě adresářů projektu a balíčku Eclipse vytvořil dva pomocné soubory .classpath a .project. Lze je snadno otevřít v editoru, ale nyní nás nijak zvlášť nezajímají.

    Program Java vždy obsahuje jeden nebo více třídy... Třídu můžete vytvořit pomocí příkazu New -> Class v kontextová nabídka Zobrazení Navigátoru (nebo Průzkumník balíků, na tom nezáleží). Při vytváření třídy je třeba vybrat balíček, do kterého bude patřit (vyberte balíček, který jste právě vytvořili) a vymyslet pro něj název. Běžnou praxí je začínat názvy tříd velkými písmeny. Pokud toto pravidlo dobré formy nedodržíte, Eclipse vydá varování, ale nic zlého se nestane.

    Pro naše účely je užitečné zaškrtnout políčko v části „Jaké metody chcete ve své třídě vytvářet?“ opačná možnost public static void main (String args)... V důsledku toho se v těle třídy vygeneruje metoda (funkce) main (). Java vyžaduje, aby alespoň jedna ze tříd programu měla metodu s takovou hlavičkou. Je to on, kdo bude popraven na začátku programu.

    V důsledku našich akcí bude ve složce balíčku vytvořen soubor s názvem naší třídy a příponou .java. Eclipse otevře editor kódu, který zobrazí obsah tohoto souboru. Bude to něco jako následující (názvy balíků a tříd se samozřejmě mohou lišit):

    balíček mainPack; public class MyClass ( / ** * @param args * / public static void main (String args) ())

    Místo automaticky generovaného komentáře lze zapsat příkazy, které tvoří tělo funkce // ÚSEK Automaticky generovaný stub metody... Napíšeme jen jeden příkaz, který vytiskne klasický „Hello, world!“ Řádek na obrazovku:

    System.out.println („Ahoj, světe!“);

    Zbývá spustit program. Chcete -li to provést, spusťte příkaz Spustit -> Spustit a získejte dialogové okno s netriviálním nastavením spouštění. Na levé straně tohoto okna vyberte Java Application ( Java aplikace). Po krátkém přemýšlení Eclipse najde naši třídu obsahující metodu main () a nabídne spuštění programu z ní (na pravé straně okna, na záložce Main by se měly objevit názvy našeho projektu a naší třídy). Kromě toho je programátorovi nabídnuto několik dalších záložek. Například na druhém z nich - Argumenty - budete vyzváni k zadání parametrů příkazového řádku (pokud je program navržen tak, aby jej bylo možné volat z příkazového řádku s parametry). Pro náš jednoduchý program nemusíte zadávat nic jiného. Stačí kliknout na tlačítko Spustit.

    Výsledkem práce programu jsou výstup dat do takzvané konzoly. V operačním systému MS DOS sloužila celá obrazovka monitoru jako konzola. Eclipse nám otevírá pohled Console, ve kterém (pokud je vše provedeno správně) řádek „Hello, world!“ je výstupem našeho programu.

    Chcete -li program znovu spustit (například pokud jsme se rozhodli provést v něm nějaké změny nebo jej musíme ukázat učiteli), můžete jít jednodušší cestou -spustit příkaz Spustit -> Spustit poslední spuštění (spustit předchozí aplikace) nebo stiskněte Ctrl + F11.

    Základy syntaxe Javy

    Definice

    Operand je hodnota zahrnutá v operaci.

    Metoda (funkce) je část programu, která má své vlastní jméno. Tento název lze v programu použít jako příkaz (takový příkaz se nazývá volání metody). Při volání metody se provedou příkazy, ze kterých se skládá. Metoda, podobná operaci, může vrátit hodnotu výsledku.

    Výraz je posloupnost operací a volání metod provedených v určitém pořadí (podle priority operací s přihlédnutím k závorkám), která během výpočtu dává určitou hodnotu.

    Proměnná je pojmenovaná oblast počítačové paměti, do které může program ukládat data určitého typu (tzv proměnná hodnota) a přistupujte k těmto datům pomocí názvu proměnné.

    Programové a algoritmické koncepty (opakování)

    Jmenování libovolné počítačový program- transformace vstupních dat na výstupní data. Algoritmus programu určuje, jak se vstupní data převádějí na výstupní data.


    Vstupní data mohou pocházet z různých zdrojů. Ve vzdělávacích projektech se tato data nejčastěji zadávají za běhu programu pomocí klávesnice a myši. Ve skutečných programech je lze získat také ze souborů, databází, sítí, přímo z různých senzorů atd.

    Výstupní data (výsledek práce programu) se nejčastěji zobrazují na obrazovce, ale lze je také uložit do souboru nebo databáze, odeslat do sítě. Vestavěné programy generují jako výstup speciální únikové sekvence, které způsobují, že zařízení, ke kterému je program přidružen, provede nějakou akci.

    Začínáme psát program MUSÍTE OKAMŽITĚ ROZUMĚT:

    1. K čemu tento program vůbec je (k čemu slouží obecně)?
    2. Jaká vstupní data má tento program (a odkud pochází)?
    3. Jaký je výstup tohoto programu (a kam jej poslat)?
    4. Jak by měl být vstup převeden na výstup (algoritmus)? Toto je nejtěžší část myšlení programátora, ale přestože na tři předchozí otázky neexistuje odpověď, nemá smysl s tím začínat.

    Při psaní jednoduchého programu potřebujete:

    1. Získejte vstup.
    2. Implementujte algoritmus pro převod vstupních dat na výstupy.
    3. Výstup výsledku práce programu (výstupní data): zobrazte jej, odešlete přes síť atd.

    Při práci se složitými softwarovými projekty je nutné provést podrobnou analýzu požadavků na program (což může vyžadovat hodně komunikace se zákazníkem), provést návrh (určit, ze kterých částí bude program sestávat, jak budou tyto části vzájemně komunikovat, zobrazovat různé aspekty struktury a chování programu ve formě diagramů atd.). Ale v každém případě začněte programovat bez pochopení vstupních a výstupních dat a bez obecného porozumění podstatě algoritmu nesmyslné... A přemýšlejte alespoň obecně o podstatě algoritmu, aniž byste znali vstupní a výstupní data nemožné.

    Cvičení proto vždy začněte definováním vstupů a výstupů. Pokud máte v této záležitosti jakékoli potíže, kontaktujte svého učitele.

    Literatura na téma:

    Základní konstrukce algoritmů (opakování)

    Pozornost! V této fázi školení byste již měli mít znalosti o tomto tématu. Pokud tam nejsou a materiály pro opakování jsou nesrozumitelné nebo nedostatečné, nebudete se s úkoly vyrovnávat! Je naléhavé konzultovat literaturu na toto téma.

    Algoritmus je tedy posloupnost akcí k transformaci vstupních dat na výstupní data.

    Algoritmus lze zapsat třemi hlavními způsoby:

    Jednotlivé kroky algoritmu (bez ohledu na to, jak jsou zapsány) jsou navzájem propojeny pomocí tří standardních konstrukcí, které jsou implementovány v absolutně všech programovacích jazycích:

      Sekvenční provedení. Kroky se provádějí jeden po druhém.

      Větvení. V závislosti na splnění určité podmínky (v uvažovaném příkladu je to x> y?) Se provede jedna nebo jiná větev programu.

      Cykly. Sekvence kroků programu se provede několikrát. Ve skutečnosti je smyčka založena na rozvětvení (je zkontrolována podmínka pro ukončení smyčky), ale pokud tato podmínka není splněna, je řízení přeneseno na začátek smyčky (zpět k již dokončenému kroku).

    Zvažte problém: zobrazte všechna sudá čísla menší než 10. K tomuto problému můžete použít algoritmus založený na postupných krocích a algoritmus, který používá smyčku. Diagramy pro obě možnosti jsou znázorněny na obrázku:

    První diagram vypadá jasněji, ale v případě, že je nutné zobrazit ne 5 čísel, ale 100, diagram (a program odpovídající tomuto algoritmu) se zvýší 20krát a v programu odpovídajícím druhému algoritmu pouze jedno místo se změní: 10 se změní na 100 Proto jsou opakující se akce navrženy ve formě cyklů, ačkoli v mnoha případech je lze upustit.

    Pamatujte: algoritmus by měl být postaven pouze ze tří pojmenovaných konstrukcí!

    Literatura na téma:

    1. Školní učebnice informatiky.

    Základy syntaxe Javy

    1. Jazyk Java rozlišuje velká a malá písmena. To znamená, že názvy všech funkcí a klíčových slov by měly být napsány přesně tak, jak jsou uvedeny v příkladech a referenčních knihách.
    2. Každý příkaz (operátor) v jazyce Java musí končit středníkem.
    3. Program Java se skládá z jednoho nebo více třídy... Měla by být umístěna absolutně celá funkční část programu (tj. Co dělá) metody určité třídy. (Třída a metoda, jako objektově orientovaný programovací koncept, budou zahrnuty v lekci 3. Syntaxe třídy bude také zahrnuta. V prvních cvičeních použijte třídy, které Eclipse standardně generuje.)
    4. Třídy jsou seskupeny do balíčků.
    5. Minimálně jedna ze tříd musí mít metodu main (), přesně stejnou jako v příkladu, který jsme zvažovali. (Zpočátku není nutné rozumět ani se snažit zapamatovat si správný pravopis této metody - Eclipse vygeneruje vše samo, pokud zaškrtnete potřebné políčko.) Tato metoda bude provedena jako první.

    V nejjednodušším případě může program sestávat z jednoho (nebo dokonce žádného) balíčku, jedné třídy v rámci balíčku a jedné metody main () v rámci třídy. Programové příkazy budou zapsány mezi řádky

    public static void main (String args) (

    a závěrečnou složenou závorku), která označuje konec těla metody. Tento přístup by měl být dodržován při provádění nejjednodušších cvičení.

    Komentáře (1)

    Komentáře jsou vysvětlující popisky, které programátoři používají ke zlepšení srozumitelnosti kódu. Při kompilaci programu jsou komentáře ignorovány, takže do nich lze zapsat cokoli. Hlavní věcí je ukázat, že tento nápis je komentář a neměl by být interpretován jako příkazy programu. V Javě se to provádí jedním z následujících způsobů:

    1. Jsou vložena dvě lomítka //. Od této chvíle až do konce řádku můžete psát, co chcete - Java to bude považovat za komentář.
    2. Na začátek komentáře jsou umístěny znaky / * a na konci - * /. V tomto případě může komentář zahrnovat libovolný počet řádků.
    3. Zvýraznit připomínky k dokumentaci které jsou umístěny mezi značkami / ** a * /. Jejich použití bude diskutováno později.

    Doslovná pravidla psaní

    o různých formách psaní doslovů

    Celá čísla (celočíselné literály) v Javě lze zapsat obvyklým způsobem v desítkové formě: 12345, +4, -11.

    Kromě toho můžete psát celá čísla v osmičkové formě, počínaje od nuly (0777, -056) a v hexadecimální formě, počínaje nulou a latinským písmenem x (0xFFFF, 0x14, 0xA1BC).

    Platné literály jsou zapsány v desítkové soustavě, celá část je oddělena od desetinné čárky.

    Lze napsat skutečné číslo plovoucí bod, například: 5,4e19, 17E -11, -123e + 4. Část čísla, která je před písmenem e, se nazývá mantisa a část, která přichází za písmenem e, se nazývá pořadí. Zápis znamená následující: musíte zvýšit 10 na sílu řádu a vynásobit mantisou. Někdy je ve skutečnosti pohodlnější psát 1e-9 než 0,000000001.

    Jednotlivé znaky jsou psány apostrofy, například „a“, „D“, „@“.

    Existuje několik speciálních a kontrolních znaků, které jsou psány pomocí speciální únikové sekvence. Nejběžnější jsou uvedeny v tabulce:

    Úniková sekvence je také uzavřena v apostrofech.

    První řádek tabulky říká, že pomocí jeho kódu lze zadat libovolný znak (s desetinným kódováním od 0 do 255), přičemž tento kód je napsán v osmičkové soustavě. Například písmeno "g" v kódování CP1251 bude zapsáno s únikovou sekvencí "\ 346"

    V případě potřeby můžete zadat kód libovolného znaku v Kódování Unicode- za zpětným lomítkem a latinským písmenem u - čtyřmi hexadecimálními znaky. Například „\ u0055“ je písmeno U.

    Řetězce znaků jsou uzavřeny v uvozovkách. Úvodní a závěrečné uvozovky musí být na stejném řádku kódu.

    U řetězců je definována operace zřetězení +, která umožňuje shromáždit několik řetězců do jednoho („přiřadit“ je k sobě).

    Pokud je řetězcová konstanta při psaní na jeden řádek příliš dlouhá a špatně vnímaná v kódu programu, můžete jej zapsat do několika řádků a zřetězit je pomocí operace zřetězení řetězců. Například:

    „Toto je velmi dlouhá řetězcová konstanta zapsaná“ + „na dvou řádcích zdroje“

    Kontrolní znaky a kódy jsou zapsány do řetězce přesně stejným způsobem jako obrácené lomítko(ale žádné apostrofy).

    Booleovské literály jsou pravdivé a nepravdivé.

    Identifikátory

    o pravidlech dobrého stylu

    Při programování je neustále potřeba vymýšlet identifikátory pro pojmenování objektů.

    Identifikátor se může skládat z písmen, číslic, podtržítka _ a znaku dolaru $ (druhý se nedoporučuje, Java jej používá pro své vlastní potřeby). Identifikátor nemůže začínat číslicí. Klíčová slova Java (ani literály pravda, nepravda a nula).

    Jak je uvedeno výše, jazyk Java rozlišuje malá a malá písmena... To znamená, že myAge, myage a MyAge jsou názvy zcela odlišných objektů. Buďte opatrní: chyba registru je velmi častý případ!

    Názvy tříd začínají velkými písmeny; pokud se název skládá z více slov, pak každé slovo začíná velkým písmenem. Například: MyClass, Book.

    Názvy metod a proměnných začínají malými písmeny (malými písmeny); pokud název obsahuje několik slov, pak každé další slovo začíná velkým písmenem. Například myVar, x, y, newBigCounter.

    Konstantní jména jsou zapsána v plném rozsahu velká písmena; pokud název obsahuje více slov, je mezi ně umístěno podtržítko. Například PI, COUNT_OF_MONTHS.

    Používání těchto pokynů má mnoho výhod. Jedním z nich je, že budete přesně vědět, jak umístit velká a malá písmena při použití standardu Java knihovny, jejichž vývojáři doporučení dodržovali.

    Typy dat

    o datových typech Java

    Typ int se nejčastěji používá k ukládání celých čísel v Javě.

    V jazyce Java existují obecně čtyři celočíselné typy: byte, short, int, long. Liší se velikostí paměti, která bude alokována pro danou proměnnou, a podle toho také rozsahem hodnot, které lze do této proměnné uložit. Nejčastěji používaný typ int zabírá v paměti 4 bajty a je vhodný pro ukládání čísel od -2147483648 do 2147483647. Typ bajtu spotřebovává nejméně paměti a je vhodný pro práci s malými čísly (od -128 do 127). Krátké a dlouhé typy mají 2 a 8 bajtů.

    Dvojitý typ je vhodný pro reálná čísla.

    Skutečná (skutečná) čísla (nebo čísla s plovoucí desetinnou čárkou) jsou reprezentována dvěma typy: float a double. Typ float zabírá 4 bajty paměti a neposkytuje vysoký stupeň přesnosti při práci s velmi velkými nebo velmi malými čísly. Doporučuje se použít, když je potřeba zlomková část, ale není vyžadována vysoká přesnost (například pro měření vzdáleností v metrech, ale s přihlédnutím k centimetrům a milimetrům nebo pro měření cen v rublech, s přihlédnutím ke kopeckům). Pokud jsou požadovány přesnější výpočty, doporučuje se pracovat s hodnotami dvojitého typu (například taková proměnná může ukládat hodnotu sinus úhlu).

    Platné literály, jako jsou 5.3, 8.0, 2e-3, Java považuje za dvojité. Mají-li být v programu použity jako plováky, musí končit písmenem f: 5,3f, 8,0f, 2e-3f.

    Typ char se používá k ukládání jednotlivých znaků. Java to považuje za druh celočíselného typu (protože každý znak je určen vlastním kódem Unicode), takže všechny celočíselné operace platí pro znak.

    Booleovské hodnoty (pravdivé nebo nepravdivé) jsou reprezentovány booleovským typem.

    Java tedy definuje osm jednoduchých typů, jejichž funkce jsou uvedeny v stůl:

    Deklarace proměnných

    V Javě (stejně jako v mnoha jiných jazycích) ji musíte před použitím popsat. Popsat proměnnou je pojmenovat ji a definovat její typ.

    Při deklarování proměnné je nejprve uveden typ (což může být jeden z jednoduchých typů, název třídy nebo rozhraní), poté název proměnné. Pokud je potřeba proměnná inicializovat(přiřadit počáteční hodnotu), počáteční hodnota je uvedena za jménem pomocí znaménka rovnosti. Několik dalších proměnných stejného typu lze deklarovat oddělených čárkami.

    Příklady deklarace proměnné:

    int x; // Deklarujte celočíselnou proměnnou x dvojité a, b; // Deklarace dvou reálných proměnných a a b char písmeno = "Z"; // Deklarujte písmeno proměnné znaku, inicializované počáteční hodnotou "Z" logická hodnota b1 = true, b2, b3 = false; // Deklarujte tři booleovské proměnné, první bude pravdivá, poslední nepravdivá

    Základní jazykové operace

    Proměnné a mohou se jich účastnit (z nichž lze zase stavět složité). Zvažme nejjednodušší operace jazyka Java.

    Matematické operace

    Porovnávací operace, výsledkem je logická hodnota: true nebo false

    Logické operace

    o operacích Java

    && a || se liší tím, že hodnota druhého není nutně vypočítána. Například && vyhodnotí hodnotu prvního operandu, a pokud je false, okamžitě vrátí hodnotu false, zatímco || vrací true, pokud vidí, že první operand je true. Java má podobné operace & a | , vyhodnotí hodnoty obou operandů před provedením operace na nich.

    Směnný provoz

    (práce s bitovou reprezentací prvního operandu)

    Bitové operace

    (práce s bitovou reprezentací operandů)

    Úkon?:

    Operace?: Ternární, to znamená, že má tři operandy. První operand je podmínka, booleovský výraz. Druhý a třetí operand jsou výrazy jakéhokoli jiného typu. Operace funguje následovně: pokud je podmínka pravdivá, vrátí jako výsledek svůj druhý operand, a pokud je nepravdivý, pak třetí.

    Například výraz (5> 3)? 7 + 1: 2 * 2 bude mít hodnotu 8, ale výraz (5 == 3)? 7 + 1: 2 * 2 - hodnota 4. Tento zápis nevypadá příliš popisně, ale programátoři jej často používají ke zkrácení kódu. Takže místo posloupnosti příkazů:

    pokud (x> 0) y = 45 + a * 2; // pokud je prohlášení uvedeno níže jinak y = 45 - b * 3;

    můžeš psát:

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

    Operátor přiřazení

    Poté, co je proměnná popsána, můžete s ní v programu pracovat. Zejména mu může být přiřazena hodnota příslušného typu. Potom v budoucnu při použití této proměnné v jakémkoli výrazu bude tato aktuální hodnota automaticky nahrazena.

    Hodnota je přiřazena k proměnné pomocí přiřazení. V jazyce Java je napsán jednoduchým znaménkem rovnosti:

    Proměnná = výraz;

    Vlevo od operátoru přiřazení je vždy proměnná. vpravo musí odpovídat proměnné podle typu. Může to být jednoduché (například číslo nebo symbol):

    X = 7; // proměnné x je přiřazena hodnota 7 písmeno = "Q"; // písmeno je nastaveno na "Q"

    Obecně je výraz něco, co lze vypočítat (například výsledek matematické operace nebo výsledek vrácený nějakou metodou):

    A = 7,5 + 2,4; // proměnná a je přiřazena 9,9 jako výsledek výpočtů

    Kromě literálů se výrazu mohou účastnit i jiné proměnné. Jejich aktuální hodnota je nahrazena. Výsledkem příkazu:

    B = a + 1;

    proměnná b bude nastavena na 10.9.

    Operátor přiřazení tedy funguje následovně. Nejprve se vypočítá hodnota výrazu na pravé straně a poté se výsledek přiřadí proměnné uvedené na levé straně. Je možná i následující situace:

    X = x + 4;

    Tento příkaz zvýší aktuální hodnotu celočíselné proměnné x o 4.

    A následující příkazy jsou zapsány nesprávně a nebudou fungovat:

    5 = x + 7; // vlevo by měla být proměnná x + 3 = 14; // vlevo by měla být pouze jedna proměnná x = 4,5; // proměnná x může nabývat pouze celočíselných hodnot

    Eclipse se pokusí označit chybu v těchto řádcích před spuštěním programu umístěním varovných znaků na okraj editoru kódu. Můžete vidět, jak to dělá.

    o castingu typu

    Když je proměnné jednoho typu přiřazena hodnota jiného typu, použije se casting (převod) typů... U numerických typů (byte, short, int, long, float, double, char) se to stane automaticky, pokud typ proměnné, která se mění, může "pojmout" hodnotu jiného typu.

    Pokud je například proměnné typu int přiřazena hodnota typu byte, automaticky dojde k převodu z typu byte na typ int. Podobně lze typ float přetypovat na dvojitý typ atd.

    Pokud se pokusíte přiřadit proměnnou méně přesného typu (například bajt) hodnotě přesnějšího typu (například int), kompilátor vygeneruje chybovou zprávu.

    Pro lití typu můžete použít operátor obsazení- před výraz, pro který chceme provést převod typu, se do závorek umístí závorky s typem, na který se převod provádí. Při přetypování celočíselného typu s vyšší přesností na celočíselný typ s nižší přesností může být dělení modulo prováděno přípustným rozsahem typu, na který se casting provádí, a při přetypování dvojitého výrazu na floatový výraz bude přesnost výrazu být snížen.

    long j = (dlouhý) 1,0; // použijte castingový operátor na long, j = 1 char ch = (char) 1001; // použijte operátor castingu k char, ch = "d" byte b2 = (byte) (100); // použijte operátor přetypování od int do byte, b2 = 100 byte b3 = (byte) (100 * 2); //Pozornost! dochází k modulovému dělení, b3 = -56

    K chybě nesouladu typu často dochází u platných literálů. Nemůžete například provést přiřazení a = 7,5 + 2,4; pokud je proměnná a typu float, protože literály 7.5 a 2.4 jsou považovány za typ double. Abyste se vyhnuli chybě, je nutné použít casting:

    A = (plovoucí) (7,5 + 2,4);

    nebo k označení, že literály jsou také float:

    A = 7,5f + 2,4f; // toto je také platný příkaz

    Téměř každá binární operace má svůj vlastní operátor přiřazení. Například pro operaci sčítání + existuje unární přiřazovací operátor + =, který zvyšuje hodnotu operandu o danou částku:

    X + = 8; // stejné jako x = x + 8 (x se zvyšuje o 8)

    Podobně pro ostatní operace: operátory * =, - =, / =,% =, & = ^ = atd.

    X * = 3; // stejné jako x = x * 3 (x se zvyšuje o 3 krát) b1 ^ = b2; // stejné jako b1 = b1 ^ b2

    Cvičení 1

    Deklarujte dvě celočíselné proměnné, přiřaďte jim libovolné hodnoty. Vytiskněte jejich součet a produkt.

    Výzva: můžete již vložený projekt použít v Eclipse požadované příkazy po příkazu k výstupu řádku „Hello, world!“ nebo místo toho.

    Operátory přírůstku a úbytku

    o operátorech přírůstku a úbytku

    Operátory přírůstku a snižování ++ a –– zvyšují a snižují hodnotu operandu o jeden. Mnohem pohodlnější je použít příkaz x ++; místo příkazu x = x + 1;

    Operátory přírůstku a úbytku také vrátí hodnotu. To znamená, že je legální provést příkaz

    Y = 7 * x ++;

    V důsledku toho se proměnná x zvýší o 1 a proměnná y získá hodnotu sedmkrát starší než x. Můžete také spustit tento příkaz:

    Y = 7 * ++ x;

    V důsledku toho se proměnná x zvýší o 1 a proměnná y nabude hodnoty sedmkrát vyšší než nová hodnota x.

    Podmíněné prohlášení if

    Nejjednodušší forma zápisu podmíněný operátor vypadá jako:

    if (podmínka) příkaz

    Podmínka v závorkách je booleovský výraz, tj. může být pravdivé nebo nepravdivé. Pokud je podmínka pravdivá, příkaz bude proveden, jinak se nic nestane. Například:

    if (x // pokud je hodnota proměnné x menší než 17, přiřaďte x k 17

    Pokud je nutné, aby v případě, že je podmínka nepravdivá, byl proveden jiný příkaz, použijte rozšířený tvar příkazu if:

    if (podmínka) command1 else příkaz2

    o else if konstrukci

    Ve výše uvedeném příkladu můžeme chtít podmínku přiřadit proměnné x až 5 x není provedeno (proč to potřebujeme, další otázka).

    if (x else x = 5;

    Pokud je nutné použít několik vzájemně se vylučujících podmínek, mohou být zapsány následovně:

    if (podmínka1) příkaz1 else if (podmínka2) příkaz2 else if (podmínka3) příkaz3 ... jinak příkazN

    Cvičení 2

    Deklarujte dvě celočíselné proměnné, přiřaďte jim libovolné hodnoty. Pomocí příkazu if najděte a vydejte maximum z nich.

    Výzva: při opakování základních konstrukcí algoritmu byl uvažován algoritmus pro nalezení maxima.

    Složené příkazy

    Více příkazů jazyka Java lze kombinovat do jednoho složeného příkazu pomocí složených závorek (). Můžete například napsat:

    (a = 12; písmeno = "D";)

    Složené příkazy lze použít všude tam, kde jsou běžné příkazy. Například v příkazu if, pokud je třeba při splnění podmínky provést několik akcí:

    if (x "S";) else (x = 5;)

    Říká se také konstrukci složené rovnátka blok příkazů a složená rovnátka jsou blokové hranice.

    Všimněte si, že zápis použitý v tomto příkladu (když jsou hranice bloku umístěny na samostatné řádky a obsah bloku je zapsán odsazeně od jeho hranic) je volitelný. Toto je pouze pravidlo stylu, které má programům usnadnit porozumění a nenechat se zmást složenými závorkami, které se často používají v programu Java.

    o prohlášení o výběru přepínače

    Přepnout výběrový příkaz

    Volba příkazu, který má být proveden, často závisí na hodnotě nějaké proměnné (nebo výrazu). Uživatel je například vyzván k zadání operačního znaku a v závislosti na zadaném znaku je povinen zobrazit výsledek sčítání, odčítání atd. nebo, pokud je zadán nesprávný znak, chybová zpráva. V tomto případě je vhodné použít příkaz pro výběr přepínače, který má následující notaci:

    přepínač (výraz) (hodnota případu1: sekvence příkazů 1 zalomení; hodnota případu2: sekvence příkazu 2 zalomení; ... výchozí: výchozí sekvence příkazů)

    Hodnota1, hodnota2 atd. jsou konstanty nebo výrazy, které zahrnují pouze konstanty. Výraz v závorkách po klíčové slovo přepínač může obsahovat proměnné. Tento výraz se vyhodnotí a výsledek se porovná s jednou z hodnot za klíčovým slovem case. Pokud je nalezena taková shoda, provede se celá sekvence příkazů umístěných mezi dvojtečkou a nejbližším příkazem break. Pokud není nalezena žádná shoda, provede se výchozí sekvence příkazů následujících za výchozím klíčovým slovem. Například:

    char oper; // Operační značka, bude vybrána uživatelem ... // Předpokládejme, že do této chvíle si uživatel vybral znak switch (oper) (case " +": System.out.println (a + b); break; case " -": System.out.println (a - b); break; case "*": System.out. println (a * b); break; výchozí: System.out.println ( "Neplatný znak transakce"); }

    Výchozí část můžete vynechat. V tomto případě, pokud není nalezena shoda, nebude proveden žádný příkaz.

    Zatímco smyčkový příkaz

    Smyčka while má následující podobu:

    while (podmínka) příkaz

    Pokud je podmínka v závorkách (což je logický výraz) pravdivá, příkaz bude spuštěn - tělo smyčky(může to být jednoduchý příkaz nebo posloupnost příkazů v složených závorkách), poté se program vrátí k provedení tohoto příkazu a bude to opakovat, dokud podmínka není nepravdivá.

    Proto, aby program nevstoupil do nekonečné smyčky a nezablokoval, musí tělo smyčky poskytnout možnost ukončení, to znamená, že například příkazy v těle smyčky musí nějak ovlivnit proměnné zahrnuté v podmínce.

    Následující fragment kódu například vytiskne sudá čísla od 2 do 10:

    int x = 2; zatímco (x<= 10){ System.out.println(x); x += 2; }

    smyčka while s postkondicionováním

    Existuje další způsob, jak napsat smyčku while:

    dělat příkaz while (podmínka)

    Při použití této možnosti se nejprve provede příkaz a poté se zkontroluje podmínka. Obě možnosti fungují stejně, ale v druhém případě bude tělo smyčky (příkaz) provedeno alespoň jednou, i když je podmínka původně nepravdivá.

    Cvičení č. 3

    Pomocí cyklu while vytiskněte všechna lichá čísla od 1 do 10.

    Výzva: mírně změnit algoritmus pro výstup sudých čísel.

    Pro smyčkový operátor

    Smyčka for se obvykle používá, když je předem známo, kolikrát by se mělo provedení příkazu (nebo sekvence příkazů) opakovat. Má následující formu:

    for (příkaz init; podmínka; příkaz skok) loop-body

    Před začátkem cyklu se provede inicializační příkaz. Poté je zkontrolována podmínka skoku (což je booleovský výraz). Pokud je tato podmínka pravdivá, provede se příkaz (nebo blok příkazů v složených závorkách), který tvoří tělo smyčky. Poté je spuštěn příkaz skok a vše začíná znovu. Skoková instrukce obvykle upravuje proměnnou, která ovlivňuje pravdivost podmínky, a inicializační instrukce je popis této proměnné.

    Smyčka for se obvykle používá takto:

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

    Tento příklad provede loop_body přesně 10krát. V tomto případě bude při každé iteraci k dispozici proměnná i (nazývá se smyčková proměnná), která postupně prochází hodnotami od 1 do 10. Další fragment programu vydává sudá čísla od 2 do 10 (podobně jako příklad smyčky while):

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

    Cvičení 4

    Pomocí smyčky for vytiskněte všechna lichá čísla od 1 do 10.

    Prolomte a pokračujte v prohlášeních

    Když se tělo smyčky (for or while) skládá z několika příkazů, může nastat situace, že není nutné je při další iteraci provést všechny. V tomto případě jsou užitečné příkazy break a continue.

    Příkaz break ukončí provádění aktuální smyčky bez ohledu na to, zda je splněna podmínka ukončení.

    Příkaz continue ukončí provádění aktuální iterace smyčky. To znamená, že pokud se s tímto operátorem setkáte v těle smyčky, pak se přeskočí zbytek následujících příkazů a začne nová iterace (opakování) smyčky.

    Závěr

    Navzdory skutečnosti, že materiál první lekce je poměrně obsáhlý, neměl by způsobovat potíže studentům, kteří již znají alespoň jeden programovací jazyk, protože konstrukce ve všech jazycích jsou stejné a je nutné pouze zvládnout pravidla pro jejich psaní (syntaxe). Pokud byla znalost jiných programovacích jazyků slabá, potřebujete více domácích úkolů v manuálu a řešení dalších úkolů. Nejlepší možností by v tomto případě bylo přečíst si před další lekcí doporučené kapitoly z literatury.

    doplňková literatura

    1. Vyazovik N.A. Programování v Javě. (kapitoly 1 - 4, 7, 10)

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

    Věnujte zvláštní pozornost datovým typům Java a pravidlům castingu, které nejsou v tomto kurzu podrobně popsány. Profesionální programátor by měl ve svých programech vždy ovládat možnost, aby proměnná hodnota přesahovala rozsah povolený pro její typ. Chyby v přepisu jsou jednou z nejčastějších a obtížně zjistitelných. Kapitoly 4 a 7 první knihy jsou velmi doporučenou četbou pro všechny studenty, kteří se ucházejí o vynikající známku.