Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Podobné dokumenty
Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java)

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Programování v Javě I. Únor 2009

Programování v Javě I. Leden 2008

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

8 Třídy, objekty, metody, předávání argumentů metod

Seminář Java II p.1/43

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Úvod do programovacích jazyků (Java)

Teoretické minimum z PJV

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Algoritmizace a programování

Algoritmizace a programování

Výčtový typ strana 67

7. Datové typy v Javě

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Vytváření a použití knihoven tříd

Neměnné objekty. Tomáš Pitner, upravil Marek Šabo

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/

Algoritmizace a programování. Terminálový vstup a výstup

Soubor jako posloupnost bytů

Abstraktní datové typy: zásobník

Úvod do programování - Java. Cvičení č.4

ADT/ADS = abstraktní datové typy / struktury

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

typová konverze typová inference

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

3. Třídy. Základní pojmy objektového programování. Třídy

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Principy objektově orientovaného programování

Textové soubory. alg9 1

Datové struktury. alg12 1

KTE / ZPE Informační technologie

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

PREPROCESOR POKRAČOVÁNÍ

9. přednáška - třídy, objekty

KTE / ZPE Informační technologie

Programovací jazyk Java

Úvod do programování v jazyce Java

KTE / ZPE Informační technologie

10 Balíčky, grafické znázornění tříd, základy zapozdření

Java Výjimky Java, zimní semestr

Paměť počítače. alg2 1

1. Programování proti rozhraní

Algoritmizace a programování

Fronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4

Seminář Java IV p.1/38

7. Statické prvky třídy

Java - výjimky. private void vstup() throws IOException {... }

Úvodní informace. Petr Hnětynka 2/2 Zk/Z

public class Karel { private int position; public boolean issmiling; public int getposition() { return position;

20. Projekt Domácí mediotéka

Iterator & for cyklus

OOPR_05. Případové studie

Objektově orientované programování

RMI Remote Method Invocation

3 KTE / ZPE Informační technologie

Úvodní informace. Petr Hnětynka 2/2 Zk/Z

Abstraktní třída a rozhraní

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

UJO Framework. revoluční architektura beans. verze

Java a XML. 10/26/09 1/7 Java a XML

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Proměnné a datové typy

Podmínky na zápočet. Java, zimní semestr

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Programování v C++ 3, 3. cvičení

6. lekce Úvod do jazyka C knihovny datové typy, definice proměnných základní struktura programu a jeho editace Miroslav Jílek

"Václav Klaus". public class Clovek { protected String jmeno; protected int roknarozeni; public Clovek(String j, int rn) {

7. Dynamické datové struktury

Technologie JavaBeans

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Jazyk C# (seminář 6)

NPRG031 Programování II --- 2/2 Z, Zk

Čipové karty úvod, Ing. Jiří Buček. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze

8. přednáška: Soubory a proudy

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Generické programování

Vaše jistota na trhu IT. Balíčky. Rudolf Pecinovský

Úvodní informace. Petr Hnětynka 2/2 Zk/Z

Programování v C++ 2, 4. cvičení

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Datové abstrakce v programovacích jazycích

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing)

Třídy, polymorfismus. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

PŘETĚŽOVÁNÍ OPERÁTORŮ

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

Komponenty v.net. Obsah přednášky

Třída jako zdroj funkcí

Programování v C++ 1, 5. cvičení

6. PRÁCE S DATOVÝMI PROUDY

10. března 2015, Brno Připravil: David Procházka. Programovací jazyk C++

Transkript:

Ú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ů (Java) 1/21

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 2006 Michal Krátký Úvod do programovacích jazyků (Java) 2/21

Balíčky 2/2 Úvod do programovacích jazyků (Java), 8 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 2006 Michal Krátký Úvod do programovacích jazyků (Java) 3/21

Normativní jména tříd a rozhraní 1/2 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. Normativní jméno třídy nebo rozhraní z nepojmenovaného balíčku je pouze jméno této třídy nebo rozhraní. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 4/21

Normativní jména tříd a rozhraní 2/2 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(); Když použijeme jednoduché jméno, odkazujeme se na třídu nebo rozhraní z aktuálního balíčku. Např. Line line = new Line(); Balíček nesmí obsahovat jiné členy se stejným jménem, např.: Balíček drawing.figures nesmí obsahovat jinou třídu nebo rozhraní se jménem Line. Balíček nesmí obsahovat podbalíček Line. Balíček drawing nesmí obsahovat třídu nebo rozhraní s názvem figures. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 5/21

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 2006 Michal Krátký Úvod do programovacích jazyků (Java) 6/21

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 2006 Michal Krátký Úvod do programovacích jazyků (Java) 7/21

Deklarace import 1/2 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. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 8/21

Deklarace import 2/2 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.*; Zdrojový soubor může obsahovat několik deklarací import. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 9/21

příkazové řádky předávané programu při spouštění, např.: java c a t e s t. App 1 9 4 5 6 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 2006 Michal Krátký Úvod do programovacích jazyků (Java) 10/21

1/3 Ke každému primitivnímu typu náleží třída (object wrapper). Třídy obsahují metody, které můžeme použít pro práci s hodnotami primitivních datových typů. Někdy je nutné pracovat s touto třídou namísto s primitivním datovým typem. Hodnoty v instancích těchto tříd jsou neměnné. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 11/21

2/3 Primitive type Size [bits] Wrapper class boolean - Boolean char 16 Character byte 8 Byte short 16 Short int 32 Integer long 64 Long float 32 Float double 64 Double void - Void c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 12/21

3/3 Společným předkem tříd Byte, Short, Integer, Long, Float a Double je třída Number. Některé statické metody: Převod hodnoty na řetězec. Např.: String s = Integer.toString(v); Převod řetězce na hodnotu. Např.: int v = Integer.parseInt(str); Některé statické konstanty: MIN_VALUE, MAX_VALUE reprezentují minimální a maximální hodnotu daného typu. Např.: int v = Integer.MIN_VALUE; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 13/21

, catest, App.java 1/3 package c a t e s t ; public class App I n t A r r a y mintarray ; public App ( ) mintarray = new I n t A r r a y ( 1 0 ) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 14/21

, catest, App.java 2/3 public s t a t i c void main ( S t r i n g [ ] args ) new App ( ). Run ( args ) ; public void Run ( S t r i n g args [ ] ) i n t j = 0 ; for ( i n t i = 0 ; i < args. l e n g t h ; i + + ) i n t v = I n t e g e r. p a r s e I n t ( args [ i ] ) ; mintarray. setvalue ( j ++, v ) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 15/21

, catest, App.java 3/3 mintarray. p r i n t ( ) ; i n t maxindex = mintarray. FindMax ( ) ; System. out. p r i n t l n ( " Maximalni prvek j e : " + mintarray. getvalue ( maxindex ) + ", na p o z i c i : " + maxindex ) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 16/21

, catest, IntArray.java 1/4 package c a t e s t ; public class I n t A r r a y i n t marray [ ] ; public I n t A r r a y ( i n t c a p a c i t y ) marray = new i n t [ c a p a c i t y ] ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 17/21

, catest, IntArray.java 2/4 public void setvalue ( i n t index, i n t value ) marray [ index ] = value ; public i n t getvalue ( i n t index ) return marray [ index ] ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 18/21

, catest, IntArray.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 2006 Michal Krátký Úvod do programovacích jazyků (Java) 19/21

, catest, IntArray.java 4/4 public i n t FindMax ( ) i n t max = I n t e g e r. MIN_VALUE ; i n t index = 1; for ( i n t i = 0 ; i < marray. l e n g t h ; i + + ) i f ( max < marray [ i ] ) max = marray [ i ] ; index = i ; return index ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 20/21

, catest, kompilace, spouštění Kompilace: javac c a t e s t \ App. java Spouštění: java c a t e s t. App c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 21/21