Úvod do programovacích jazyků (Java)
|
|
- Eliška Vaňková
- před 6 lety
- Počet zobrazení:
Transkript
1 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c Michal Krátký Úvod do programovacích jazyků (Java) 1/39
2 Balíčky (Packages) 1/2 Balíčky jsou skupiny tříd a rozhraní. Umožňují vyhnout se konfliktům ve jménech tříd. Balíček může obsahovat třídy, rozhraní a další balíčky (pod-balíčky). Každý balíček má jméno. Celé jméno balíčku obsahuje tečkami oddělený seznam nad-balíčků až k danému balíčku. Např.: java.lang, com.sun.security, drawing.figures. c Michal Krátký Úvod do programovacích jazyků (Java) 2/39
3 Balíčky 2/2 Balíček ke kterému třída přísluší je specifikován na začátku souboru, např.: package drawing. f i g u r e s ; class Line extends Figure {... Třída náleží do balíčku drawing.figures. Pokud na začátku souboru nespecifikujeme žádný balíček, pak třída náleží ke speciálnímu nepojmenovanému balíčku. c Michal Krátký Úvod do programovacích jazyků (Java) 3/39
4 Normativní jména tříd a rozhraní Každá třída nebo rozhraní má normativní jméno (canonic name) obsahující balíček ke kterému náleží a jméno třídy nebo rozhraní. Např. drawing.figures.line. Pro dvě různé třídy nebo rozhraní můžeme použít stejné jméno pokud náleží k různým balíčkům (a mají tedy různá normativní jména). Např. v balíčku project.graphics definujeme jinou třídu Line s normativním jménem project.graphics.line. Vždy můžeme použít normativní jméno třídy nebo rozhraní, když se odkazujeme na třídu nebo rozhraní. Např. drawing.figures.line line = new drawing.figures.line(); c Michal Krátký Úvod do programovacích jazyků (Java) 4/39
5 Veřejné třídy a rozhraní Pouze třídy a rozhraní deklarované jako public jsou přístupné z jiných balíčků. Např. třída drawing.figures.line: package drawing. f i g u r e s ; public class Line extends Figure {... je přístupná ve všech balíčcích. Pokud chceme, aby byla třída přístupná pouze ve třídách a rozhraních balíčku package drawing.figures, deklarujeme: package drawing. f i g u r e s ; class Line extends Figure {... c Michal Krátký Úvod do programovacích jazyků (Java) 5/39
6 Hierarchie balíčků Jména balíčků korespondují s adresáři v adresářové struktuře. Např. třída drawing.figures.line je uložena v souboru: drawing/figures/line.java (Unix) resp. drawing\figures\line.java (MS Windows). Soubory obsahující třídy z nepojmenovaného balíčku jsou uloženy v aktuálním adresáři. c Michal Krátký Úvod do programovacích jazyků (Java) 6/39
7 Deklarace import Pokud se odkazujeme na třídu nebo rozhraní z jiného balíčku, můžeme použít její normativní jméno. Např. drawing.figures.line line = new drawing.figures.line(); Můžeme ovšem použít deklaraci import, která nám umožňuje odkazovat se na třídy a rozhraní z tohoto balíčku pouze jednoduchým jménem. Dva typy deklarace import: Jednoduchá - importujeme pouze jednu třídu nebo rozhraní. Např.: import drawing.figures.line; Složená deklarace (on demand) importujeme všechny veřejné třídy a rozhraní z balíčku. Např.: import drawing.figures.*; c Michal Krátký Úvod do programovacích jazyků (Java) 7/39
8 Java API API Application Programming Interface. Množina tříd, kterou má programátor k dispozici, součásti: java.io.* vstup/výstup.... Ke každé třídě nalezneme v dokumentaci definované atributy a metody. c Michal Krátký Úvod do programovacích jazyků (Java) 8/39
9 (Exceptions) Pro ošetření chyb poskytuje Java mechanismus zvaný výjimky (Exceptions): Když nastane v programu chyba, program vygeneruje událost výjimku. Běh programu je přerušen a runtime hledá kód ošetřující příslušný typ chyby exception handler. Poznámka: objekt nesoucí informaci o události je také nazýván výjimka. c Michal Krátký Úvod do programovacích jazyků (Java) 9/39
10 , příklad public s t a t i c void main ( S t r i n g [ ] args ) { t r y { i n t pole [ ] = new i n t [ 3 ] ;... i n t a = pole [ 5 ] ; catch ( ArrayIndexOutOfBoundsException e ) { System. e r r. p r i n t l n ( " Chyba " ) ; c Michal Krátký Úvod do programovacích jazyků (Java) 10/39
11 Když nastane výjimka: Je vytvořen objekt výjimky, který obsahuje informace o výjimce (typ, stav programu,... ). Běh programu je přerušen. Runtime hledá kód ošetřující chybu. Kód zachycující výjimku se nazývá exception handler (catch). Výběr handleru závisí na typu objektu výjimky. Zachytávání výjimek se skládá ze tří bloků: try, catch a finally c Michal Krátký Úvod do programovacích jazyků (Java) 11/39
12 Syntaxe: t r y {... catch (... ) {... catch (... ) {... f i n a l l y {... Za try blokem musí následovat nejméně jeden blok catch nebo finally. c Michal Krátký Úvod do programovacích jazyků (Java) 12/39
13 , blok try Syntaxe: t r y {... / / p r i k a z y Blok try definuje platnost handleru. Pokud výjimka nastane v bloku try, výjimka je ošetřena příslušným handlerem asociovaným s tímto blokem. c Michal Krátký Úvod do programovacích jazyků (Java) 13/39
14 , blok catch Syntaxe: catch ( SomeThrowableObject variablename ) {... / / p r i k a z y Za try může nasledovat několik bloků catch, ale nejvýše jeden blok finally. Proměnná variablename je jméno výjimky na které se můžeme v kódu odkazovat. Platnost této proměnné je v bloku try. Proměnná může být použita jako jiné lokální proměnné, např. variablename.getmessage(); Konvence: Často tuto proměnnou pojmenováváme e. c Michal Krátký Úvod do programovacích jazyků (Java) 14/39
15 , blok finally Blok finally poskytuje mechanismus umožňující vykonání kódu bez ohledu na to zda v bloku try nastala nebo nenastala výjimka. Příkazy v bloku finally jsou vykonány pokud: Blok try je standardně ukončen. V bloku try nastane výjimka, která je ošetřena jedním z handlerů. V bloku try nastane výjimka, která není ošetřena žádným handlerem. t r y {... / / o t e v r i soubor a zapis do nej f i n a l l y { i f ( f i l e! = null ) f i l e. close ( ) ; c Michal Krátký Úvod do programovacích jazyků (Java) 15/39
16 , metody Metody nemusí ošetřovat všechny výjimky, mohou vyvolat výjimku k volané metodě. Pokud výjimka typu T může být vyvolána v metodě a metoda neošetřuje výjimku typu T, pak musíme specifikovat, že metoda může vyvolat výjimku typu T. K tomuto účelu použijeme klíčové slovo throw v hlavičce metody: public void r e a d F i l e ( S t r i n g filename ) throws IOException {... throw new IOException ( ) ; / / v y t v o r e n i vyjimky c Michal Krátký Úvod do programovacích jazyků (Java) 16/39
17 , hierarchie výjimek Pomocí dědičnosti můžeme vytvářet vlastní výjimky(předek Throwable), výhody: Seskupování chybových typů. Zjemňování chybových stavů. public class StackException extends Exception { public StackException ( S t r i n g message ) { super ( message ) ; public class EmptyStackException extends StackException { public EmptyStackException ( ) { super ( " Zasobnik j e prazdny. " ) ; c Michal Krátký Úvod do programovacích jazyků (Java) 17/39
18 Program často potřebuje číst nebo zapsat data z/do externích zdrojů. Data může obsahovat soubor na disku, soubor na síti, blok paměti atd. Proudy reprezentují abstrakci umožňující sekvenční čtení a zápis dat. Při použití proudů můžeme přistupovat k datům bez ohledu na to z jakého zdroje je čteme popř. zapisujeme. c Michal Krátký Úvod do programovacích jazyků (Java) 18/39
19 Proudy Rozlišujeme dva typy proudů: vstupní proudy pro čtení dat, výstupní proudy pro zápis dat. Pro čtení a zápis dat používáme podobná schémata: Otevření proudu. Dokud jsou v proudu data, čti. / Dokud jsou data, zapisuj. Uzavření proudu. c Michal Krátký Úvod do programovacích jazyků (Java) 19/39
20 Proudy Balík java.io obsahuje kolekci tříd pro práci s proudy. Třídy rozdělujeme do dvou hierarchií: Binární proudy pracují s proudy binárních dat. Podtřídy tříd: InputStream - vstupní proud, OutputStream - výstupní proud. Znakové proudy pracují s proudy znaků. Podtřídy tříd: Reader - vstupní proud, Writer - výstupní proud. c Michal Krátký Úvod do programovacích jazyků (Java) 20/39
21 Proudy, metody InputStream: i n t read ( ) i n t read ( byte [ ] b ) i n t read ( byte [ ] b, i n t o f f, i n t len ) OutputStream: void w r i t e ( i n t b ) void w r i t e ( byte [ ] b ) void w r i t e ( byte [ ] b, i n t o f f, i n t len ) Reader: i n t read ( ) i n t read ( char [ ] cbuf ) i n t read ( char [ ] cbuf, i n t o f f, i n t len ) c Michal Krátký Úvod do programovacích jazyků (Java) 21/39
22 Proudy, metody Writer: void w r i t e ( i n t c ) void w r i t e ( char [ ] cbuf ) void w r i t e ( char [ ] cbuf, i n t o f f, i n t len ) Další metody: Všechny třídy obsahují metodu close(). Tato metoda je bud volána explicitně nebo implicitně při rušení objektu garbage collectorem. c Michal Krátký Úvod do programovacích jazyků (Java) 22/39
23 Proudy, metody Třídu InputStream a Reader obsahují metody: long skip ( long n ) / / preskoceni n bytu boolean marksupported ( ) / / oznaceni a k t u a l n i h o bytu void mark ( i n t readaheadlimit ) void r e s e t ( ) Třídy OutputStream a Writer obsahují metodu: void f l u s h ( ) / / vyprazdneni buferu Většina metod pracující s proudy vyhazuje výjimku java.io.ioexception nebo některou z jejich podtříd. c Michal Krátký Úvod do programovacích jazyků (Java) 23/39
24 Souborové proudy 1/3 Souborové proudy čtou nebo zapisují do souborů na souborovém systému. FileInputStream FileOutputStream FileReader FileWriter c Michal Krátký Úvod do programovacích jazyků (Java) 24/39
25 Souborové proudy 2/3 Příklad: Reader i n = new FileReader ( " i n p u t. t x t " ) ; W r i t e r out = new F i l e W r i t e r ( " output. t x t " ) ; i n t c ; while ( ( c = i n. read ( ) ) > = 0 ) { out. w r i t e ( c ) ; i n. close ( ) ; out. close ( ) ; c Michal Krátký Úvod do programovacích jazyků (Java) 25/39
26 Souborové proudy 3/3 Čtení data byt po bytu není příliš efektivní. Snažíme se tedy číst data po větších blocích. InputStream i n = new FileInputStream ( " i n p u t. t x t " ) ; OutputStream o u t = new FileOutputStream ( " output. t x t " ) ; f i n a l i n t BUFFER_LENGTH = ; byte [ ] buf = new byte [BUF_LEN ] ; i n t l ; while ( ( l = i n. read ( buf, 0, BUF_LEN ) ) > = 0 ) { out. w r i t e ( buf, 0, l ) ; i n. close ( ) ; out. close ( ) ; c Michal Krátký Úvod do programovacích jazyků (Java) 26/39
27 Třída File 1/2 Instance třídy java.io.file reprezentuje soubor na souborovém systému. Pokud vytvoříme instanci třídy File pro nějaký soubor, můžeme zjišt ovat následující informace: Plné jméno souboru. Jméno rodičovského adresáře. Zda se jedná o soubor nebo adresář. Zda je zadán absolutně nebo relativně. Zda existuje. Velikost souboru. Přístupová práva (čtení, zápis). Čas modifikace, zda je skrytý apod. c Michal Krátký Úvod do programovacích jazyků (Java) 27/39
28 Třída File 2/2 Instanci třídy java.io.file můžeme použít pro: Vytváření souboru. Rušení souboru. Přejmenování souboru. Vylistování adresáře. Vytvoření podadresáře. Nastavení času modifikace. Vytvoření pomocných souborů (temporary files). S t r i n g filename = " t e s t. t x t " ; F i l e f = new F i l e ( filename ) ; boolean ok = f. d e l e t e ( ) ; System. out. p r i n t l n ( ok? "O. K. " : " Not deleted " ) ; c Michal Krátký Úvod do programovacích jazyků (Java) 28/39
29 Standardní vstup a výstup Ve třídě System jsou definovány tyto třídní konstantní proměnné: in - standardní vstup (InputStream), implicitně klávesnice. out - standardní výstup (PrintStream), implicitně obrazovka. err - standardní chybový výstup (PrintStream). Všechny tyto proudy jsou implicitně otevřené a nemohou být uzavřeny. Všechny tyto proudy je možné přesměrovat. $ java ClassName < i n p u t. t x t > output. t x t $ java ClassName < i n p u t. t x t less Ukončení vstupu: ^Z (Windows), ^D (Linux). c Michal Krátký Úvod do programovacích jazyků (Java) 29/39
30 Další třídy Čtení a zápis primitivních datových typů DataInputStream, DataOutputStream. Náhodný přístup k datům RandomAccessFile. (PrintStream). BufferedInputStream, BufferedOutputStream. c Michal Krátký Úvod do programovacích jazyků (Java) 30/39
31 Příklad, DoubleArray.java 1/4 package streamtest ; public class DoubleArray { double marray [ ] ; public DoubleArray ( i n t c a p a c i t y ) { marray = new double [ c a p a c i t y ] ; c Michal Krátký Úvod do programovacích jazyků (Java) 31/39
32 Příklad, DoubleArray.java 2/4 public void setvalue ( i n t index, double value ) { marray [ index ] = value ; public double getvalue ( i n t index ) { return marray [ index ] ; c Michal Krátký Úvod do programovacích jazyků (Java) 32/39
33 Příklad, DoubleArray.java 3/4 public void p r i n t ( ) { for ( i n t i = 0 ; i < marray. l e n g t h ; i ++) { System. out. p r i n t ( marray [ i ] + " " ) ; System. out. p r i n t ( " \ n " ) ; c Michal Krátký Úvod do programovacích jazyků (Java) 33/39
34 Příklad, DoubleArray.java 4/4 public void s o r t ( ) { for ( i n t i = 0 ; i < marray. l e n g t h ; i ++) { for ( i n t j = 0 ; j < marray. length 1 ; { i f ( marray [ j ] > marray [ j + 1 ] ) { double tmp = marray [ j ] ; marray [ j ] = marray [ j + 1 ] ; marray [ j + 1 ] = tmp ; c Michal Krátký Úvod do programovacích jazyků (Java) 34/39
35 Příklad, StreamApp.java 1/4 package streamtest ; public class StreamApp { DoubleArray mdoublearray ; public StreamApp ( ) { mdoublearray = new DoubleArray ( 1 0 ) ; c Michal Krátký Úvod do programovacích jazyků (Java) 35/39
36 Příklad, StreamApp.java 2/4 public s t a t i c void main ( S t r i n g [ ] args ) { new StreamApp ( ). Run ( ) ; public void Run ( ) { read ( ) ; mdoublearray. p r i n t ( ) ; mdoublearray. s o r t ( ) ; mdoublearray. p r i n t ( ) ; c Michal Krátký Úvod do programovacích jazyků (Java) 36/39
37 Příklad, StreamApp.java 3/4 private void read ( ) { f i n a l i n t length = ; i n t array [ ] = new i n t [ l e n gth ] ; i n t i = 0 ; t r y { while ( ( array [ i + + ] = System. i n. read ( ) )! = 1 ) { catch ( Exception e ) { c Michal Krátký Úvod do programovacích jazyků (Java) 37/39
38 Příklad, StreamApp.java 4/4 S t r i n g s t r = " " ; i n t countofnumber = 0 ; / / for ( i n t j = 0 ; j < i ; j + + ) { i f ( array [ j ] = = j = = i 1 ) { double v = Double. parsedouble ( s t r ) ; mdoublearray. setvalue ( countofnumber ++, v ) ; s t r = " " ; else { s t r + = ( char ) array [ j ] ; c Michal Krátký Úvod do programovacích jazyků (Java) 38/39
39 Parametry předávané programu při spouštění, např.: java c a t e s t. App Parametry jsou přístupné přes pole řetězců předávané metodě main jako parametr. public s t a t i c void main ( S t r i n g [ ] args ) {... / / args [ 0 ] = 1, args [ 1 ] = 9,... c Michal Krátký Úvod do programovacích jazyků (Java) 39/39
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Soubor jako posloupnost bytů
Soubory Soubor je množina údajů uložená ve vnější paměti počítače, obvykle na disku Pro soubor jsou typické tyto operace. otevření souboru čtení údaje zápis údaje uzavření souboru Přístup k údajům (čtení
Z. Kotala, P. Toman: Java ( Obsah )
Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například
8. přednáška: Soubory a proudy
8. přednáška: Soubory a proudy Soubor jako posloupnost bytů Ukládání/čtení primitivních typů Ukládání/čtení primitivních typů a objektů (řetězců) Ukládání/čtení objektů do souboru - serializace Obsah Algoritmizace
Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25
Seminář Java Výjimky Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Výjimky 1/ 25 Výjimky Co a k čemu jsou výjimky výjimka je mechanizmus umožňující psát robustní, spolehlivé
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Práce se soubory v Javě
Práce se soubory v Javě Cílem kapitoly je naučit pracovat se soubory a adresáři v Javě. Na jednoduchých příkladech ukázat procházení adresáře, čtení z textového souboru a zápis do textového souboru. Klíčové
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
6. PRÁCE S DATOVÝMI PROUDY
6. PRÁCE S DATOVÝMI PROUDY Balík java.io obsahuje třídy, které slouží pro zpracování datových výstupů a vstupů. Pro obvyklou práci se soubory zde můžeme najít třídy File a RandomAccessFile. Většina tříd
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Textové soubory. alg9 1
Textové soubory Textový soubor je posloupnost znaků členěná na řádky každý znak je reprezentován jedním bytem, jehož obsah je dán nějakým kódováním znaků členění na řádky je závislé na platformě a obvykle
1. Téma 12 - Textové soubory a výjimky
1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se
InputStream. FilterInputStream
6. Vstupy a výstupy Pro práci se vstupy a výstupy nám Java poskytuje celou řadu tříd a jejich metod. Jsou uloženy v balíku java.io. Tato knihovna je založena na mechanizmu tzv. vstupních a výstupních proudů
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Java - výjimky. private void vstup() throws IOException {... }
Java - výjimky Tato kapitola ukazuje na několika příkladech práci s výjimkami v Javě. Klíčové pojmy: Výjimka, hierarchie výjimek, zachytávání výjimek, blok try-catch, tvorba vlastních výjimek, propagace
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Algoritmizace a programování
Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.
13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny
Programování v Javě I. Únor 2009
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory
Seminář Java II p.1/43
Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii
Programování v Javě I. Leden 2008
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory
KTE / ZPE Informační technologie
4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší
Ošetřování chyb v programech
Ošetřování chyb v programech Úvod chyba v programu = normální záležitost typy chyb: 1) programátorská chyba při návrhu každých 10 000 řádek 1 chyba lze jen omezeně ošetřit (před pádem aplikace nabídnout
Teoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20
Obsah 5 Obsah Předmluva k aktuálnímu vydání 15 1 Úvod k prvnímu vydání z roku 2000 16 Typografické a syntaktické konvence................ 20 2 Základní pojmy 21 2.1 Trocha historie nikoho nezabije................
Java Výjimky Java, zimní semestr
Java Výjimky 1 Výjimky (exceptions) hlášení a ošetření chyb výjimka signalizuje nějaký chybový stav výjimka = instance třídy java.lang.throwable dvě podtřídy java.lang.error a java.lang.exception konkrétní
Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu
Seminář Java Zavádění tříd Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Zavádění tříd 1/ 16 JVM zavádí třídy dynamicky Class loader objekt schopný zavádět třídy abstraktní
Výjimky. v C# a Javě
Výjimky v C# a Javě Výjimky v C# Výjimky poskytují v C# způsob, jak reagovat na nečekané události. Uživatel např. zadá místo čísla text nebo soubor, který chceme otevřít, je využíván jiným procesem. To
29. Výjimky, jejich vznik, vyhození, odchyt a zpracování. (A7B36PVJ)
29. Výjimky, jejich vznik, vyhození, odchyt a zpracování. (A7B36PVJ) Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka
Výjimky. Tomáš Pitner, upravil Marek Šabo
Výjimky Tomáš Pitner, upravil Marek Šabo K čemu jsou výjimky Výjimky jsou mechanizmem umožňujícím reagovat na nestandardní (tj. chybové) běhové chování programu, které může mít různé příčiny: chyba okolí:
10 Balíčky, grafické znázornění tříd, základy zapozdření
10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému
10. března 2015, Brno Připravil: David Procházka. Programovací jazyk C++
10. března 2015, Brno Připravil: David Procházka Práce s výjimkami Programovací jazyk C++ K čemu slouží výjimky Strana 2 / 25 Obsah přednášky 1 K čemu slouží výjimky 2 Vytváření výjimek 3 Speciální případy
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem
Připravil: David Procházka. Programovací jazyk C++
17. října 2011, Brno Připravil: David Procházka Práce s výjimkami Programovací jazyk C++ Obecně Strana 2 / 21 Jak se může program zachovat při chybě Dříve byl obvyklý způsob zavolat metodu abort. Metoda
1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++
Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++ Prostory jmen U programů mohou někdy nastat kolize mezi jmény (tříd, funkcí, globálních proměnných atd.) pokud v různých
NIO. Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
NIO Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Java a XML. 10/26/09 1/7 Java a XML
Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis
Algoritmizace a programování. Terminálový vstup a výstup
Algoritmizace a programování Terminálový vstup a výstup Verze pro akademický rok 2012/2013 1 Výpis hodnot Terminálový vstup a výstup budeme používat jako základní způsob interakce programu s uživatelem
Vaše jistota na trhu IT. Balíčky. Rudolf Pecinovský rudolf@pecinovsky.cz
Vaše jistota na trhu IT Balíčky Rudolf Pecinovský rudolf@pecinovsky.cz Problémy velkých aplikací Rozsáhlé aplikace používají velké množství názvů objektů a jejich zpráv, které různé části programu sdílí
2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová
Programové konvence, dokumentace a ladění 2. přednáška Alena Buchalcevová Proč dodržovat programové konvence? velkou část životního cyklu softwaru tvoří údržba údržbu provádí většinou někdo jiný než autor
7. Datové typy v Javě
7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů
Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí
Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků
Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
Design time - vytváří se program - metadata - vytváří se např. třída. Run time - běh programu - ukládá se do paměti počítače - vytváří se např.
Design time - vytváří se program - metadata - vytváří se např. třída Run time - běh programu - ukládá se do paměti počítače - vytváří se např. objekt rysy javy - zavedení jasného pořádku a etikety - přísné
Úvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
Vytváření a použití knihoven tříd
Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce
7 Formátovaný výstup, třídy, objekty, pole, chyby v programech
7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,
Více o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
Zápis programu v jazyce C#
Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač
17. Projekt Trojúhelníky
Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským
Regulární výrazy. Vzory
Regulární výrazy Regulární výrazy jsou určeny pro práci s textovými řetězci, jsou součástí J2SDK až od verze 1.4, v předchozích verzích je potřeba použít některou z externích knihoven, např. knihovnu ORO
Výjimky. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické
Výjimky A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Obsah Výjimky Pojem výjimky Princip mechanismu zpracování výjimek, try + catch Kompletní zpracování výjimek Vyhození
Základy objektové orientace I. Únor 2010
Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných
4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ
4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ OBJEKT Program v Javě je staticky strukturován na třídy, jejichž instance (objekty) za běhu dynamicky programu vznikají a zanikají. Objekt je nejprve
11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9
Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií
RMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
Abstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
Paměť počítače. alg2 1
Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových
6. Příkazy a řídící struktury v Javě
6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return
NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
NetBeans platforma Aplikační programování v Javě (BI-APJ) - 7 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme
Algoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
PREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);
TŘÍDY POKRAČOVÁNÍ Události pokračování public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e); class Bod private int x; private int y; public event ZmenaSouradnicEventHandler ZmenaSouradnic;
Konstruktory a destruktory
Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,
Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01
Anotace sady: Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01 Autor: Blanka Sadovská Klíčová slova: Algoritmus, proměnná, diagram Stupeň a typ vzdělávání: gymnaziální vzdělávání, 3. ročník
Fronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4
Fronta (Queue) Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Fronta uplatňuje mechanismus přístupu FIFO first
3. Třídy. Základní pojmy objektového programování. Třídy
3. Třídy Základní pojmy objektového programování Jak už víme, je Java objektovým programovacím jazykem. V úvodu této kapitoly si objasníme základní pojmy objektové teorie. Objekt představuje souhrn dat
Programovací jazyk Java
1 z 8 Programovací jazyk Java Enumerace (výčty) Složitější definice výčtového typu Konstanty anonymních typů Výčtový typ a datové struktury Java packaging JAR archivy CLASSPATH Apache Ant 10. přednáška
PROGRAMOVÁNÍ V C++ CVIČENÍ
PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné
RMI - Distribuované objekty v Javě
Vysoká škola báňská - Technická univerzita Ostrava 30. března 2009 Osnova Co je to RMI? 1 Co je to RMI? 2 Vnější pohled Vrstvy RMI Stub & Skeletons Layer Remote Reference Layer Transport Layer Pojemnování
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. 1. Odkrokujte následující program a s použitím notace z přednášky popište stav paměti
Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo
Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)
Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní
Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti
Zpracování výjimečných situací
Zpracování výjimečných situací Jazyky bez ovladačů výjimek výskyt výjimky způsobí přenesení výpočtu do operačního systému. Ten vypíše zprávu a ukončí program. Jazyky s ovladačem výjimek programy mohou
ADT/ADS = abstraktní datové typy / struktury
DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní
Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář
Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění
Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!
Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného
Jazyk C++ II. Šablony a implementace
Jazyk C++ II Šablony a implementace AR 2013/2014 Jazyk C++ II Úvod Dědičnost a kompozice nejsou vždy tou správnou odpovědí na požadavky znovupoužitelnosti kódu. Proto máme možnost definování určité třídy
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
7. Statické prvky třídy
Statické prvky třídy strana 61 7. Statické prvky třídy V úvodních kapitolách jsme popsali deklaraci a používání datových atributů a metod instance. Jsou to nejčastě ji používané součásti třídy, nicméně
11 Diagram tříd, asociace, dědičnost, abstraktní třídy
11 Diagram tříd, asociace, dědičnost, abstraktní třídy Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost diagramům tříd, asociaci,
Dědičnost (inheritance)
Dědičnost (inheritance) Úvod Umožňuje objektům převzít (zdědit) členy jiných objektů a pouze je rozšířit o Auto: lze odvodit Vztah je osobní auto, cisterna jsou auta Základní pojmy Bázová třída (rodič)
IW5 - Programování v.net a C# 4 Pokročilé konstrukce C#
4 - Pokročilé konstrukce C# IW5 - Programování v.net a C# Strana 1 Obsah přednášky Výjimky Delegáti Události Lambda výrazy Strana 2 Výjimky a jejich zpracování Slouží k ošetření výjimečných (chybových)
Technologie JavaBeans
Technologie JavaBeans doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Historie Komponentový model Typy komponent
Generické programování
Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =
IB111 Programování a algoritmizace. Objektově orientované programování (OOP)
IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,
Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth
Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze
Java Řetězce Java, zimní semestr
Java Řetězce 1 Řetězec instance třídy java.lang.string kompilátor s nimi zachází téměř jako s primit. typy řetězcové konstanty = instance třídy String nezměnitelné!!! pro změny třídy StringBuffer, StringBuilder
Principy objektově orientovaného programování
Principy objektově orientovaného programování Třídy a objekty doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz C E T
Výjimky a soubory. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
Výjimky a soubory Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek, 2017 B0B36PJV Přednáška
Soubory. Jan Faigl. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 12 A0B36PR1 Programování 1
Soubory Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 12 A0B36PR1 Programování 1 Jan Faigl, 2016 A0B36PR1 Přednáška 12: Soubory 1 / 39 Část 1 Soubory