Vytvoření prvního programu

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Standardní knihovní funkce pro práci s textovými řetězci
Pro začátek něco lehčího
(instance konkrétní třídy)
Vlastní skript může být umístěn: v hlavičce stránky v těle stránky
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
VISUAL BASIC Práce se soubory.
Třída Array Je součásti balíčku java.util Účelem je usnadnit práci s poli Metody – nejpoužívanější equel(),fill(),sort() a binarySearch() equels() Slouží.
Pole, ukazatele a odkazy
Strukturované datové typy
Algoritmy I Cvičení č. 2. Cíl hodiny Datové typy a přetypování (int, float, double, bool, char, long, short) Konstanty – Celočíselné Desítkové – 15, 0,
Počítače a programování 1. Obsah přednášky Výjimky - základní typy výjimek Způsoby zpracování výjimek.
4IT1014IT101 Pátá přednáška Datové struktury - pokračování Statické prvky třídy.
Programování v C++ Cvičení.
Algoritmizace a programování
Druhé cvičení Vytváření identifikátorů Datové typy
Programování v Pascalu Přednáška 7
Materiály k přednášce Úvod do programování Ondřej Čepek.
J a v a Začínáme programovat Lucie Žoltá pole řetězec debugr.
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
C# - struktury, výčtové typy, pole
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Deklarace Radim Štefan. 2 Použité zkratky BP – Borland Pascal De – Delphi.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Třída jako zdroj funkcionality
Objektové programování
C# - funkce a procedury Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Datové typy a práce s nimi
DEKLARACE PROMĚNNÝCH A KONSTANT
Současný svět Projekt č. CZ /3. 1
Návrh a tvorba WWW Přednáška 11
Počítače a programování 1 8.přednáška. Obsah přednášky Řetězce - deklarace a vytvoření Základní metody pro práci s řetezci Znaky - třída Character Základní.
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Alg91 Textové soubory Na rozdíl od jiných typů souborů jsou textové soubory určené pro gramotné lidské oko. Textový soubor je posloupnost znaků členěná.
Počítače a programování 1
JavaScript Podmínky, cykly a pole.
Cvičení.
VISUAL BASIC PRALG.
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
Datové typy a struktury
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
13/04/20151 Indexery (1) Členy třídy (struktury) umožňující třídě (struk- tuře) používat hranaté závorky a pracovat s ní podobně jako s polem (používat.
Šesté cvičení Výjimky Balíky.
KIV/PPA1 cvičení 9 Cvičící: Pavel Bžoch. Osnova cvičení Třída String a její metody –Řetězce a operace s nimi.
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
STRING A UKAZATELE. Co to je řetězec? Řetězec v Javě je samostatný objekt. Je konstantní, co znamená, že jednou vytvořený řetězec nelze změnit. Chceme-li.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část I.
C – procedury Mgr. Lenka Švancarová.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Počítače a programování 1 2.přednáška. Základní lexikální struktura programu Program v jazyce Java je tvořen symboly a oddělovači Program Java je psán.
Programovací jazyk C# 2. část. Datové typy C# rozeznává dva druhy datových typů, hodnotové a referenční. Hodnotové datové typy Proměnné hodnotového datového.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Datové typy a operátory Základní programové.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Algoritmizace a programování
Oblast platnosti identifikátoru (1)
C# přehled vlastností.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
CU01 Informatika II 2/13 Základy algoritmizace
Transkript prezentace:

Vytvoření prvního programu public class NazdarSvete { public static void main ( String arg[] ) { System.out.println (“Nazdar Svete”); }

Instalace JAVA Nainstalovat J2SDK-Java 2 Software Development Kit Editor Notpad NazdarSvete.java Kompilování javac NazdarSvete.java Vytvořen NazdarSvete.class – soubor v bytovém kódu Spuštění programu java NazdarSvete

Rozbor programu v jazyce JAVA Definice třídy Modifikátor přístupu – public Klíčové slovo class Název třídy NazdarSvete Tělo třídy { }

Definice metody Třída má dva prvky – atributy (vlastnosti) a metody (chování) Atributy nejsou povinné Metodu musí mít alespoň jednu metodu main() Metoda se skládá s Název metody Argument metody Tělo metody Návratová hodnota metody

Příkaz Příkaz je instukce pro počítač, na základě kterého se vykoná V příkladě println( ) Příkaz říká stroji JVM, aby na obrazovce vypsal větu „Nazdar Světe !“ System.out.println(“Nazdar Světe!”) ;

Java Jak přeložit a spustit program Komentáře Přidat cestu kde se nachází javac.exe javac Prvni.java java Prvni Komentáře Jednořádkový komentář // komentář do konce řádku Komentářový blok /* xxxxxxx */ Dokumentční komentář pomocí javadoc .exe /** xxxxxxx */

Zápis identifikátorů Třídy a rozhraní – velkým písmem- složené slovo PrvniProgram Metody a proměnné – malým písmem počet, pocetPrvku Balíky – pouze z malých písmen. Ve složených slovech odděleny tečkou java.lang Konstanty – Velká písma MAX_VALUE,PI

Hlavní program Hlavní program – metoda pro spuštění musí obsahovat metodu main() public static void main(String[] args){ }

Základní datové typy Také se nazývají primitivní datové typy Celočíselné Znakové Logické Reálné A prázdný znak void

Celočíselné typy a jejich konstanty byte 8 bitů -128 +127 short 16bitů int 32bitů long 64bitů Desítkové: 86,15,0,1 Osmíčkové: 026,015,01,0 Šestnáctkové: 0x56,0x67,0xA3,0xCD

Znakový typ a jeho konstanty char – velikost dvou bytů – 16 bitů Unicode jedním znakem ´A´,´1´,´%´ Posloupností ´\uXXXX´ ´\u0041´ je znak ´A´ Escape sekvencí ´\ n´ \u000A nová řádka

Řetězové konstanty (literály) ˝Takhle vypada velmi dlouhy retezec˝ ˝Takhle˝+˝vypada˝+˝velmi dlouhy retezec˝

Logický typ a jeho konstanty Boolean Dvou hodnot true= log.1, false = log.0

Reálné datové typy a jejich konstanty Float 32 bitů Double 64 bitů Reálná konstanta je automaticky double, chceme-li typ float float f = 3.14F Minimální hodnota typu int a float int i = Integer.MIN_VALUE float f = Float.MIN_VALUE MAX_VALUE POSITIVE_INFINITY,NEGATIVE_INFINITY NaN dělení nuly nulou. Metody inInfinity() a NaN()

Pole –referenční datový typ Java obsahuje dva neprimitivní datové typy a to pole a objekty Proměnné těchto typů jsou označovány jako referenční Referenční proměnné i jména polí se využívají podobně jako ukazatelé v jiných programovacích jazycích Hodnota referenční proměnné není adresa v paměti Reference (odkaz) je míněná konkrétní hodnota referenční proměnné.

Deklarace pole Skládá se ze dvou části – z typu pole a z jeho jména Int [] poleInt; Je nutno před prvním použitím poleInt = new int [20]; int[] poleInt = new int [20];

Délka pole Můžeme vždy zjistit pomocí členské proměnné se jménem length Např. System.out.println(„Počet prvku pole:“+ poleInt.lenght); První prvek má vždy index [0] a poslední prvek [jmenoPole.length -1]

Inicializované pole Pole nemusíme vytvořit jen pomocí new, byť je to nejčastější Můžeme vytvořit pole pomocí statického iniciátoru int[]prvocisla = {1,2,3,5,7,11};

Dvourozměrná pole int[][] = new int [5] [4]; Inicializace int[][] b = {{1,2,3}, {11,12,13}, {21,22,23}};

Trojrozměrná pole int [][][] d =new int [5][5][5]; Více rozměrů v jednorozměrném poli final int RADKY = 24; final int SLOUPCE =80; byte [] obrazovka = new byte [RADKY*SLOUPCE]; for (int i = 0; i < RADKY; i++) { for (int j = 0; j < SLOUPCE; j++) { obrazovka [i * SLOUPCE + j] = 0; ………

Třída Array Je součásti balíčku java.util Účelem je usnadnit práci s poli Metody – nejpoužívanější equel(),fill(),sort() a binarySearch() equels() Slouží k porovnání dvou polí zda jsou si rovny Parametrem jsou obě pole, které chceme porovnávat Array.equels( student1Hodnoceni,student2Hodnocení);

Třída Arrays fill() Metoda, pomocí níž chceme nastavit v velkém poli např. počáteční hodnoty Int idStudent[] = new int [2000]; Arrays.fill(idStudent,0); Metoda dovoluje specifikovat rozsah prvků v poli, které mají být naplněny určitou hodnotou. Arrays.fill(idStudent,200,301,0);// od 200, do 300 nahrazeno hodnotou nula.

Třída Arrays sort () Třídění hodnot prvků pole podle velikosti nebo podle abecedy binarySearch() Používá k nalezení prvku, který obsahuje danou hodnotu Je třeba před hledáním setřídit pole pomocí metody sort() Výstupem je index pole, kde se daná hodnota v poli nachází.

Řetězec Vytvoření řetězce: String s = “ahoj“; Ukázka: String s1,s2,s3,s4,s5,s6,s7;//deklarace Byte[] bajty = {(byte)‘E‘, (byte)‘V‘,(byte)‘A‘}; Char[] znaky = {M‘,‘A‘,‘R‘,‘T‘,‘I‘,‘N‘,‘A‘}; StringBuffer buf = new StringBuffer („dobry den“); S1 = new String(„cao“); S2 = new String(s1); S3 = new String(bajty); S4 = new String (bajty,1,2); S5 = new String (znaky); S6 = new String (znaky,3,4); S7 = new String (buf); Délka řetězce : S7.length();

Pole řetězců Porovnání String[] pole = („DANA“,“EVA“,“MARTINA“); For ( int i=0; i< pole.length; i++) System.out.println(pole(i)); Porovnání compareTo(),compareToIgnoreCase()-porovnává lexikograficky(slovníkově)dva řetězce Vrací int číslo <řetězec jako parametr <0, rovny 0,větší >0. equals()- zjistí zda jsou řetězce shodné vrací true nebo false equalsIgnoreCase() – zjisti zda jsou řetězce shodné, přičemž nerozlišuje malá a velká písmena

Řetězce Převody na malá či velká písmena toLowerCase() , toUpperCase() Spojování řetězců concat() Náhrada všech znaků v řetězci replace()

Řetězec (1) Práce s části řetězce Získání části řetězce - podřetězec substring(pozice) Kopírování řetězce do pole znaků. getChars(2,9,jmeno pole,0) 2-od indexu 2 po index 9 do jmeno pole od indexu 0.

Řetězec (2) Velmi snadno se dá otestovat zda řetězec začíná nebo končí určitým podřetězcem Začíná startWith(„podřetězec“) Končí endWith („podřetězec“) Získání jednotlivého znaku z řetězce charAt(pozice)

Řetězec (3) Hledání znaku Není-li nalezen vrací –1, pokud je nalezen vrací pozici v řetězci indexOf(´požadovaný znak´, od dané pozice) – od začátku se prohledává lastIndexOf(´znak´, od dané pozice) – od konce se prohledává

Konverze základních datových typů na řetězec String.valueOf(číslo daného typu) Konvertování do jiné číselné soustavy toBinaryString(), toOctalString(), toHexString()

Konverze řetězce na základní datové typy Pro převod budu používat metody tříd Boolean, Byte, Short, Integer, Long, Float, Double Int i = Integer.valueOf(„123“).intValue(); valueOf(„1A2B“, 16) druhé číslo je číselná soustava

Třída StringBuffer b1=new StringBuffer() – řetězec 16 znaků b3 = new StringBuffer(„Ahoj“) – řetězec 4znaky+16znaků rezerva = 20 znaků

Délka řetězce length()- aktuální délka řetězce capacity()-max možná délka(kapacita) Kapacita řetězce je možné změnit dvěma metodami ensureCapacity(int k)- k je větší, než je současná kapacita,zjistí,že řetězec bude mít kapacitu maxima z velikosti k a z dvojnásobku současné kapacity plus dva znaky navíc. K je menší než současná kapacita –ponechá řetězec nezměněn. setLength(int k)-k větší než současná kapacita zvětší aktuální délku řetězce na k a kapacitu na dvojnásobek současné kapacity plus dva znaky - k menší než současná kapacita, ponechá kapacitu nezměněnu a aktivní délku nastaví na k –může řetězec prodloužit i oříznout.

Změny celého řetězce reverse()- lze celý řetězec obrátit,tzn.poslední zan bude poslední append()- přidat na konec řetězce delete(int poč_index, int kon_index)- vyříznout část řetězce deleteCharAt(int index)-ubrat jednotlivý znak insert(int index, typ t) –vkládat libovolný datový typ replace(int poč_ind, int kon_ind, String nový_podřetěz) – nahrazení jeden podřetězec novým

Získání jednotlivého znaku charAt(int index)- získání jednotlivého znaku setCharAt(int index, char ch) – změna jednotlivého znaku za jiný

Konverze na String Pomocí metody toString()- převede celý řetězec Pomocí metody subString()- jen část od zadaného indexu včetně až do konce nebo do druhého indexu.

Metody Program v Javě obsahuje jednu nebo více deklarací metod (podprogramů,funkcí) Metody třídy – statické metody (klíčové slovo static) Metody instance Zpracování programu začíná vyvolání metody main() a končí opuštěním této metody Jedna metoda nemůže obsahovat ve svém těle deklaraci druhé metody Formální a lokální parametry jsou přístupné pouze v metodě, v níž byly deklarovány a jsou skryté z vnějšku této metody.

Deklarace metody Deklarace zahrnuje jak hlavičku metody jméno metody, typ návratové hodnoty případně i typy a jména jejích formálních parametrů Static int max(int a, int b){ if(a>b) return (a); else return (b); }

Metody bez parametrů static int secti() { int a, b; a = ctiInt(); b = ctiInt(); return (a+b); } Volání metody: J = secti();

Metody bez návratového typu-procedury V Javě každá metoda musí mít uveden návratový typ Návratový typ se uvádí void(tj.prázdný) static void tiskPenez(int koruny) { Systém.out.println(˝Cena:˝ + koruny + ˝ Kc˝); } Volání: tiskPenez(a+b); tiskPenez(10); tiskPenez(a);

Procedury bez parametrů Static void tisk() { Systém.out.println(˝Ahoj˝); } Volání metody : tisk()

Procedury s více parametry různých typů Potřebujeme-li metoda větší množství formálních parametrů, vypisují se jednotlivě včetně svých typů a oddělují se čárkami. V deklaraci metody si musíme pořadí dodržet Nelze psát static int secti(int a,b) { ale static int secti(int a, int b) {

Rekurzivní metody Rozdíl od ostatních metod je v jejím těle rekurzivní metoda volá sama sebe používá se jen tehdy, vede-li na ně algoritmus, který nelze snadno obejít. nahrazuje se jednoduchým cyklem for, který je přehlednější a také rychlejší

Konverze skutečných parametrů a návratové hodnoty metody Pokud není typ návratové hodnoty shodný s návratovým typem metody a neprovádí se implicitní rozšiřující typová konverze, je nutné provést explicitní zužující typovou konverzi. To samé platí pro skutečné parametry metody – to jsou ty, s nimiž je metoda volána,pokud jejich typy nesouhlasí s formálními parametry – s těmi byla metoda deklarována. static int konv1(double d) { return (int) d ; } static double konv2(int d) { return d; public static void main (String [] args) { int k = konv1(4); doble j = konv2( (int) 4.5);

Předávání skutečných parametrů metod U Javy pouze jeden způsob předávání parametrů a to hodnotou. static int změna (int i) { i++; return i; } public static void main(String[] args) { int j , k=4; j = změna (k); Systém.out.println(„k = „+k+“, j= „ +j);

Přetížení metody Jsou metody, které mají stejná jména, ale různé hlavičky přetížená,znamená, že se její formální parametry musí lišit počtem nebo typem nebo pořadím, popřípadě kombinací těchto způsobů kompilátor vybere tu z metod, která přesně vyhovuje počtu,typům a pořadí skutečných parametrů

Přetížené metody - příklad Trojnásobně přetížené metody ctverec() static int ctverec(int i) {return i*i;} static double ctverec(double i) {return i*i;} //static long ctverec(int i) {return i*i;} chyba static long ctverec(long i) {return i*i;} public static void main (String[] args) { int j = ctverec(5); double d = ctverec(5.5); long l = ctverec(12345L); Systém.out.println(„j=„ + j+ „,d=„+d+“,l=„ +l); } Vypíše se : j=25, d=30.25, l=152399025

Nelokální proměnné –“globální“ proměnné V Javě pojem globální proměnná neexistuje –každá proměnná musí někomu patřit – třídě. pokud je proměnná deklarovaná vně metody tak je potom přístupná všem metodám ,které jsou deklarovány v téže třídě lze nejdříve deklarovat metody a teprve potom deklarovat proměnné Proměnná třídy( též statická proměnná)- i metoda třídy je uvozena klíčovým slovem static a proměnná instance není uvozena slovem static. Ve statické metodě je nutné použít výhradně jen statické nebo lokální proměnné.

Proměnné metod – lokální proměnné Jsou to všechny proměnné deklarované kdekoliv uvnitř metody.Tyto proměnné jsou viditelné pouze v metodě, v níž jsou deklarovány. (platí i u metody main()) Rozsah platnosti od místa deklarace do konce metody (případně do konce bloku), ve které jsou deklarovány.

Příklad – lokální proměnné static void tiskni() { int i = 6; Systém.out.println(i); { // int i = 7; // chyba –dvojnásobná deklarace // long i = 7; // chyba – dvojnásobná deklarace int j =8; Systém.out.println(j); } // Systém.out.println(j); // chyba – j není viditelná

Příklad – lokální proměnné static void tiskni2() { int i = 6; System.out.println(i); // for (int i = 1; i<5; i++) // chyba }

Zastínění nelokálních proměnných lokálními Má-li proměnná třídy (instance) stejné jméno ( na typu nezáleží) jako lokální proměnná, pak ji lokální proměnná ve své metodě zastiňuje Existuje možnost jak k této proměnné třídy přistoupit – plně kvalifikovaného jména - třída . jméno proměnná

Příklad – zastíněné proměnné public class Metody { static int i = 5 ; ststic void tiskni () { int i = 6; Systém.out.println (i); // tiskne 6 Systém.out.println (Metody.i); // tiskne 5 } public static void main (String [] args) { tiskni ();

Třídy a objekty V OOP jazyce je základním kamenem třída –class Třída soubor proměnných( členské proměnné – member variables , datové složky, atributy – je uložen stav objektu) a konstant a podprogramů (metody- methods) – pracují s členskými proměnnými a mění vlastnosti objektu ) . Metoda popisuje schopnosti ( dovednosti, vlastnosti,…) objektu. Třída je jen jakási šablona (objektový typ) – sama o sobě nemá přidělenu žádnou paměť.

Objekt Objekt (object) je datový prvek, který je vytvořen podle vzoru třídy. Často se říká instance třídy a často se pojmy objekt a instance zaměňují. Když bude v programu použita jen jedna třída ( s metodou main()) a tato třída bude volat alespoň jednu metodu instance ( bez static) , musí se objekt této třídy v main() vytvoři – třída vlastně vytváří instanci sama sebe..

Deklarace třídy Program v Javě obsahuje vždy alespoň jednu třídu. Deklarace začíná slovem class a jsou v ni deklarovány proměnné i metody.Tělo třídy začíná a končí stejně jako metody tj. {}

Příklad Public class Obdelnik { public int sirka; public int vyska; public int obvod () { int pom ; pom = 2 * (sirka + vyska); return pom; } public int obsah() { return ( sirka * vyska);

Vytvoření objektu Pro vytvoření objektu potřebujeme provést dvě akce: Deklarovat referenční proměnnou typu Obdelnik, která bude v sobě uchovávat referenci na skutečný objekt (instanci) obdélníka – bude na něj odkazovat Obdelnik obd; Pomocí new nechat vytvořit v paměti objekt obdelníka a získanou referenci na něj přiřadit do připravené proměnné. obd=new Obdelnik();

Popis vytvoření objektu Dynamicky se vytvořila instance (objekt) třídy Obdelnik a odkaz na tuto instanci se přiřadil do referenční proměnné obd. Od této chvíle máme (přes referenční proměnnou ) k dispozici obě proměnné ( nastavené implicitně na nulu) i obě metody.

Instanční proměnné Proměnné sirka a vyska nemají klíčové slovo static – proměnné instance – vytvoří se až po new, to znamená každá instance třídy Obdelnik má svoje proměnné sirka a vyska. Protože patří konkrétní instanci, nazývají se také instanční proměnné. To samé platí pro metody obvod() a obsah(). Nedají se použít samostatně , ale pro danou instanci.

Přímý přístup k datům objektu Při vzniku objektu obdélník obd je sirka a vyska rovna nule. My můžeme tyto proměnné změnit obd.vyska = 5; obd.sirka = 3;

Práce s metodami Pro přístup k metodám se používá naprosto stejný zápis jako pro přístup k datům i = obd.obvod();

Konstruktory Vytvoření nového objektu Obdelnik Obdelnik obd = new Obdelnik (); Objekt se vytváří vyvoláním speciální metody – konstruktoru ( constructor) Konstruktor má vždy stejné jméno jako název třídy – nemá žádnou návratovou hodnotu, ale může mít libovolný počet parametrů i různých typů