Programovací jazyk Java: kde se začít učit. Kde se používá Java? Platformy a verze. Pole a metody

Vše zdrojové soubory(aka "zdroje") napsané v Javě musí končit příponou .java. Soubor musí obsahovat alespoň jednu definici veřejné třídy.

Pokud existuje definice veřejné třídy, musí být stejná jako název souboru bez přípony. Pokud například zdroj obsahuje třídu Apple, měl by se soubor jmenovat Apple.java. Zdroj může obsahovat neomezený počet neveřejných definic tříd.

V souboru mohou být také tři prvky nejvyšší úrovně známé jako kompilační jednotky:

prohlášení o balíku; například balíček exam.problems;

Výpis importu (výpis importu); například import java.awt.Button; // importuje konkrétní třídu import java.util.*; // importuje celý balíček;

definice třídy; například veřejná třída Test(...).

Formát deklarace balíčku je velmi jednoduchý. Na prvním místě je klíčové slovo balíček a za ním název balíčku. A název balíčku se zase skládá ze sekvence určitých prvků oddělených tečkou. Tato sekvence prvků zobrazuje hierarchii adresářů na disku. Do adresáře s názvem poslední prvek sekvence a třída je nalezena. Zvažte příklad výše: třída s takovou deklarací balíčku je umístěna v adresáři problémů, který se nachází v adresáři zkoušek.

Při pojmenovávání každého prvku sekvence musíte být opatrní: názvy adresářů musí být platné na jakékoli platformě. To znamená, že jednoduše prvky sekvence mohou obsahovat písmena, čísla, podtržítko a symbol dolaru.

Syntax:

Jazyk Java je silně typizovaný, tzn. všechny proměnné, konstanty, výrazy mají svůj typ, který je nutné určit ve fázi překladu programu.

Datový typ určuje

množina hodnot, které může mít proměnná nebo které mohou vyplynout z vyhodnocení výrazu;

soubor operací použitelných pro tyto hodnoty;

smysl těchto operací.

Primitivní datové typy jsou podobné jednoduchým typům používaným v jiných programovacích jazycích.

Při implementaci primitivních typů se nepoužívá objektově orientovaný přístup.

Referenční datové typy se používají pro práci s objekty.

Logický datový typ (boolean) se používá k reprezentaci dvou logických hodnot: true nebo false.

Datový typ znaku (char) se používá k reprezentaci kódů znaků ve dvoubajtech Unicode kódování.

Reálné datové typy se vyznačují přesností reprezentace hodnot:

plovoucí - jednoduchá přesnost (7-8 číslic)

dvojitá - dvojitá přesnost (17 číslic)

Konstanty

Konstanty se obvykle nazývají reprezentace hodnot datových typů v textu programu.

Booleovské konstanty se zapisují pomocí klíčových slov

pravda - "pravda"

nepravda - "nepravda"

Celočíselné konstanty lze zapsat ve třech číselných soustavách:

desítkové(1, 10, 100);

osmičkový (01, 010, 0100);

hexadecimální (0x1, 0x10, 0x100).

Ve výchozím nastavení se shodují celočíselné konstanty typ int.

V případě potřeby použijte konstanty dlouhý typ, měla by být specifikována přípona datového typu „L“.

Java – jazyk od Sun microsystems. Původně byl vyvinut jako jazyk pro programování elektronických zařízení, ale později se začal používat pro psaní serverových softwarových aplikací. Java programy jsou multiplatformní, to znamená, že mohou běžet na jakémkoli operačním systému.

Základy programování v Javě

Java jako objektově orientovaný jazyk se řídí základními principy OOP:

  • dědictví;
  • polymorfismus;
  • zapouzdření.

V centru Javy, stejně jako v jiných OYA, je objekt a třída s konstruktory a vlastnostmi. Začněte se učit programovací jazyk Java je lepší ne s oficiální zdroje a z příruček pro začátečníky. Tyto příručky podrobně popisují možnosti a poskytují příklady kódu. V knihách jako „Jazyk Java programování pro začátečníky“ podrobně vysvětluje základní principy a vlastnosti tohoto jazyka.

Zvláštnosti

Kód programovacího jazyka Java je přeložen do bajtkódu a poté spuštěn na JVM. Převod na bytecode se provádí v Javac, Jikes, Espresso, GCJ. Existují kompilátory, které překládají jazyk C do bytecode Java. C aplikace tedy může běžet na jakékoli platformě.

Syntaxe Java se vyznačuje následujícím:

  1. Názvy tříd musí začínat na velká písmena. Pokud se název skládá z několika slov, pak druhé musí začínat velkými písmeny.
  2. Pokud je k vytvoření metody použito více slov, pak druhé z nich musí začínat velkým písmenem.
  3. Zpracování začíná s hlavní metoda() - je součástí každého programu.

Typy

Programovací jazyk Java má 8 primitivních typů. Jsou uvedeny níže.

  • Boolean je logický typ, který přijímá pouze dvě hodnoty, true a false.
  • Byte je nejmenší celočíselný typ, měří 1 bajt. Používá se při práci se soubory nebo nezpracovanými binárními daty. Má rozsah od -128 do 127.
  • Short má rozsah od -32768 do 32767 a používá se k reprezentaci čísel. Velikost proměnných tohoto typu je 2 bajty.
  • Int také znamená čísla, ale jeho velikost je 4 bajty. Nejčastěji se používá pro práci s celočíselnými daty a byte a short jsou někdy povýšeny na int.
  • Dlouhé se používají pro velká celá čísla. Možné hodnoty se pohybují od -9223372036854775808 do 9223372036854775807.
  • Float a double se používají k označení zlomkových hodnot. Jejich rozdíl je v tom, že plovák je vhodný, když není vyžadován vysoká přesnost ve zlomkové části čísla.
  • Double zobrazí všechny znaky za oddělovačem ".", zatímco float pouze první.
  • Nejpoužívanější řetězec primitivní typ, který se používá k určení řetězců.

Třídy a objekty

Třídy a objekty hrají důležitou roli ve výuce programovacího jazyka Java pro začátečníky.

Třída definuje šablonu pro objekt, který má nutně atributy a metody. K jeho vytvoření použijte klíčové slovo Class. Pokud je vytvořen v samostatný soubor, pak musí být názvy tříd a souborů stejné. Samotný název se skládá ze dvou částí: názvu a přípony.Java.

V Javě můžete vytvořit podtřídu, která zdědí metody rodiče. K tomu se používá slovo extends:

  • třída název_třídy rozšiřuje název_nadtřídy ();

Konstruktor je součástí jakékoli třídy, i když není explicitně specifikován. V tomto případě jej kompilátor vytvoří nezávisle:

  • public class Class( public Class())( ) public Class(String name)( ))

Název konstruktoru je ve výchozím nastavení stejný jako název třídy, má pouze jeden parametr:

  • veřejné štěně (jméno řetězce)

Objekt je vytvořen z třídy pomocí operátoru new():

  • Bod p = nový bod()

Přijímá všechny metody a vlastnosti třídy, s jejichž pomocí interaguje s jinými objekty. Jeden objekt lze použít vícekrát pod různými proměnnými.

    Bod p = nový bod()

    třída TwoPoints (

    public static void main(String args) (

    Bod p1 = nový Bod();

    Bod p2 = nový Bod();

    Objektové proměnné a objekty jsou zcela odlišné entity. Objektové proměnné jsou reference. Mohou ukazovat na jakoukoli proměnnou neprimitivního typu. Na rozdíl od C++ je jejich převod typů přísně regulován.

    Pole a metody

    Pole jsou všechny proměnné spojené s třídou nebo objektem. Ve výchozím nastavení jsou místní a nelze je použít v jiných třídách. Pro přístup k polím použijte operátor „.“:

    • název třídy.proměnná

    Statická pole můžete definovat pomocí klíčového slova static. Taková pole jsou jediným způsobem, jak uložit globální proměnné. To je způsobeno tím, že Java prostě nemá globální proměnné.

    Implementována možnost importu proměnných pro získání přístupu z jiných balíčků:

    • import statického názvu třídy;

    Method je podprogram pro třídy, ve kterých je deklarován. Popsáno na stejné úrovni jako proměnné. Je specifikován jako funkce a může být libovolného typu, včetně void:

    • class Bod(int x, y;

      void init(int a, int b) (

    Ve výše uvedeném příkladu má třída Point celé číslo x a y, metodu init(). K metodám, jako jsou proměnné, se přistupuje pomocí operátoru "."

    • Point.init();

    Vlastnost init nic nevrací, takže je typu void.

    Proměnné

    Ve výukovém programu programovacího jazyka Java zaujímají proměnné zvláštní místo. Všechny proměnné mají specifický typ, určuje požadované místo pro uložení hodnot, rozsah možných hodnot a seznam operací. Před manipulací s hodnotami jsou deklarovány proměnné.

    Několik proměnných může být deklarováno současně. K jejich výpisu se používá čárka:

    • int a, b, c;

    K inicializaci dojde po nebo během deklarace:

    int a = 10, b = 10;

    Existuje několik typů:

    • lokální proměnné (lokální);
    • instance proměnné
    • statické proměnné (statické).

    Lokální proměnné jsou deklarovány v metodách a konstruktorech, jsou vytvářeny při jejich spuštění a po dokončení zničeny. U nich je zakázáno specifikovat modifikátory přístupu a kontrolovat úroveň dostupnosti. Nejsou viditelné mimo deklarovaný blok. V Java proměnné nemají počáteční hodnotu, proto musí být přiřazena před prvním použitím.

    Proměnné instance musí být deklarovány uvnitř třídy. Používají se jako metody, ale lze k nim přistupovat až po vytvoření objektu. Proměnná je zničena, když je zničen objekt. Proměnné instance mají na rozdíl od lokálních výchozí hodnoty:

    • čísla - 0;
    • logika - nepravda;
    • odkazy jsou nulové.

    Statické proměnné se nazývají třídní proměnné. Jejich názvy začínají velkým písmenem a jsou specifikovány modifikátor statický. Používají se jako konstanty, přidá se k nim jeden specifikátor ze seznamu:

    • finále;
    • soukromý;
    • veřejnost.

    Jsou spuštěny na začátku programu a zničeny po zastavení provádění. Stejně jako proměnné instance mají standardní hodnoty, které jsou přiřazeny prázdným proměnným. Čísla mají hodnotu 0, booleovské proměnné mají hodnotu false a odkazy na objekty mají zpočátku hodnotu null. Statické proměnné se nazývají takto:

    • Název třídy.Název proměnné.

    Popelář

    V tutoriálu "Programovací jazyk Java pro začátečníky" je nejzajímavější část o automatickém sběru odpadu.

    V Javě, na rozdíl od jazyka C, není možné ručně odstranit objekt z paměti. Pro tento účel byla zavedena metoda automatické mazání- popelář. Při tradičním mazání pomocí null je odstraněn pouze odkaz na objekt a samotný objekt je odstraněn. Existují metody, jak vynutit shromažďování odpadu, i když se nedoporučují pro normální práci.

    Modul pro automatické odstraňování nepoužívaných objektů pracuje na pozadí a spouští se, když je program neaktivní. Pro vymazání objektů z paměti se program po uvolnění paměti zastaví a přerušená operace se obnoví.

    Modifikátory

    Existují různé typy modifikátorů. Kromě těch, které určují přístupovou metodu, existují modifikátory metod, proměnných a tříd. Metody deklarované jako soukromé jsou dostupné pouze v deklarované třídě. Takové proměnné nelze použít v jiných třídách a funkcích. Veřejné umožňuje přístup do jakékoli třídy. Pokud potřebujete získat třídu Public z jiného balíčku, musíte ji nejprve importovat.

    Chráněný modifikátor je podobný jako public – otevírá přístup k polím třídy. V obou případech lze proměnné použít v jiných třídách. Veřejný modifikátor je ale dostupný naprosto všem a chráněný modifikátor je dostupný pouze zděděným třídám.

    Modifikátor, který se používá při vytváření metod, je statický. To znamená, že vytvořená metoda existuje nezávisle na instancích třídy. Modifikátor Final neřídí přístup, ale spíše indikuje nemožnost další manipulace s hodnotami objektu. Zakazuje změny prvku, pro který je určen.

    Final for fields znemožňuje změnu první hodnoty proměnné:

      public static void mthod(String args) (

      final int Jméno = 1;

      int Name = 2;// vyvolá chybu

    Proměnné s koncovým modifikátorem jsou konstanty. Obvykle jsou psány pouze velkými písmeny. CamelStyle a další metody nefungují.

    Konečná pro metody označuje zákaz změny metody ve zděděné třídě:

      final void myMethod() (

      System.out.printIn(“Ahoj světe”);

    Finální pro třídy znamená, že nemůžete vytvářet potomky tříd:

      závěrečná veřejná třída Třída (

    Abstrakt - modifikátor pro vytváření abstraktních tříd. Žádný abstraktní třída a abstraktní metody mají být dále rozšířeny v dalších třídách a blocích. Modifikátor přechodný stav říká virtuálnímu počítači, aby nezpracovával danou proměnnou. V tomto případě to prostě nebude uloženo. Například přechodné int Name = 100 nebude uloženo, ale int b bude uloženo.

    Platformy a verze

    Existující rodiny programovacího jazyka Java:

    • Standardní vydání.
    • Enterprise Edition.
    • Micro Edition.
    • Karta.

    1. SE je hlavní, široce používaný pro vytváření vlastních aplikací pro individuální použití.
    2. EE je soubor specifikací pro vývoj podnikového softwaru. Obsahuje více funkcí než SE, proto se používá v komerčním měřítku ve velkých a středních podnicích.
    3. ME - určené pro zařízení s omezeným výkonem a pamětí, obvykle mají malou velikost displeje. Takovými zařízeními jsou chytré telefony a PDA, přijímače digitální televize.
    4. Karta – určená pro zařízení s extrémně omezenými výpočetními zdroji, jako jsou čipové karty, SIM karty, bankomaty. Pro tyto účely byly změněny bajtový kód, požadavky na platformu a komponenty knihovny.

    Aplikace

    Programy napsané v programovacím jazyce Java bývají pomalejší a zabírají více paměti RAM. Srovnávací analýza jazyků Java a C ukázala, že C je o něco produktivnější. Po četných změnách a optimalizacích virtuálního stroje Java se zlepšil jeho výkon.

    Aktivně se používá pro aplikace pro Android. Program je zkompilován do nestandardního bajtkódu a spuštěn na virtuálním stroji ART. Pro kompilaci se používá Android Studio. Toto IDE od Google je oficiální pro vývoj pro Android.

    Společnost Microsoft vyvinula vlastní implementaci virtuálního stroje Java MSJVM. Měl rozdíly, které narušovaly základní koncept multiplatformního přístupu – chyběla podpora některých technologií a metod, existovala nestandardní rozšíření, která fungovala pouze na platformě Windows. Microsoft vydal jazyk J#, jehož syntaxe a celkové fungování je velmi podobné Javě. Neodpovídal oficiální specifikaci a nakonec byl odstraněn ze standardní sady Microsoft Visual Studio Developer Toolkit.

    Programovací jazyk a prostředí Java

    Vývoj softwaru se provádí v následujících IDE:

    1. NetBeans IDE.
    2. Eclipse IDE.
    3. IntelliJ IDEA.
    4. JDeveloper.
    5. Java pro iOS.
    6. Geany.

    JDK je distribuován společností Oracle jako vývojová sada Java. Zahrnuje kompilátor, standardní knihovny, nástroje a výkonný systém. Moderní integrovaná vývojová prostředí spoléhají na JDK.

    Je vhodné psát kód v programovacím jazyce Java v Netbeans a Eclipse IDE. Jedná se o bezplatná integrovaná vývojová prostředí, jsou vhodná pro všechny platformy Java. Používá se také pro programování v Pythonu, PHP, JavaScript, C++.

    IntelliJ IDE od Jetbrains je distribuováno ve dvou verzích: bezplatné a komerční. Podporuje psaní kódu v mnoha programovacích jazycích, existují pluginy třetích stran od vývojářů, které implementují více více YAP.

    JDeveloper je další vývoj od společnosti Oracle. Kompletně napsaný v Javě, takže funguje na všech operačních systémech.

Zdrojový soubor Java je textový soubor obsahující jednu nebo více definic tříd. Překladač Java předpokládá

že zdrojový kód programů je uložen v souborech s příponami Java. Kód získaný během procesu překladu pro každou třídu je zapsán do samostatného výstupního souboru s názvem, který se shoduje s názvem třídy a s příponou třídy.

Nejprve v této kapitole napíšeme, odvysíláme a spustíme kanonický program „Hello World“. Poté se podíváme na všechny základní lexikální prvky akceptované překladačem Java: mezery, komentáře, klíčová slova, identifikátory, literály, operátory a oddělovače. Na konci kapitoly budete mít dostatek informací k tomu, abyste se sami orientovali v dobrém Java programu.

Zde je váš první Java program

:

třída HelloWorld(

Systém. ven. println("Ahoj světe");

Abyste mohli pracovat s příklady uvedenými v knize, musíte získat a nainstalovat Java Developers Kit přes síť od Sun Microsystems – balíček pro vývoj aplikací Java (

http://java.sun.com/products/jdk ). Úplný popis obslužných programů balíčku JDK - v Dodatek 1 .

Jazyk Java vyžaduje, aby veškerý programový kód byl obsažen v pojmenovaných třídách. Výše uvedený příklad textu by měl být zapsán do souboru HelloWorld.java. Ujistěte se, že se velká písmena v názvu souboru shodují s písmeny v názvu třídy, kterou obsahuje. Chcete-li přeložit tento příklad, musíte spustit překladač Java - javac, přičemž jako parametr zadejte název souboru se zdrojovým textem:

\> javac HelloWorld.Java

Překladač vytvoří soubor HelloWorld.class s bajtkódem nezávislým na procesoru z našeho příkladu. Pro spuštění výsledného kódu musíte mít Java runtime prostředí (v našem případě je to java program), do kterého je potřeba nahrát novou třídu pro spuštění. Zdůrazňujeme, že je zadán název třídy, nikoli název souboru, ve kterém je tato třída obsažena.

>java HelloWorld

Nebylo vykonáno mnoho užitečné práce, ale ověřili jsme, že nainstalovaný překladač Java a běhové prostředí fungují.

Krok za krokem

HelloWorld je triviální příklad. Nicméně i toto jednoduchý program nováček v jazyceJava se může zdát děsivě složitá, protože vás seznámí s mnoha novými koncepty a podrobnostmi o syntaxi jazyka Podívejme se blíže na každý řádek našeho prvního příkladu a analyzujme prvky, které tvoří program Java.

třída HelloWorld(

Tento řádek používá vyhrazené slovo

třída. Říká překladateli, že budeme definovat novou třídu.Úplná definice třídy se objeví mezi otevírací složenou závorkou na řádku 1 a odpovídající uzavírací složenou závorkou na řádku 5. Složené závorky vJava se používá úplně stejně jako v jazycích C a C++.

public static void main (String args) (

Tento zdánlivě příliš složitý příkladový řetězec je důsledkem důležitého požadavku při navrhování jazyka Java. Jde o to, že v

Java postrádá globální funkce. Vzhledem k tomu, že podobné čáry se objeví ve většině příkladů v první části knihy, podívejme se blíže na každý prvek druhého řádku.

Rozdělením tohoto řetězce na samostatné tokeny se okamžitě setkáme s klíčovým slovem

veřejnost. toto - modifikátor přístupu, což umožňuje programátorovi řídit viditelnost jakékoli metody a libovolné proměnné. V tomto případě modifikátor přístupuveřejnost znamená metodumain je viditelný a přístupný všem třídám. Existují 2 další indikátory úrovně přístupu - soukromé a chráněný, se kterým se blíže seznámíme vkapitola 8 .

Další klíčové slovo je

statický. Toto slovo se používá k deklaraci metod třídy a proměnných používaných pro práci s třídou jako celkem. Metody, které ve své deklaraci používají klíčové slovo static, mohou přímo pracovat pouze s lokálními a statickými proměnnými.

Často budete potřebovat metody, které vracejí hodnotu jednoho nebo druhého typu: např.

int pro celočíselné hodnoty, float - u skutečných nebo název třídy u datových typů definovaných programátorem. V našem případě nám stačí zobrazit řetězec a vrátit hodnotu z metodyhlavní není vyžadováno. Proto byl použit modifikátorprázdnota. Tato problematika je podrobněji rozebrána vkapitola 4 .

Nakonec se dostáváme k názvu metody

hlavní. Není zde nic neobvyklého, pouze všechny existující implementace interpretů Java, které obdržely příkaz k interpretaci třídy, začnou svou práci voláním metody hlavní. Překladač jazyka Java může přeložit třídu, která nemá hlavní metodu. Ale interpret Java spouští třídy bez metody hlavní nemůže.

Všechny parametry, které je třeba předat metodě, jsou uvedeny v páru závorek jako seznam prvků oddělených znaky ";". (středník). Každý prvek seznamu parametrů se skládá z typu a identifikátoru oddělených mezerou. I když metoda nemá žádné parametry, musíte za její název vložit pár závorek. V příkladu, o kterém nyní diskutujeme, je metoda

main má pouze jeden parametr, i když poměrně složitého typu.Řetězec args deklaruje parametr s názvemargs, což je pole objektů - zástupců třídyŘetězec. Vezměte prosím na vědomí hranaté závorky, objevující se za identifikátorem args. Naznačují, že máme co do činění s polem, a ne s jedním prvkem zadaného typu. K diskusi o polích se vrátíme v další kapitole, ale prozatím si povšimněme, že typŘetězec - tohle je třída. O strunách si povíme podrobněji vKapitola 9 .

Systém. ven. prlntln("Ahoj světe!");

Tento řádek provádí metodu

println out objektu. Objekt out je deklarován ve tříděOutputStream a je staticky inicializován ve třídě System. V kapitoly 9 A 13 budete mít možnost seznámit se s nuancemi fungování třídŘetězec a OutputStream.

Závěrečná složená závorka na řádku 4 ukončí deklaraci metody

main a stejná závorka na řádku 5 ukončuje deklaraci třídy HelloWorld.

Základy lexiky

Nyní, když jsme se podrobně podívali na minimální třídu Java, vraťme se a podívejme se na obecnou syntaxi jazyka. Programy pro

Java - je to sbírka mezer, komentářů, klíčových slov, identifikátorů, doslovných konstant, operátorů a oddělovačů.jazyk, který umožňuje vlastní formátování text programu. Aby program správně fungoval, není potřeba jeho text nijak zvlášť zarovnávat. Například třídaHelloWorld může být napsán ve dvou řádcích nebo jakýmkoli jiným způsobem, který chcete. A bude to fungovat úplně stejně za předpokladu, že mezi jednotlivými tokeny bude alespoň jedna mezera, znak tabulátoru nebo znak nového řádku (mezi kterými nejsou žádné operátory ani oddělovače).

Komentáře

Přestože komentáře nemají žádný vliv na spustitelný kód programu,

na správné použití ukázalo se, že jsou velmi významnou součástí výchozího textu. Existují tři typy komentářů: jednořádkové komentáře, víceřádkové komentáře a konečně dokumentační komentáře. Jednořádkové komentáře začínají znaky // a končí na konci řádku. Tento styl komentování je užitečný pro zveřejňování příspěvků stručná vysvětlení na jednotlivé řádky kódu:

a = 42; // Pokud

42 - odpověď, jaká byla tedy otázka?

Pro podrobnější vysvětlení můžete použít komentáře umístěné na několika řádcích, začínající text komentáře znaky /* a končící znaky */ V tomto případě bude veškerý text mezi těmito dvojicemi znaků považován za komentář a překladatel to bude ignorovat.

* Tento kód je trochu komplikovaný...

*Pokusím se vysvětlit:

Třetí, speciální tvar komentáře, určené pro servisní program

javadockterý používá komponenty Java translator k automatickému generování dokumentace pro rozhraní tříd. Konvence používaná pro tento typ komentáře je umístit dokumentující komentář před deklaraci veřejné třídy, metody nebo proměnné., musíte jej začít znaky /** (lomítko a dvě hvězdičky). Takový komentář končí úplně stejně jako pravidelný komentář- symboly */. Program javadoc dokáže v dokumentujících komentářích rozpoznat některé speciální proměnné, jejichž názvy začínají symbolem @. Zde je příklad takového komentáře:

* Tato třída dokáže úžasné věci. Doporučujeme každému, kdo

* chce napsat ještě pokročilejší třídu, berte to jako

* základní.

* @viz Java. applet. Applet

* © autor Patrick Naughton

class CoolApplet rozšiřuje Applet ( /**

* Tato metoda má dva parametry:

key je název parametru.je hodnota jmenovaného parametruklíč.

*/ void put (klíč řetězce, hodnota objektu) (

Vyhrazená klíčová slova

Vyhrazená klíčová slova jsou speciální identifikátory daného jazyka

Java se používá k identifikaci vestavěných typů, modifikátorů a ovládacích prvků provádění programu. Dnes v jazyce J ava má 59 vyhrazených slov (viz tabulka 2). Tato klíčová slova spolu se syntaxí operátorů a oddělovačů jsou zahrnuta v popisu jazykaJáva. Mohou být použity pouze pro zamýšlený účel a nelze je použít jako identifikátory pro názvy proměnných, tříd nebo metod.

Tabulka 2

Vyhrazená slova Java

Všimněte si, že slova

byvalue, cast, const, future, generic, goto, inner, operator, external, rest, varrezervováno v Jáva, ale dosud nepoužitý navíc v Jáva existují vyhrazená jména metod (tyto metody jsou zděděny každou třídou a nelze je použít s výjimkou případů explicitního přepsání metod třídy Objekt).

Tabulka 3

Názvy rezervovaných metod

Jáva

Identifikátory

Identifikátory se používají k pojmenování tříd, metod a proměnných. Identifikátorem může být libovolná posloupnost malých a velkých písmen, číslic a symbolů _ (podtržítko) a $ (dolar). Identifikátory by neměly začínat číslem, aby si je překladatel nezaměnil s číselnými doslovnými konstantami, které budou popsány níže.

Java - jazyk rozlišující velká a malá písmena. To znamená, že např. Hodnota a VALUE - různé identifikátory.

Doslovy

Konstanty v

Java jsou dány jejich doslovným zastoupením. Celá čísla, float, booleans, znaky a řetězce mohou být umístěny kdekoli ve zdrojovém kódu. O typech bude řeč vkapitola 4 .

Celočíselné literály

Celá čísla jsou typ používaný v pravidelné programy nejčastěji. Jakákoli celočíselná hodnota, například 1, 2, 3, 42, je celočíselný literál. Tento příklad ukazuje desetinná čísla, tedy čísla se základem 10 – přesně ta, která používáme každý den mimo svět počítačů. Kromě desetinných čísel lze jako celočíselné literály použít také čísla se základem 8 a 16 – osmičková a šestnáctková. Java rozpozná osmičková čísla tak, že je uvede úvodní nulou. Normální desetinná čísla nemohou začínat nulou, takže použití programu je externí platné číslo 09 způsobí při překladu chybovou zprávu, protože 9 není v rozsahu 0.

7, platí pro osmičkové číslice. Hexadecimální konstanty se odlišují počátečními znaky nula-x (0x nebo 0X). Rozsah hexadecimálních číselných hodnot je 0..15 a jako čísla pro hodnoty 10..Používá se 15 písmen od A do F (nebo od a do F). Pomocí hexadecimálních čísel můžete stručně a jasně vyjádřit počítačově přívětivé hodnoty, například psaním Oxffff místo 65535.

Celočíselné literály jsou hodnoty typu

int, což je in Java je uložena ve 32bitovém slově. Pokud požadujete hodnotu větší než přibližně 2 miliardy, musíte použít konstantní likedlouho. V tomto případě bude číslo uloženo v 64bitovém slově. U čísel s jakýmkoli výše uvedeným základem můžete vpravo přiřadit malé nebo velké písmenoL, což znamená, že dané číslo je typudlouho. Například Ox7ffffffffffffffL nebo9223372036854775807L je největší hodnota pro řadu typů dlouho.

Literály s pohyblivou řádovou čárkou

Čísla s plovoucí desetinnou čárkou představují desetinné hodnoty, které mají zlomková část. Mohou být zapsány v pravidelných nebo exponenciálních formátech. V obvyklém formátu se číslo skládá z počtu desetinných číslic, za nimiž následuje desetinná čárka a následující desetinné číslice ve zlomkové části. Například 2.0, 3.14159 a .6667 jsou platné hodnoty pro čísla s plovoucí desetinnou čárkou zapsaná v standardní formát. V exponenciálním formátu po uvedené prvky Dodatečně je uvedeno desetinné pořadí. Pořadí se určuje kladně nebo záporně desetinný, za symbolem E nebo e Příklady čísel v exponenciálním formátu: 6.022e23, 314159E-05, 2e+100. V

S plovoucími objekty Java se ve výchozím nastavení zachází jako s dvojitými. Pokud požadujete typovou konstantufloat, symbol F nebo f je třeba přidat napravo od literálu. Pokud jste fanouškem redundantních definic, můžete přidat k literálům jako dvojitý znak D nebo d. Výchozí hodnoty typudouble jsou uloženy v 64bitovém slově, méně přesné hodnoty typu float - v 32bitové verzi.

Booleovské literály

Booleovská proměnná může mít pouze dvě hodnoty -

pravda a nepravdivý (nepravdivý). Booleovské hodnoty pravda a false nejsou převedeny na nic číselné znázornění. Klíčové slovo true v Javě se nerovná 1 a false se nerovná 0. In V Javě lze tyto hodnoty přiřadit pouze booleovským proměnným nebo je použít ve výrazech s logickými operátory.

Charakterové literály

Symboly v

Java - toto jsou indexy v tabulce symbolůUNICODE. Jsou to 16bitové hodnoty, které lze převést na celá čísla a na které lze použít celočíselné aritmetické operátory, jako je sčítání a odčítání. Znakové literály jsou umístěny uvnitř dvojice apostrofů (" "). Všechny viditelné symboly tabulkyASCII lze přímo vložit do dvojice apostrofů: -"a", "z", "@". Pro znaky, které nelze zadat přímo, je k dispozici několik escape sekvencí.

Tabulka 3.

2. Únikové sekvence

Kontrolní sekvence

Popis

Osmičkový znak

(ddd)

Hexadecimální znak

UNICODE (xxxx)

Apostrof

Obrácené lomítko

Návrat vozíku

Odřádkování (odřádkování, nový řádek)

Překlad stránky

(zdroj formuláře)

Horizontální tabulka

(záložka)

Vraťte se o krok zpět

(backspace)

Řetězcové literály

Řetězcové literály v

Java vypadá úplně stejně jako mnoho jiných jazyků - je to libovolný text uzavřený do dvojice uvozovek (""). Ačkoli malá písmena vJava jsou implementovány velmi jedinečným způsobem(Java vytváří objekt pro každý řádek), toto se externě neobjevuje. Příklady řetězcových literálů:"Ahoj Svět!"; "dva\řetězce; \A to je v uvozovkách\"". Všechny sekvence escape a osmičkové/hexadecimální zápisy, které jsou definovány pro znakové literály, fungují v řetězcích úplně stejně. Řetězcové literály vJava kódy musí začínat a končit na stejném řádku zdrojového kódu. V tomto jazyce, na rozdíl od mnoha jiných, neexistuje žádná escape sekvence pro pokračování řetězcového literálu na novém řádku.

Operátoři

Operátor je něco, co provádí nějakou akci s jedním nebo dvěma argumenty a vytváří výsledek. Syntakticky jsou operátory nejčastěji umístěny mezi identifikátory a literály. O operátorech bude podrobně pojednáno v

Kapitola 5 , jejich seznam je uveden v tabulce 3. 3.

Tabulka 3.

3. Jazykové operátory Jáva

Separátory

Pouze několik skupin znaků, které se mohou objevit v syntakticky správném programu Java, stále zůstává nepojmenováno. Jedná se o jednoduché oddělovače, které ovlivňují vzhled a funkčnost programového kódu.

Jméno

K čemu slouží?

závorky

Zvýrazňují seznamy parametrů v deklaraci metody a volání, používají se také k nastavení priority operací ve výrazech, zvýraznění výrazů v příkazech řízení provádění programu a v operátorech přetypování.

rovnátka

hranaté závorky

Používá se v deklaracích polí a při přístupu k jednotlivým prvkům pole.

středník

Odděluje operátory.

Odděluje identifikátory v deklaracích proměnných, používá se také k propojení příkazů v hlavičce smyčky

pro.

Odděluje názvy balíčků od názvů dílčích balíčků a tříd a používá se také k oddělení názvu proměnné nebo metody od názvu proměnné.

Proměnné

Proměnná je hlavním prvkem ukládání informací v programu Java. Proměnná je charakterizována kombinací identifikátoru, typu a rozsahu. V závislosti na tom, kde proměnnou deklarujete, může být lokální, například pro kód uvnitř cyklu for, nebo to může být proměnná instance třídy, která je dostupná všem metodám v této třídě. Místní obory jsou deklarovány pomocí složených závorek.

Variabilní prohlášení

Základní forma deklarace proměnné je:

identifikátor typu [ = hodnota] [, identifikátor [ = hodnota

7...];

Typ je buď jeden z vestavěných typů, tj.

byte, short, int, long, char, float, double,boolean nebo název třídy nebo rozhraní. Všechny tyto typy podrobně proberemedalší kapitola . Níže je uvedeno několik příkladů deklarování proměnných různých typů. Všimněte si, že některé příklady zahrnují inicializaci počáteční hodnoty. Proměnné, pro které nejsou zadány žádné počáteční hodnoty, se automaticky inicializují na nulu.

Níže uvedený příklad vytvoří tři proměnné odpovídající stranám pravoúhlého trojúhelníku a potom

C Pomocí Pythagorovy věty se vypočítá délka přepony, v tomto případě číslo 5, velikost přepony klasického pravoúhlého trojúhelníku o stranách 3-4-5.

proměnné třídy (

public static void main (String args) (

= Math.sqrt(a* a + b* b);

System.out.println("c = "+ c);

Váš první krok

Už jsme toho dosáhli hodně: nejprve jsme psali malý program v jazyce

Java a podrobně se podíval, z čeho se skládá (bloky kódu, komentáře). Seznámili jsme se se seznamem klíčových slov a operátorů, jejichž účel bude podrobně vysvětlen v následujících kapitolách. Nyní jste schopni samostatně rozlišit hlavní části jakéhokoli programu Java a jste připraveni začít čístkapitola 4 , která podrobně pokrývá jednoduché datové typy.

Programování je psaní zdrojového kódu programu v jednom z programovacích jazyků. Existuje mnoho různých programovacích jazyků, díky nimž vznikají všemožné programy, které řeší určitý okruh problémů. Programovací jazyk je soubor rezervovaných slov, pomocí kterých je napsán zdrojový kód programu. Počítačové systémy nejsou (zatím) schopny porozumět lidské řeči, tím méně lidské logice (zejména ženské), proto jsou všechny programy 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řevádějí zdrojový kód programu do strojového kódu, jsou velmi složité a zpravidla vznikají desítky měsíců a desítky programátorů. Takové systémy se nazývají integrované aplikační programovací prostředí nebo nástroje.

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

Pravděpodobně jste více než jednou slyšeli termín „program je napsán pro Windows nebo Linux nebo Unix“. Faktem je, že programovací prostředí při převodu programovacího jazyka do strojového kódu mohou být dvojího typu – kompilátory a interprety. Kompilace nebo interpretace programu určuje, jak bude program pokračovat v provádění na zařízení. Programy napsané v Javě vždy fungují na základě interpretace, zatímco programy napsané v C/C++ se kompilují. Jaký je rozdíl mezi těmito dvěma metodami?

Překladač po napsání zdrojového kódu v době kompilace načte celý zdrojový kód programu najednou a převede jej do strojového kódu. Poté program existuje jako jeden celek a lze jej spustit pouze v operačním systému, ve kterém byl napsán. Proto programy napsané pro Windows nemohou fungovat v prostředí Linuxu a naopak. Překladač provádí program krok za krokem nebo řádek po řádku pokaždé, když je spuštěn. Při interpretaci se nevytváří spustitelný kód, ale virtuální kód, který je následně spuštěn virtuální java autem. Proto na jakékoli platformě - Windows nebo Linux, mohou být programy Java spouštěny stejně, pokud je v systému virtuální stroj Java, který se také nazývá Runtime System.

Objektově orientované programování

Objektově orientované programování je postaveno na bázi objektů, což je trochu podobné našemu světu. Když se podíváte kolem sebe, určitě najdete něco, co vám pomůže jasněji pochopit model takového programování. Například teď sedím u svého stolu a píšu tuto kapitolu na počítači, který se skládá z monitoru, systémové jednotky, klávesnice, myši, reproduktorů a tak dále. Všechny tyto části jsou objekty, které tvoří počítač. S vědomím toho je velmi snadné formulovat jakýsi zobecněný model fungování celého počítače. Pokud nerozumíte složitosti vlastností softwaru a hardwaru počítače, pak můžeme říci, že objekt System Unit provádí určité akce, které jsou zobrazeny objektem Monitor. Objekt Keyboard zase může upravit nebo dokonce nastavit akce pro objekt System Unit, které ovlivňují činnost objektu Monitor. Prezentovaný proces velmi dobře charakterizuje celý objektově orientovaný programovací systém.

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

V objektově orientovaném programování je vše mnohem jednodušší, vraťme se k příkladu počítačový systém. Řekněme, že už se nespokojíte se sedmnáctipalcovým monitorem. Můžete jej klidně vyměnit za dvacetipalcový monitor, samozřejmě pokud máte jistotu materiální zdroje. Samotný proces výměny nebude znamenat velké problémy, pokud nebudete muset vyměnit ovladač, setřít prach zpod starého monitoru 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 upgradovat nebo nahradit.

Objektově orientované programování velmi snadno a přehledně odráží podstatu řešeného problému a hlavně umožňuje odstranit nepotřebné objekty bez poškození celého programu a nahradit tyto objekty novějšími. V souladu s tím se výrazně zjednoduší celková čitelnost zdrojového kódu celého programu. Je také důležité, že stejný kód lze použít ve zcela odlišných programech.

třídy

Jádro každého Java programy jsou třídy, na kterých je založeno objektově orientované programování. V podstatě už víte, co jsou třídy, ale ještě si to neuvědomujete. V předchozí části jsme hovořili o objektech a jako příklad jsme použili strukturu celého počítače. Každý objekt, ze kterého je počítač sestaven, je zástupcem své třídy. Například třída Monitor sdružuje všechny monitory bez ohledu na jejich typy, velikosti a schopnosti a jeden konkrétní monitor stojící na vašem stole je objektem třídy monitorů.

Tento přístup velmi usnadňuje modelování všech druhů programovacích procesů, což usnadňuje řešení problémů. Například existují čtyři objekty po čtyřech různé třídy: monitor, systémová jednotka, klávesnice a reproduktory. Chcete-li přehrát zvukový soubor, musíte k zadání příkazu použít klávesnici systémová jednotka, budete na monitoru vizuálně pozorovat samotnou akci zadání příkazu a v důsledku toho budou reproduktory reprodukovat zvukový soubor. To znamená, že každý předmět je součástí určitá třída a obsahuje všechny nástroje a schopnosti dostupné této třídě. Objektů jedné třídy může být tolik, kolik je nutné k vyřešení problému.

Metody

Když byl uveden příklad přehrávání zvukového souboru, bylo zmíněno, že byl zadán příkaz nebo zpráva, na základě které byly provedeny určité akce. Úkol provádění akcí je řešen pomocí metod, které má každý objekt. Metody jsou sada příkazů, které lze použít k provádění určitých akcí s objektem.

Každý objekt má svůj vlastní účel a je určen k řešení určitého okruhu problémů pomocí metod. K čemu by byl například objekt Keyboard, kdybyste nemohli mačkat klávesy a přesto mohli vydávat příkazy? Objekt Keyboard má určitý počet kláves, pomocí kterých uživatel získává kontrolu nad vstupním zařízením a může je dávat potřebné příkazy. Takové příkazy jsou zpracovávány pomocí metod.

Například stisknete Klávesa Esc zrušit jakékoli akce a tím zadat příkaz metodě přiřazené k této klávese, která řeší tento problém na softwarové úrovni. Okamžitě vyvstává otázka o počtu metod objektu Keyboard, ale mohou existovat různé implementace - jak od definování metod pro každý z klíčů (což je obecně nerozumné), tak po vytvoření jedné metody, která bude monitorovat obecný stav klávesnice. To znamená, že tato metoda sleduje, zda byla stisknuta klávesa, a podle toho, která klávesa je aktivována, se pak rozhodne, co dělat.

Vidíme tedy, že každý z objektů může mít k dispozici sadu metod pro ř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í všechny metody, které vytvoříte, patřit do určité třídy nebo být její součástí.

Syntaxe a sémantika jazyka Java

Mluvit a číst jakýmkoli jazykem cizí jazyk, musíte se naučit abecedu a gramatiku tohoto jazyka. Podobný stav je pozorován při studiu programovacích jazyků, s jediným rozdílem, zdá se mi, že tento proces je poněkud jednodušší. Než však začnete psát zdrojový kód programu, musíte nejprve vyřešit zadaný problém v jakékoli formě, která vám vyhovuje.

Vytvořme určitou třídu zodpovědnou například za telefon, který bude mít pouze dvě metody: zapínání a vypínání právě tohoto telefonu. Protože v současné době neznáme syntaxi jazyka Java, napíšeme třídu Phone v abstraktním jazyce.

Třídní telefon
{
Metoda Enable().
{
// operace pro zapnutí telefonu
}
Metoda Disable().
{
// operace pro vypnutí telefonu
}
}

Třída Phone by mohla vypadat nějak takto. Všimněte si, že složené závorky označují začátek a konec těla třídy, metody nebo libovolné sekvence dat. To znamená, že závorky označují příslušnost k metodě nebo třídě. Pro každou otevírací závorku musí existovat uzavírací závorka. Aby nedošlo k záměně, jsou obvykle umístěny na stejné úrovni v kódu.

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 kterou následuje název samotné třídy. V našem případě je to Telefon. Jen pár slov k záznamovému registru. Téměř ve všech programovacích jazycích je důležité ukládat jména do rejstříku, ve kterém byla zapsána. Pokud jste napsali Telefon, pak takový pravopis jako telefon nebo TELefoN vygeneruje chybu při kompilaci. Jak jsme psali na začátku, takto bychom měli psát i nadále.

Vyhrazená nebo klíčová slova jsou zapsána ve svém vlastním specifickém případě a nemůžete je použít tak, že je pojmenujete jako metody, třídy, objekty a tak dále. Mezery mezi slovy nezáleží, protože je kompilátor jednoduše ignoruje, ale jsou důležité pro čitelnost kódu.

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

Obě metody mají závorky on(), do kterých lze zapisovat parametry, jako je on(int time) nebo on(int time, int time1). Pomocí parametrů dochází k jakémusi propojení mezi metodami a vnější svět. O metodě on(int time) se říká, že přebírá časový parametr. k čemu to je? Například chcete, aby se telefon zapnul v určitou dobu. Poté bude celočíselná hodnota v parametru time předána do těla metody a na základě přijatých dat dojde k zapnutí telefonu. Pokud jsou závorky prázdné, pak metoda nepřijímá žádné parametry.

Komentáře

Ve třídě Telefon je v těle obou metod za dvěma lomítky záznam: //. Tato položka označuje komentáře, které budou kompilátorem ignorovány, ale jsou potřebné pro čitelnost kódu. Jak více informací Pokud budete při psaní programu komentovat, tím spíše si za rok vzpomenete, na čem jste celou tu dobu pracovali.

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

//, /*…*/ A /**…*/

Komentáře napsané pomocí operátoru // se musí objevit na jednom řádku:

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

Komentáře používající operátory /*…*/ mohou obsahovat více řádků. Na začátek komentáře vložte /* a na konec, když dokončíte komentování kódu, vložte operátor */. Poslední typ 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

Pro nastavení libovolné hodnoty má Java datové typy. 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, mluvilo se o předání hodnoty metodě. Tato hodnota udávala čas, kdy by se měl telefon zapnout. Specifikátor int určuje typ časové hodnoty. Java 2 ME má šest datových typů.

Byte – malé celé číslo od –128 do 128;
short – krátké celé číslo v rozsahu od –32768 do 32767;
int – obsahuje libovolnou celočíselnou hodnotu od –2147483648 do 2147483647;
long – velmi velká celočíselná hodnota, od –922337203685475808 do 9223372036854775807;
char je znaková konstanta Unicode. Rozsah tohoto formátu 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 logický typ, který má pouze dvě hodnoty: false a true. Tento typ se často používá ve smyčkách, o kterých bude řeč později. Význam je velmi jednoduchý – pokud máte v kapse peníze, má to být pravda, a pokud ne, pak je to lež. Máme-li tedy peníze, jdeme do obchodu pro chleba nebo pivo (podtrhni, co se sluší), když nejsou peníze, zůstáváme doma. To znamená, že jde o logickou hodnotu, která přispívá k výběru další akce váš program.

Něco oznámit požadovaná hodnota použitý záznam je:

Int čas;
dlouhý BigTime;
char slovo;

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

Mt čas, čas1, čas2;

Nyní vylepšíme naši třídu Telefon tím, že do ní přidáme nějaké hodnoty. Už nepotřebujeme metody on() a off(), pojďme přidat 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á plochu zobrazení
vord oblast()
{
S = w*h;
}
}

Máme tedy tři proměnné S, w a h, které jsou zodpově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 názorná a snadno pochopitelná. Tělo metody Area() se našlo 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 plochy displeje tohoto telefonu .

Nyní jsme se přiblížili operátorům jazyka Java, s jejichž pomocí můžete provádět nejrůznější operace. Operátoři jazyka Java, stejně jako jiných programovacích jazyků, mají své vlastní účely. Existují tedy aritmetické operátory, inkrementační 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 násobení „*“, dělení „/“, sčítání „+“ a odčítání „-“ používaných v matematice. Existuje operátor dělení modulo „%“ a na první pohled mírně matoucí situace s rovným operátorem „=“. Operátor se rovná se v programovacích jazycích nazývá operátor přiřazení:

Zde přiřadíte proměnnou x hodnotu 3 a operátor „rovná se“ v programovacích jazycích odpovídá zápisu dvou po sobě jdoucích operátorů „rovná se“: „==“. Podívejme se na příklad toho, co dokážou 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, tedy 8.

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

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

Operátory sčítání a odčítání mají stejný účel jako v matematice. Záporná čísla také souvisí.

Operátory dekrementace „––“ a inkrementace „++“ jsou velmi specifické, ale velmi jednoduché. Při programování často nastanou situace, kdy potřebujete zvýšit nebo snížit hodnotu o jednu. K tomu často dochází v cyklech. Operace zvýšení zvýší proměnnou o jednu.

Int x = 5;
x++;
// Zde se x již rovná 6

Operace dekrementace sníží proměnnou o jednu.

Int x = 5;
x--;
// x se rovná 4

Operace zvýšení a snížení mohou být post a prefix:

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

V posledním řádku kódu se nejprve přiřadí hodnota x k y, což je hodnota 5, a teprve potom se proměnná x zvýší o jedničku. Ukazuje se, že:

Přírůstek předpony má tvar:

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

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

Relační operátory

Relační operátory umožňují otestovat, zda jsou obě strany výrazu stejné. Existuje operátor rovnosti "==", operátory menší než "<» и больше «>", menší nebo rovno "<=» и больше или равно «>=“, stejně jako operátor negace „!=“.
9 == 10;

Tento výraz není pravdivý, devět se nerovná desítce, takže hodnota tohoto výrazu je nepravdivá.

Zde naopak operátor negace označuje nerovnost výrazu a hodnota bude pravdivá. Operátory větší než, menší než, větší nebo rovný a menší než 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ý symboly „&&“ a operátor „OR“ označený dvěma lomítky „||“. Existuje například výraz:

A*B &&B*C;

Pokud jsou pravdivé pouze obě části výrazu, je hodnota výrazu považována za pravdivou. Pokud je jedna z částí nepravdivá, pak hodnota celého výrazu bude nepravdivá.
Na rozdíl od operátoru „&&“ existuje operátor „||“, který se ne bezdůvodně nazývá „OR“.

A*B || B*C;

Pokud je nějaká část výrazu pravdivá, pak je pravdivý celý výraz. Oba operátory lze kombinovat v jednom výrazu, například:

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

S pomocí tohoto výrazu jsem vás, jak se mi zdá, přivedl do potíží, že? Faktem je, že v Javě, stejně jako v matematice, existuje priorita nebo takzvaná hierarchie operátorů, pomocí které se určuje, který z operátorů je důležitější, a proto se kontroluje jako první. Zvažme použití seznamu priorit všech dostupných operátorů jazyka 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 vyšší a důležitější.

Účel, vlastnosti a výhody Eclipse

Eclipse je rozšiřitelné IDE (integrované vývojové prostředí). IDE je pohodlně organizovaná sada nástrojů nezbytných pro práci na softwarovém projektu.

Eclipse je univerzální platforma, kterou lze použít k vývoji aplikací v libovolném programovacím jazyce (např jazyk Python po navázání spojení Pydev(), ale zpočátku je rodným jazykem Eclipse Java (ve které je mimochodem napsáno i samotné Eclipse).

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

  1. Víceplatformní. Eclipse běží na všech běžných platformách: Windows, Linux a MacOS X. Ještě důležitější je, že jeho funkčnost je na každé z těchto platforem stejná.
  2. Všestrannost a rozšiřitelnost. Eclipse poskytuje možnost používat různé nástroje vyvinuté programátory třetích stran.
  3. Otevřeno a zdarma. Eclipse je projekt OpenSource (tj zdrojové kódy jsou dostupné komukoli a kdokoli se může zapojit do vývoje tohoto nástroje). Eclipse má aktivní komunitu, která neustále pracuje na vylepšování programu a rozšiřování jeho možností.

Pracovní prostor Eclipse

První věc, kterou uvidíte, když spustíte Eclipse, je dialogové okno, které vám umožní vybrat, kde bude umístěn pracovní prostor. Pracovní plocha je adresář, do kterého bude uložena vaše práce.

Po výběru pracovního prostoru se na obrazovce zobrazí domovská stránka s návrhy na zobrazení výukových programů, příkladů atd. Vyberte Workbench a dostanete se do okna pracovní prostředí(Workbench), ve kterém bude probíhat vaše další práce.

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

Výkon– jedná se o malou sekci v pracovním prostoru, která slouží k procházení určitou kategorií objektů (jako jsou zdroje nebo balíčky), otevírání editorů a zobrazení vlastností aktivních editorů. Například zobrazení Navigátor zobrazuje projekty a další zdroje a zobrazení Záložky zobrazuje všechny záložky v pracovní ploše spolu s názvy souborů, ke kterým jsou tyto záložky přidruženy. Obrázek ukazuje pravý horní roh pracovní plochy s aktivním pohledem Obrys.

Všechny změny provedené v pohledech se okamžitě uloží.

Dalším typem vizuálních komponent Workbench je redakce, které se používají k zobrazení a úpravě nějakého zdroje (například kódu programu). Když vyberete zdroj, zobrazí se příslušný editor. Například otevřete libovolný textový dokument (s příponou .txt) pomocí příkazu Soubor --> Otevřít soubor... a uvidíte vestavěný editor prostého textu. Pokud v tomto editoru něco napíšete, na kartě, kde je zapsán název souboru, se objeví hvězdička. To znamená, že editor obsahuje neuložené změny. Uloží se, 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í plochy pomocí příkazu Okno --> Zobrazit pohled. Místo jejich přidávání po jednom je však pohodlnější přepnout projekci (perspektivu). Projekce(nebo perspektivní) je sada pohledů a editorů speciálně vybraných k provádění konkrétního úkolu. Po spuštění Eclipse se otevře perspektiva Java, nakonfigurovaná tak, aby skutečně psala program. Projekce Debug se často používá k ladění programu. Projekci můžete přepnout pomocí příkazu Okno --> Otevřít perspektivu. Název aktuální projekce se zobrazí v pravém horním rohu pracovní plochy (viz obrázek).

První Java program

Než začnete programovat, musíte vytvořit projekt, ve kterém 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 okně, které se objeví, vyberte Java Project a klikněte na Další. Zadejte název projektu. Upozorňujeme, že v adresáři, který jste zadali jako pracovní prostor, se vytvoří složka s názvem vašeho projektu (pokud samozřejmě nezměníte nastavení v tomto okně, což neuděláme poprvé). Klikněte na tlačítko "Hotovo".

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

Pokud jste projekt neodstranili, můžete do něj přidávat soubory a složky pomocí příkazů kontextové nabídky Nový --> Soubor a Nový --> Složka respektive. Pokud je projekt velký, potřebuje strukturu podsložek. V případě Java projektu je ale vše poněkud jinak. Faktem je, že fragmenty Java programu jsou seskupeny do balíčky a pro každý balíček je vytvořen samostatná složka. Balíček se vytvoří příkazem Nový --> Balíček. Také je potřeba vymyslet název balíčku. V důsledku toho se ve složce projektu vytvoří nová složka s tímto názvem. Můžete zkontrolovat.

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

Java program se vždy skládá z jednoho nebo více třídy. Třídu můžete vytvořit pomocí příkazu Nová --> Třída v kontextové nabídce zobrazení Navigátor (nebo Průzkumník balíčků, na tom nezáleží). Při vytváření třídy je potřeba vybrat balíček, ke kterému bude patřit (vyberte balíček, který jste právě vytvořili) a vymyslet pro něj název. Je obvyklé začínat názvy tříd velkým písmenem. Pokud toto pravidlo slušného chování nebudete dodržovat, Eclipse vydá varování, ale nic špatného se nestane.

Pro naše účely je užitečné zaškrtnout políčko vedle "Jaké metody chcete vytvořit ve své třídě?" naproti možnosti 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 z tříd programu měla metodu s touto hlavičkou. To je to, co se provede při spuštění programu.

V důsledku našich akcí se ve složce balíčku vytvoří 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 takového (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 psát příkazy, které tvoří tělo funkce// TODO Automaticky generovaný útržek metody

. Napíšeme pouze jeden příkaz, který na obrazovce zobrazí klasický řádek „Ahoj, světe!“:

Zbývá pouze spustit program. Chcete-li to provést, spusťte příkaz Spustit --> Spustit a zobrazte dialogové okno s netriviálním nastavením spouštění. Na levé straně tohoto okna musíte vybrat 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í (názvy našeho projektu a naší třídy by se měly objevit na záložce Main na pravé straně okna). Kromě toho je programátorovi nabízeno několik dalších záložek. Například na druhém z nich - Argumenty - se navrhuje zadat parametry příkazového řádku (pokud je program navržen pro volání z příkazového řádku s parametry). Pro náš jednoduchý program není potřeba nic dalšího specifikovat. Stačí kliknout na tlačítko Spustit.

Výsledkem činnosti programu je výstup dat do tzv. konzole. V operačním systému MS DOS sloužila jako konzole celá obrazovka monitoru. Eclipse nám otevře pohled Console, ve kterém (pokud je vše provedeno správně) se zobrazí řádek „Ahoj, světe!“.

- výsledek výstupu našeho programu. Nyní k restartování programu (pokud se například rozhodneme v něm provést nějaké změny nebo jej potřebujeme ukázat učiteli), můžeme jít více snadný způsob

- spusťte příkaz Run --> Run Last Launched (spusťte znovu předchozí aplikaci) nebo jednoduše stiskněte Ctrl + F11.

Základní syntaxe Java

Definice

Operand je hodnota zapojená do operace.

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

Výraz je posloupnost operací a volání metod prováděných v určitém pořadí (podle priority operací, s přihlédnutím k závorkám), které při výpočtu dávají určitou hodnotu. Proměnná je pojmenovaná oblast paměti počítače, do které může program ukládat data určitého typu (tzv proměnná hodnota

) a přistupovat k těmto údajům pomocí názvu proměnné.

Koncepce programu a algoritmu (opakování)

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. V reálných programech je lze získat i ze souborů, databází, sítí, pocházet přímo z různých senzorů atp.

Výstupní data (výsledek programu) se nejčastěji zobrazují na obrazovce, ale lze je také uložit do souboru či databáze, případně odeslat do sítě. Vestavěné programy generují speciální řídicí sekvence jako výstupní data, která nutí zařízení, ke kterému je program připojen, provést nějakou akci.

Když začínáte psát program, MUSÍTE OKAMŽITĚ POCHOPIT:

  1. Proč je tento program vůbec potřeba (co obecně dělá)?
  2. Jaký vstup 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 programátorského myšlení, ale dokud neexistuje odpověď na tři předchozí otázky, nemá smysl s tím začínat.

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

  1. Příjem vstupních dat.
  2. Implementujte algoritmus pro převod vstupních dat na výstupní data.
  3. Vytvořte výsledek programu (výstupní data): zobrazte je na obrazovce, přenášejte po síti 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, z jakých částí se bude program skládat, jak tyto části budou vzájemně interagovat, zobrazí se různé aspekty struktura a chování programu ve formě diagramů atd.). Ale v každém případě začněte programovat, aniž byste porozuměli vstupním a výstupním datům a aniž byste obecně pochopili podstatu algoritmu nesmyslné. A promyslete si alespoň obecně podstatu algoritmu, aniž byste znali vstupní a výstupní data nemožné.

Cvičení proto vždy začínejte definováním vstupních a výstupních dat. Pokud máte v této záležitosti nějaké potíže, kontaktujte svého učitele.

Literatura k tématu:

Základní konstrukce algoritmu (opakování)

Pozor! V této fázi školení byste již měli mít znalosti na toto téma. Pokud tam nejsou a materiály k revizi jsou nejasné nebo nedostatečné, s úkoly si neporadíte!

Je naléhavá potřeba nahlédnout do literatury na toto téma.

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

Jednotlivé kroky algoritmu (bez ohledu na to, jak je napsán) ​​jsou vzájemně propojeny pomocí tří standardních konstrukcí, které jsou implementovány naprosto ve všech programovacích jazycích:

    Sekvenční provádění. 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 provádí ta či ona větev programu.

    Cykly. Sled kroků programu se provede několikrát. Smyčka je v podstatě založena na větvení (kontroluje se podmínka pro opuštění smyčky), ale pokud tato podmínka není splněna, řízení se přenese na začátek smyčky (zpět na již dokončený krok).

Zvažte úkol: zobrazit vše sudá čísla méně než 10. Pro tento úkol můžete použít algoritmus založený na sekvenčním provádění kroků a algoritmus, který používá smyčku. Diagramy pro obě možnosti jsou uvedeny na obrázku:

První diagram vypadá jasněji, ale v případě, že potřebujete na výstup ne 5 čísel, ale 100, diagram (a program odpovídající tomuto algoritmu) se zvětší 20krát a v programu odpovídajícímu 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ů, i když v mnoha případech se bez nich obejdete.

Pamatujte: Algoritmus musí být sestaven pouze ze tří pojmenovaných struktur!

Literatura k tématu:

1. Školní učebnice informatiky.

Základy syntaxe Java

  1. Jazyk Java rozlišuje velká a malá písmena. To znamená, že všechny názvy funkcí a klíčová slova by měly být napsány přesně tak, jak jsou uvedeny v příkladech a odkazech.
  2. Každý příkaz (příkaz) v Javě musí končit středníkem.
  3. Java program se skládá z jednoho nebo více třídy. Musí být umístěna absolutně veškerá funkční část programu (tedy to, co dělá). metody jednu nebo druhou třídu. (Třída a metoda, oba koncepty objektově orientovaného programování, budou probrány ve třetí lekci. Tam bude také probrána syntaxe tříd. V prvních cvičeních použijte třídy, které Eclipse standardně generuje.)
  4. Třídy jsou seskupeny do balíčků.
  5. Alespoň jedna z tříd musí mít metodu main(), přesně stejnou jako v příkladu, na který jsme se podívali. (Zpočátku není nutné rozumět nebo se snažit zapamatovat si správný pravopis této metody - Eclipse si vše vygeneruje sám, pokud zaškrtnete požadované políčko.) Tato metoda bude provedena jako první.

V nejjednodušším případě se program může skládat z jednoho (nebo dokonce žádného) balíčku, jedné třídy v balíčku a jediné metody main() v rámci třídy. Příkazy programu se budou psát mezi řádky

public static void main(String args) (

a uzavírací složená závorka) označující konec těla metody. Tento přístup je třeba dodržovat při provádění jednoduchých cvičení.

Komentáře

Komentáře jsou vysvětlující poznámky, 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 napsat cokoliv. 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 dělá jedním z následujících způsobů:

  1. Jsou přidána 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. Symboly jsou umístěny na začátku komentáře a */ na konci. V tomto případě může komentář zabírat libovolný počet řádků.
  3. Zvláště zvýrazněno komentáře k dokumentaci, které jsou umístěny mezi značky /** a */. O jejich použití bude řeč později.

Pravidla pro psaní literálů

Ó různé formy doslovné záznamy

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

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

Skutečné literály se zapisují v desítkové soustavě, přičemž celá část je oddělena zlomkovou tečkou.

Lze napsat reálné číslo ve formě s plovoucí desetinnou čárkou, například: 5.4e19, 17E-11, -123e+4. Část čísla, která je před písmenem e, se nazývá mantisa a část, která následuje za písmenem e, se nazývá exponent. Zápis znamená následující: musíte zvýšit 10 na mocninu řádu a vynásobit mantisou. Někdy je ve skutečnosti pohodlnější napsat 1e-9 než 0,000000001.

Jednotlivé znaky jsou psány v apostrofech, například "a" , "D" , "@" .

Existují některé speciální a řídicí znaky, které jsou zapsány pomocí speciální sekvence escape. Nejběžnější z nich jsou uvedeny v tabulce:

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

První řádek tabulky uvádí, že pomocí jeho kódu lze zadat jakýkoli znak (s desítkovým kódováním od 0 do 255), přičemž tento kód je zapsán v osmičkové soustavě. Například bude zapsáno písmeno "zh" v kódování CP1251 escape sekvence "\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 - ve čtyřech hexadecimálních znacích. Například „\u0055“ je písmeno U.

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

Pro řetězce je definována operace zřetězení +, která umožňuje sloučit několik řetězců do jednoho (vzájemným „sdružením“).

Li řetězcová konstanta příliš dlouhé a špatně srozumitelné programový kód když to píšete na jeden řádek, můžete to napsat na několik řádků a spojovat je pomocí operace zřetězení řetězců. Například:

"Toto je konstanta napsaná velmi dlouhým řetězcem" + "na dvou řádcích zdrojového textu"

Řídicí znaky a kódy se zapisují dovnitř řádku stejným způsobem se zpětným lomítkem (ale bez apostrofů).

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

Identifikátory

o pravidlech dobrého stylu

Při programování je vždy potřeba vymyslet identifikátory pro pojmenování objektů.

Identifikátor se může skládat z písmen, číslic, podtržítka _ a znaku dolaru $ (ten se nedoporučuje, Java jej používá pro vlastní potřebu). Identifikátor nemůže začínat číslem. Klíčová slova Java (nebo literály) nelze použít jako identifikátory pravda, nepravda A null).

Jak je uvedeno výše, Jazyk Java rozlišuje mezi jednoduchými a malými písmeny. 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ým písmenem, pokud se název skládá z několika 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 jméno obsahuje několik slov, každé následující slovo začíná velkým písmenem. Například myVar, x, y, newBigCounter.

Konstantní jména jsou psána celá velkými písmeny; Pokud název obsahuje více slov, vloží se mezi ně podtržítko. Například PI, COUNT_OF_MONTHS.

Použitím těchto pokynů získáte mnoho výhod. Jedním z nich je, že budete přesně vědět, jak velká a malá písmena používat při používání standardních knihoven Java, jejichž vývojáři postupovali podle pokynů.

Typy dat

o datových typech Java

Nejčastěji používaným typem pro ukládání celých čísel v Javě je int .

Obecně existují v jazyce Java čtyři typy celých čísel: byte, short, int, long. Liší se množstvím paměti, která bude pro proměnnou přidělena, a tedy rozsahem hodnot, které lze do této proměnné uložit. Nejčastěji používaný typ int zabírá 4 bajty paměti a je vhodný pro ukládání čísel od -2147483648 do 2147483647. Typ byte využívá nejméně paměti a je vhodný pro práci s malými čísly (od -128 do 127). Typy short a long zabírají 2 a 8 bajtů.

Pro reálná čísla vhodný je dvojitý typ.

Reálná (reálná) čísla (neboli čísla s pohyblivou řádovou čárkou) jsou reprezentována dvěma typy: float a double. Typ float zabírá 4 bajty paměti a neposkytuje velkou přesnost při práci s velmi velkými nebo velmi malými čísly. Doporučuje se používat v případech, kdy je zapotřebí 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 měření cen v rublech, s přihlédnutím k kopejkám) . Pokud potřebujete přesnější výpočty, doporučuje se pracovat s dvojnásobnými hodnotami (například taková proměnná může uložit hodnotu sinusu úhlu).

Skutečné literály jako 5.3, 8.0, 2e-3 jsou v Javě považovány za typ double. Pokud mají být v programu použity jako plovoucí hodnoty, 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 podmnožinu celočíselných typů (protože každý znak má svůj vlastní kód Unicode), takže všechny celočíselné operace platí pro znak.

Booleovské hodnoty (true nebo false) jsou reprezentovány typem boolean.

V Javě je jich tedy definováno osm jednoduché typy, jehož vlastnosti jsou uvedeny v tabulka:

Deklarace proměnných

Java (stejně jako mnoho jiných jazyků) vyžaduje před použitím popis. Popsat proměnnou znamená dát jí jméno a určit její typ.

Při deklaraci 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í rovnítka. Můžete deklarovat několik dalších proměnných stejného typu oddělených čárkami.

Příklady deklarací proměnných:

int x; // Deklarace celočíselné proměnné x dvojité a, b; // Deklarace dvou reálných proměnných a a b znakové písmeno = "Z"; // Deklarace znakové proměnné písmeno, inicializace s počáteční hodnotou "Z" boolean b1 = pravda , b2, b3 = nepravda ; // Deklarace tří booleovských proměnných, první z nich bude pravdivá, poslední bude nepravda

Základní jazykové operace

Proměnné a mohou se na nich podílet (z nichž lze zase stavět složité). Podívejme se na nejjednodušší operace jazyka Java.

Matematické operace

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

Logické operace

o operacích Java

Operace && a || se liší v tom, že nemusí nutně vypočítat hodnotu druhého. Například && vyhodnotí hodnotu prvního operandu a okamžitě vrátí false, pokud je nepravda, zatímco || okamžitě vrátí true, pokud vidí, že první operand je pravdivý. Java má operace podobné & a | , vyhodnotí hodnoty obou operandů před provedením operace s nimi.

Směnný provoz

(pracujte s bitovou reprezentací prvního operandu)

Bitové operace

(práce s bitovou reprezentací operandů)

Operace?:

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 nepravda, pak třetí.

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

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

můžeš napsat:

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

Operátor přiřazení

Jakmile je proměnná popsána, lze s ní v programu manipulovat. Zejména mu lze přiřadit hodnotu příslušného typu. V budoucnu, při použití této proměnné v libovolném výrazu, bude tato aktuální hodnota automaticky nahrazena.

Hodnota je přidružena k proměnné pomocí přiřazení. V Javě se píše s jednoduchým rovnítkem:

Proměnná = výraz;

Nalevo od operátoru přiřazení je vždy proměnná. na pravé straně musí odpovídat typu proměnné. Může to být jednoduše (například číslo nebo symbol):

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

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

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

Spolu s literály mohou být ve výrazu přítomny i další proměnné. Jsou nahrazeny jejich aktuální hodnotou. V důsledku provedení příkazu:

B = a + 1;

proměnná b bude mít hodnotu 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ýsledný výsledek přiřadí proměnné zadané na levé straně. Je dokonce možná 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 napsáno špatně a nebude fungovat:

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

Eclipse se pokusí indikovat chybu v těchto řádcích před spuštěním programu a umístí varovné značky na okraje editoru kódu. Můžete ho sledovat, jak to dělá.

o typovém odlévání

Když je proměnné jednoho typu přiřazena hodnota jiného typu, použije se typové odlévání. U číselných typů (byte, short, int, long, float, double, char) k tomu dochází automaticky, pokud typ proměnné, která se mění, může „pojmout“ hodnotu jiného typu.

Pokud například přiřadíte proměnnou typu int k hodnotě typu bajt, bajt se automaticky převede na int. Podobně lze typ float přehodit na typ double atd.

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

K odeslání typu, který můžete použít operátor obsazení– před výraz, pro který chceme provést přetypování, umístíme do závorek závorky s typem, na který se přetypování provádí. Při přelévání celočíselného typu s vyšší přesností na celočíselný typ s nižší přesností lze provést dělení modulo podle přípustného rozsahu typu, na který se odlévání provádí, a při přelévání výrazu typu zdvojnásobit na výraz typu float, přesnost reprezentace výrazu se sníží.

dlouhé j = (dlouhé )1,0; //použijte operátor konverze typu na long, j = 1 char ch = (char )1001; //pro char použijte operátor cast, ch = "d" byte b2 = (byte )(100); //použijte operátor převodu typu z int na bajt, b2 = 100 byte b3 = (byte )(100 * 2); //Pozor! dochází k dělení modulo, b3 = -56

Chyba nesouladu typu se často vyskytuje u skutečných literálů. Nemůžete například přiřadit 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 typu double. Chcete-li se vyhnout chybám, musíte použít přetypování:

A = (float) (7,5 + 2,4);

nebo uveďte, že literály jsou také typu float:

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

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

X+= 8; // stejné jako x = x + 8 (x se zvětší o 8)

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

X*= 3; // stejné jako x = x * 3 (x se zvětší 3krá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 součin.

Vodítko: můžete použít projekt již vytvořený v Eclipse vložením potřebných příkazů za příkaz pro tisk řádku "Ahoj, světe!" nebo místo toho.

Operátory inkrementace a dekrementace

o operátorech zvýšení a snížení

Operátory inkrementace a dekrementace ++ a –– zvyšují nebo snižují hodnotu operandu. Mnohem pohodlnější je použít příkaz x++; místo příkazu x = x+1;

Operátory zvýšení a snížení 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 nabude hodnoty, která je sedminásobkem staré hodnoty x. Můžete také spustit následující příkaz:

Y = 7*++x;

V důsledku toho se proměnná x zvýší o 1 a proměnná y nabude hodnoty, která je sedminásobkem nové hodnoty x.

Podmíněný příkaz if

Nejjednodušší forma zápisu podmíněného operátoru je:

příkaz if (podmínka).

Podmínka v závorce je logický výraz, tzn. může být pravda nebo nepravda. Pokud je podmínka pravdivá, příkaz se vykoná, jinak se nic nestane. Například:

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

Pokud je nutné, aby byl proveden nějaký jiný příkaz, když je podmínka nepravdivá, použijte rozšířenou formu příkazu if:

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

o ostatních if konstrukt

Ve výše uvedeném příkladu bychom mohli chtít nastavit x na 5, pokud je podmínka x se neprovede (proč to potřebujeme, je jiná otázka).

if (x jinak x = 5;

Pokud potřebujete 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 ... else 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 vytiskněte maximum z nich.

Vodítko: Algoritmus pro nalezení maxima byl zvažován opakováním hlavních konstrukcí algoritmu.

Složené příkazy

Více příkazů Java lze spojit 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 kdekoli, kde lze použít běžné příkazy. Například v příkazu if, pokud je splněna podmínka, je třeba provést několik akcí:

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

Struktura kudrnaté rovnátka se také nazývá blok příkazů a složené závorky jsou blokovat hranice.

Všimněte si, že forma zápisu použitá v příkladu (když jsou hranice bloku umístěny na samostatných řádcích a obsah bloku je zapsán odsazený od jeho hranic) není vyžadován. Toto je pouze stylové pravidlo, aby byly programy srozumitelnější a nenechaly se zmást složenými závorkami, které musíte v programu Java používat poměrně často.

o provozovateli výběr přepínače

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

Příkaz, který se má provést, často závisí na hodnotě nějaké proměnné (nebo výrazu). Uživatel je například vyzván k zadání symbolu operace a v závislosti na zadaném symbolu je požadováno zobrazení výsledku sčítání, odčítání atd. na obrazovce. nebo, pokud je zadán nesprávný znak, chybové hlášení. V tomto případě je vhodné použít příkaz switch selection, který má následující formulář záznamy:

přepínač (výraz) ( case value1: sekvence příkazů 1 přerušení; case value2: sekvence příkazů 2 break; ... výchozí: výchozí sekvence příkazů)

Hodnota1, hodnota2 atd. - jedná se o konstanty nebo výrazy, ve kterých jsou zahrnuty pouze konstanty. Výraz v závorkách za klíčovým slovem switch může obsahovat proměnné. Tento výraz se vyhodnotí a pak se zjistí, že výsledek odpovídá jedné z hodnot za klíčovým slovem case. Pokud je taková shoda nalezena, provede se celá sekvence příkazů umístěných mezi dvojtečkou a nejbližším příkazem break. Pokud není nalezena žádná shoda, bude provedena výchozí sekvence příkazů následujících za výchozím klíčovým slovem. Například:

char oper; // Operační znak, uživatel jej vybere ... // Budeme předpokládat, že v tuto chvíli uživatel zvolil znak switch (oper) ( case "+" : System.out.println(a + b); break; case "-" : System.out.println(a - b); break; case "*" : System.out. println(a * b); výchozí: System.out.println(); "Neplatný znak operace"); }

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

Zatímco operátor smyčky

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

while (podmínka) příkaz

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

Proto, aby program nevstoupil nekonečná smyčka a nezamrzá, tělo smyčky musí poskytovat možnost opuštění, to znamená, že například příkazy v těle smyčky musí nějak ovlivňovat proměnné zahrnuté v podmínce.

Například následující fragment programu vytiskne sudá čísla od 2 do 10:

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

zatímco (x

o cyklu while s postpodmínkou

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

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

Cvičení 3

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

Vodítko: mírně změňte algoritmus pro výstup sudých čísel.

Operátor smyčky for

Smyčka for se obvykle používá, když předem víte, kolikrát se musí příkaz (nebo sekvence příkazů) provést. Má následující podobu:

for (inicializační příkaz; podmínka; příkaz skoku) loop_body

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

Typicky se smyčka for používá takto:

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

V tomto příkladu bude loop_body proveden 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á), postupně procházející hodnotami od 1 do 10. Následující fragment programu zobrazuje sudá čísla od 2 do 10 (podobné k příkladu cyklu while):

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

Cvičení 4

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

přerušit a pokračovat ve výpovědích

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

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

Příkaz continue ukončí aktuální iteraci cyklu. To znamená, že pokud se na tento operátor narazí v těle smyčky, pak jsou zbývající příkazy následující za ním přeskočeny a začne nová iterace (opakování) smyčky.

Závěr

Navzdory skutečnosti, že materiál první lekce je poměrně rozsáhlý, nemělo by to způsobit potíže studentům, kteří již znají alespoň jeden programovací jazyk, protože konstrukce ve všech jazycích jsou stejné a je nutné je pouze ovládat. pravidla pro jejich zápis (syntaxe). Pokud je vaše znalost jiných programovacích jazyků špatná, budete muset udělat více domácích úkolů v příručce a vyřešit další problémy. Nejlepší možností by v tomto případě bylo přečíst si doporučené kapitoly z navrhované literatury před další lekcí.

Další čtení

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

2. Khabibullin I.Sh. Výukový program Java 2 (kapitola 1)

Věnujte zvláštní pozornost datovým typům Java a pravidlům castingu, které nejsou podrobně popsány v tomto tutoriálu. Profesionální programátor by měl ve svých programech vždy kontrolovat možnost, že hodnota proměnné překročí přijatelný rozsah pro její typ. Chyby související s odléváním typu jsou některé z nejčastějších a obtížně zjistitelné. Kapitoly 4 a 7 první knihy jsou důrazně doporučeny ke čtení všem studentům, kteří hledají vynikající známku.




Nahoru