Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
|
|
- Stanislav Němec
- před 8 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), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 1/29
2 1/2 Abstraktní třída bývá používána jako nadtřída jiných tříd obsahující společné atributy a metody těchto tříd. Nemůžeme vytvořit instanci abstraktní třídy. Můžeme ale vytvořit instanci neabstraktní podtřídy. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 2/29
3 2/2 jsou deklarovány klíčovým slovem abstract. abstract class Vehicle { / / a b s t r a k t n i t r i d a class Car extends Vehicle { / / n e a b s t r a k t n i t r i d a Abstraktní třídu můžeme použít jako typ reference na instanci neabstraktní třídy. Vehicle a = new Car ( ) ; a. move( Vehicle.MOVE_UP) ; Nemůžeme vytvořit instanci abstraktní třídy. Vehicle b = new Vehicle ( ) ; / / Chyba p r i prekladu c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 3/29
4 Abstraktní metody 1/2 mohou obsahovat abstraktní metody. Tyto metody jsou označeny klíčovým slovem abstract a mají pouze hlavičku, tělo je nahrazeno ;. abstract class Vehicle { abstract i n t move ( i n t d i r e c t i o n ) ; / / a b s t r a k t n i m. Každá abstraktní metoda musí být implementována v neabstraktní třídě. class Car extends Vehicle { i n t move( i n t d i r e c t i o n ) { / / implementace c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 4/29
5 Abstraktní metody 2/2 Každá třída obsahující neimplementovanou abstraktní metodu (přímo nebo zděděnou) musí být deklarována jako abstraktní. Abstraktní metody jsou volány jako jiné metody - volána je implementace metody v podtřídě. Vehicle [ ] v e h i c l e s = new Vehicle [ ] ; v e h i c l e s [ 0 ] = new Car ( ) ; v e h i c l e s [ 1 ] = new Truck ( ) ; for ( i n t i = 0 ; i < v e h i c l e s. l e n g t h ; i + + ) { / / volame metodu move ( ) p r i s l u s n e t r i d y v e h i c l e s [ i ]. move (MOVE_UP) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 5/29
6 1/6 je pojmenovaná kolekce deklarací metod. V rozhraní můžeme rovněž deklarovat konstanty. Definice rozhraní se podobá definici třídy, ale místo klíčového slova class používáme klíčové slovo interface. interface Moveable { i n t move( i n t d i r e c t i o n ) ; / / metoda i n t MOVE_UP = 0 ; / / konstanty Definice metod je jako definice abstraktních metod až na vynechání klíčového slova abstract. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 6/29
7 Rozhraní 2/6 Úvod do programovacích jazyků (Java), 7 Pokud třída poskytuje implementaci metod rozhraní, říkáme že třída implementuje rozhraní. class Car implements Moveable { public i n t move ( i n t d i r e c t i o n ) { / / implementace metody r o z h r a n i c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 7/29
8 Rozhraní 3/6 Úvod do programovacích jazyků (Java), 7 Reference, která ukazuje na objekt implementující dané rozhraní může být použita stejně jako reference na instanci. Car c = new Car ( ) ; Moveable m = c ; m. move(move_up) ; m. randommove ( ) ; / / chyba prekladu / / randommove ( ) neni deklarovana / / v r o z h r a n i Moveable Můžeme volat pouze metody deklarované v rozhraní. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 8/29
9 Rozhraní 4/6 Úvod do programovacích jazyků (Java), 7 Rozhraní definuje protokol chování, které může být implementováno libovolnou třídou v hierarchii tříd. Rozhraní deklaruje množinu metod, ale neimplementuje tyto metody. Třída implementující rozhraní musí implementovat všechny metody rozhraní. Můžeme vytvořit hierarchii rozhraní podobnou hierarchii tříd Mluvíme o nad-rozhraní (superinterfaces) a pod-rozhraní (subinterfaces). interface Flyable extends Moveable { void s e t A l t i t u d e ( double a l t i t u d e ) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 9/29
10 5/6 Třída může implementovat více než jedno rozhraní. Jména různých rozhraní jsou oddělena,. class H o v e r c r a f t Car implements Movable, Flyable { Metody deklarované v rozhraní jsou implicitně public a abstract. Není možné toto změnit. Atributy deklarované v rozhraní jsou implicitně public, static a final. Jedná se tedy o konstanty. Není možné toto změnit. Když třída implementuje rozhraní, musí implementovat všechny metody nebo musí být deklarována jako abstraktní. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 10/29
11 Rozhraní 6/6 Úvod do programovacích jazyků (Java), 7 Rozhraní vs Abstraktní třída Rozhraní neimplementuje metody, zatímco abstraktní třída může. Rozhraní nemůže deklarovat statické metody, zatímco abstraktní třída může. Rozhraní nemůže deklarovat instanční proměnné, zatímco abstraktní třída může. Rozhraní nemůže deklarovat statické proměnné které nejsou final, zatímco abstraktní třída může. Třída může implementovat více rozhraní, ale může dědit z nejvýše jedné třídy. Rozhraní není součástí hierarchie tříd, libovolná třída může implementovat stejné rozhraní. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 11/29
12 1/3 jsou deklarovány klíčovým slovem final. f i n a l i n t MOVE_UP = 1 ; Hodnota takto deklarované konstantě může být přiřazena pouze při deklaraci. V případě instační proměnné také v konstruktoru. Pokud se pokusíme přiřadit hodnotu na jiném místě, překladač nahlásí chybu. MOVE_UP = 1 0 ; / / Chyba p r i prekladu často deklarujeme jako třídní (static), v tomto případě existuje pouze jedna kopie pro všechny instance. s t a t i c f i n a l i n t NUMBER = 1 0 ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 12/29
13 2/3 Konvence: Jména konstant zapisujeme velkýmy znaky a znaky _. Často používaným případem použití konstant je reprezentace konečné množiny hodnot. Každému prvku množiny je přiřazeno celé číslo celočíselná konstanta. V kódu používáme názvy deklarovaných konstant místo celočíselných hodnot. Vyvarujeme se možných chyb a kód získá na čitelnosti. c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 13/29
14 3/3 Konvence: konstanty se stejné množiny mají společný prefix. / / smer pohybu v o z i d l a v CarGame public f i n a l s t a t i c i n t DIRECTION_UP = 0, DIRECTION_DOWN = 1, DIRECTION_LEFT = 2, DIRECTION_RIGHT = 3 ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 14/29
15 Rozhraní, příklad 1/2 Rozhraní Enumeration z Java API slouží pro iteraci prvky datové struktury. public interface Enumeration { boolean hasmoreelements ( ) ; Object nextelement ( ) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 15/29
16 Rozhraní, příklad 2/2 import java. u t i l. ; public s t a t i c void main ( S t r i n g args [ ] ) { Vector v = new Vector ( ) ; v. add (new I n t e g e r ( 1 ) ) ; v. add (new Double ( 2. 2 ) ) ; v. add (new I n t e g e r ( 3 ) ) ; for ( Enumeration e = v. elements ( ) ; e. hasmoreelements ( ) ; ) { System. out. p r i n t l n ( e. nextelement ( ) ) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 16/29
17 , příklad CarGame, Vehicle.java 1/4 / Vehicle. java Vozidlo. Michal Kratky / package cargame ; public abstract class Vehicle { i n t mx = 0, my = 0 ; / / pozice GameArea mgamearea ; / / ukazatel na h r a c i pole c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 17/29
18 , příklad CarGame, Vehicle.java 2/4 public f i n a l s t a t i c i n t DIRECTION_UP = 0, DIRECTION_DOWN = 1, DIRECTION_LEFT = 2, DIRECTION_RIGHT = 3 ; public f i n a l s t a t i c i n t MOVE_LEGAL = 0, MOVE_OUT = 1, MOVE_CRASH = 2, MOVE_UNSUPPORTED = 3 ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 18/29
19 , příklad CarGame, Vehicle.java 3/4 public Vehicle ( i n t x, i n t y, GameArea gamearea ) { public Vehicle ( ) { public i n t getx ( ) { return mx; public i n t gety ( ) { return my; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 19/29
20 , příklad CarGame, Vehicle.java 4/4 / / Nahodny pohyb v o z i d l a o jednu p o z i c i. public i n t RandomMove ( ) { / / Pohyb v o z i d l a ve smeru o jednu p o z i c i. public i n t Move ( i n t d i r e c t i o n ) { abstract void p r i n t ( ) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 20/29
21 , příklad CarGame, Car.java 1/1 package cargame ; public class Car extends Vehicle { public Car ( i n t x, i n t y, GameArea gamearea ) { mgamearea = gamearea ; mx = x ; my = y ; public Car ( ) { void p r i n t ( ) { System. out. p r i n t ( # ) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 21/29
22 , příklad CarGame, Truck.java 1/3 package cargame ; public class Truck extends Vehicle { i n t mlight ; public s t a t i c f i n a l i n t LIGHT_NONE = 0, LIGHT_RED = 1, LIGHT_BLUE = 2 ; public Truck ( i n t x, i n t y, GameArea gamearea ) { super ( x, y, gamearea ) ; mlight = LIGHT_NONE ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 22/29
23 , příklad CarGame, Truck.java 2/3 / / nastav nahodne s v e t l o auta public void setrandomlight ( ) { / / nastav s v e t l o auta public void s e t L i g h t ( i n t l i g h t ) { public i n t g e t L i g h t ( ) { c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 23/29
24 , příklad CarGame, Truck.java 3/3 public void p r i n t ( ) { char symbol = o ; i f ( mlight = = LIGHT_RED) { symbol = R ; else i f ( mlight = = LIGHT_BLUE) { symbol = B ; System. out. p r i n t ( symbol ) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 24/29
25 , příklad CarGame, GameArea.java 1/4 package cargame ; public class GameArea { i n t mwidth, mheight ; / / s i r k a a vyska pole Vehicle marea [ ] [ ] ; / / h r a c i pole public GameArea ( i n t width, i n t h e i g h t ) { mwidth = width ; mheight = h e i g h t ; marea = new Vehicle [ width ] [ h e i g h t ] ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 25/29
26 , příklad CarGame, GameArea.java 2/4 i n t Move( Vehicle vehicle, i n t oldx, i n t oldy, i n t newx, i n t newy ) { i n t move = set (newx, newy, v e h i c l e ) ; i f ( move = = Vehicle.MOVE_LEGAL ) { marea [ oldx ] [ oldy ] = null ; return move ; public Vehicle get ( i n t x, i n t y ) { return marea [ x ] [ y ] ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 26/29
27 , příklad CarGame, GameArea.java 3/4 public i n t set ( i n t x, i n t y, Vehicle v e h i c l e ) { i n t move = MOVE_LEGAL; i f ( x >= 0 && x < mheight && y >=0 && y < mwidth ) { i f ( get ( x, y )! = null ) { move = MOVE_CRASH ; else { marea [ x ] [ y ] = v e h i c l e ; else { move = Vehicle.MOVE_OUT ; return move ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 27/29
28 , příklad CarGame, GameArea.java 4/4 public void p r i n t ( ) { / / V y t i s k n i pole System. out. p r i n t ( "GameArea : \ n " ) ; for ( i n t i = mheight 1 ; i > = 0 ; i ) { System. out. p r i n t ( " " ) ; for ( i n t j = 0 ; j < mwidth ; j + + ) { i f ( get ( i, j ) = = null ) { System. out. p r i n t ( " " ) ; else { get ( i, j ). p r i n t ( ) ; System. out. p r i n t ( " \ n " ) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 28/29
29 , příklad CarGame, CarGame.java 1/1 public void Run ( ) { / / v y t v o r h r a c i pole a pole v o z i d e l GameArea gamearea = new GameArea ( 1 0, 1 0 ) ; Vehicle vs [ ] = new Vehicle [NUMBER_OF_CARS ] ; / / v y t v o r dve auta a poloz j e do hraciho pole vs [ 0 ] = new Car ( 4, 4, gamearea ) ; gamearea. set ( vs [ 0 ]. getx ( ), vs [ 0 ]. gety ( ), vs [ 0 ] ) ; vs [ 2 ] = new Truck ( 8, 8, gamearea ) ; gamearea. set ( vs [ 2 ]. getx ( ), vs [ 2 ]. gety ( ), vs [ 2 ] ) ; c 2006 Michal Krátký Úvod do programovacích jazyků (Java) 29/29
Ú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
typová konverze typová inference
Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie
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ů
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ů
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
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
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ů
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í
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ů
Abstraktní třída a rozhraní
Abstraktní třída a rozhraní Někdy se může stát, zejména při psaní v hierarchické struktuře hodně nadřazených tříd, že tušíme, že bude ve zděděných třídách vhodné použít nějakou metodu. Tuto metodu ještě
Třídy, polymorfismus. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické
Třídy, polymorfismus A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Polymorfizmus ~ vícetvarost Polymorfizmus základní vlastnost objektového přístupu základní princip polymorfismu:
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
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
Seminář Java IV p.1/38
Seminář Java IV Seminář Java IV p.1/38 Rekapitulace Deklarace tříd Proměnné, metody, konstruktory, modifikátory přístupu Datové typy primitivní, objektové, pole Dědičnost Řídící konstrukce Podmínky, cykly
Ú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
1. Dědičnost a polymorfismus
1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář
Ú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
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ů
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
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 =
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í
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
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;
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
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
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ů
10 Generické implementace
10 Generické implementace Main Entry: 1 ge ner ic Pronunciation: j&-'ner-ik Function: adjective Etymology: French générique, from Latin gener-, genus birth, kind, class 1 a : relating to or characteristic
PŘETĚŽOVÁNÍ OPERÁTORŮ
PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako
Výčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.
23. Třídy, generické třídy, instance, skládání, statické metody a proměnné. Zapouzdření, konstruktory, konzistence objektu, zpřístupnění vnitřní implementace, modifikátory public a private. Polymorfismus,
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,
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
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
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená
20. Projekt Domácí mediotéka
Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý
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ů
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
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,
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ů
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í
9. přednáška - třídy, objekty
třída String a její použití kolekce, typované kolekce 9. přednáška - třídy, objekty Algoritmizace (Y36ALG), Šumperk - 9. přednáška 1 Třída String Objekty knihovní třídy String jsou řetězy znaků Od ostatních
boolean hasnext() Object next() void remove() Kolekce
11. Kontejnery Kontejnery Kontejnery jako základní dynamické struktury v Javě Kolekce, iterátory (Collection, Iterator) Seznamy (rozhraní List, třídy ArrayList, LinkedList) Množiny (rozhraní Set, třída
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
Bridge. Známý jako. Účel. Použitelnost. Handle/Body
Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době
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
Osnova přednášky. Programové prostředky řízení Úvod do C# II. Přístup ke členům. Členy (Members)
Osnova přednášky Programové prostředky řízení Úvod do C# II. Členy (Members) Jmenné prostory (Namespaces) Třídy (Classes) Struktury (Structs) Pavel Balda Západočeská univerzita v Plzni, FAV, KKY 2 Členy
Dynamicky vázané metody. Pozdní vazba, virtuální metody
Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:
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
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
Reflexe. Aplikační programování v Javě (BI-APJ) - 8 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
Reflexe Aplikační programování v Javě (BI-APJ) - 8 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ší
Výchozí a statické metody rozhraní. Tomáš Pitner, upravil Marek Šabo
Výchozí a statické metody rozhraní Tomáš Pitner, upravil Marek Šabo Výchozí a statické metody rozhraní Java 8 přidává ohledně metod v rozhraní nové možnosti. Neuvidíme je tedy ve starém kódu a mnozí vývojáři
Parametrizované třídy Generics generické třídy. JDK zavádí mimo jiné tzv. parametrizované třídy - generics
1 Parametrizované třídy Generics generické třídy JDK zavádí mimo jiné tzv. parametrizované třídy - generics Úvod 2 podobnost se šablonami (templates) z C++ nejčastěji použité v oblasti knihoven kontejnerového
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
Abstraktní třídy, polymorfní struktury
Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní třídy, polymorfní struktury BI-PA2, 2011, Přednáška 9 1/32 Abstraktní třídy, polymorfní struktury Ing. Josef Vogel, CSc Katedra softwarového inženýrství
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í
OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC
OMO 4 - Creational design patterns A Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC Ing. David Kadleček, PhD. kadlecd@fel.cvut.cz, david.kadlecek@cz.ibm.com 1 Creational
Viditelnost (práva přístupu) Tomáš Pitner, upravil Marek Šabo
Viditelnost (práva přístupu) Tomáš Pitner, upravil Marek Šabo Viditelnost Přístup ke třídám i jejim prvkům lze (podobně jako např. v C++) regulovat. Přístupem se rozumí jakékoli použití dané třídy, prvku
9. Polymorfismus a rozhraní
Polymorfismus a rozhraní strana 73 9. Polymorfismus a rozhraní Tato kapitola navazuje na základní informace o objektech v kapitole 2, zde se budeme zabývat přetěžováním metod, polymorfismem a rozhraními.
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í
UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/
UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok
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,
Komponenty v.net. Obsah přednášky
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 Rozdíl mezi COM a.net Distribuce komponent Programování
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ší
Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy
Ú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 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou
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
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)
Jazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí
11. Dědičnost. Dědičnost strana 103
Dědičnost strana 103 11. Dědičnost V této kapitole si vysvětlíme jeden ze základních pojmů objektově orientovaného programování dědičnost (inheritance). S ní souvisejí i následující témata: předek a potomek
IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33
Objekt jako proměnná Objekty a metody Objekt = proměnná referenčního typu vznik pomocí new, chování viz pole jako referenční proměnná minulý semestr Stack Heap objekt ref this 10 20 atr1 atr2 jinyobjekt
Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky
Google Web Toolkit Martin Šurkovský, SUR096 Vysoká škola Báňská - Technická univerzita Ostrava Katedra informatiky 29. března 2010 Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010
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í
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
Jazyk C++ I. Polymorfismus
Jazyk C++ I Polymorfismus AR 2013/2014 Jazyk C++ I Operátory Co to vůbec jsou operátory? Na co je používáme? AR 2013/2014 Jazyk C++ I 2 Operátory Můžeme si upravit operátory pro vlastní objektové typy?
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í
Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39
Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy
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
3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda
1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání
Datové struktury. alg12 1
Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro
Objektově orientované programování v PHP 5. Martin Klíma
Objektově orientované programování v PHP 5 Martin Klíma OOP & PHP 5 V PHP 5 konečně značné rozšíření OOP Blíží se to moderním programovacím jazykům jako Java nebo C# Výhody OOP Zapouzdření (nové modifikátory
OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
OSGi Aplikační programování v Javě (BI-APJ) - 6 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
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
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 sledujte stav paměti
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í
Ú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í
public class Karel { private int position; public boolean issmiling; public int getposition() { return position;
Objekty, třídy a hierarchie tříd Interface a abstraktní třídy Dědičnost Message passing Class diagramy a příklady systémů modelovaných pomocí OOP Volba správného přístupu Rozdíl mezi asociací, agregací
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í
IRAE 07/08 Přednáška č. 1
Úvod do předmětu OOP Objekt Proč OOP? Literatura, osnova předmětu viz. cvičení Základní prvek OOP sw inženýrství = model reálných objektů (věcí) člověk, auto, okno (ve windows), slovník, = model abstraktní
Třída jako zdroj funkcí
Třída jako zdroj funkcí Třída v jazyku Java je programová jednotka tvořená množinou identifikátorů, které mají třídou definovaný význam Základem uživatelského programu v jazyku Java je třída, ve které
Objekty v PHP 5.x. This is an object-oriented system. If we change anything, the users object.
Objekty v PHP 5.x This is an object-oriented system. If we change anything, the users object. Objektové PHP Objekty se poprvé objevili v PHP ve verzi 4. Nepříliš zdařilý pokus. Programátoři získali nedůvěru
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
Využití OOP v praxi -- Knihovna PHP -- Interval.cz
Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování
Mělká a hluboká kopie
Karel Müller, Josef Vogel (ČVUT FIT) Mělká a hluboká kopie BI-PA2, 2011, Přednáška 5 1/28 Mělká a hluboká kopie Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky, Fakulta
Dědění, polymorfismus
Programování v jazyce C/C++ Ladislav Vagner úprava Pavel Strnad Dědění. Polymorfismus. Dnešní přednáška Statická a dynamická vazba. Vnitřní reprezentace. VMT tabulka virtuálních metod. Časté chyby. Minulá
URČITÝM ZPŮSOBEM PODOBNÉ
Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat jiné objekty (tělo obsahuje buňky, letadlo součásti). Objekty URČITÝM
Java - řazení objektů
Java - řazení objektů Kapitola seznamuje se základními principy řazení objektů Klíčové pojmy: Přirozené řazení, absolutní řazení, ideální porovnávatelná třída ŘAZENÍ OBJEKTŮ U objektů není příliš jasné,
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