Výčtové typy ( Java 5 ) Výčtové typy jsou speciální třídy zavedené pro větší bezpečí a pohodlí. V nejjednodušší variantě se definují příkladmo takto:

Slides:



Advertisements
Podobné prezentace
Funkce Připomeňme si program pro výpočet faktoriálu:
Advertisements

Pole, ukazatele a odkazy
Uživatelská rozhraní Uživatelská rozhraní 9. cvičení.
PJV151 Vnořené a vnitřní členy mohou být členy tříd a interfejsů. Je-li X obalem Y a Y je obalem Z, pak Z získá jméno X$Y$Z - kompilací vzniknou classy.
4IT1014IT101 Pátá přednáška Datové struktury - pokračování Statické prvky třídy.
Polymorfismus Dědičnost
Čtvrté cvičení Objektové programování Objektový model v Javě
VY_22_INOVACE_J-A-25 Aj pro 4.r./ snímek 1-7 /, 5. r. T I M E - ČAS Základní škola Ostrava, Gebauerova8, příspěvková organizace Autorka: Mgr. Daniela.
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
Objektové orientované programování Objektově orientované problémy v PHP Lukáš Masopust 2008.
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
PRÁCE S VLÁKNY A APLIKAČNÍ DOMÉNY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
Vaše jistota na trhu IT Interní datové typy Rudolf Pecinovský
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í.
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.
Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ.1.07/1.4.00/ Šablona:III/2č. materiálu: VY_32_INOVACE_102.
Jméno autora: Mgr. Olga Bayerlová Datum vytvoření: Číslo DUMu: VY_32_INOVACE_06_AJ1G Ročník: I. Anglický jazyk Vzdělávací oblast: Jazyk a jazyková.
Netrvaloppa21 Vytvořte třídu Student pro reprezentaci struktury student na ZČU. Atributy třídy budou fakulta a osobniCislo. Název třídy: Student proměnné.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Kam se ubírá jazyk C#? Dr. Ing. Dalibor Kačmář Academic Developer Evangelist Developer & Platform Evangelist Group Microsoft Czech & Slovakia Anders Hejlsberg.
Anotace: prezentace je určena pro žáky pátého ročníku materiál slouží k osvojení si učiva časových předložek druhy nejpoužívanějších časových předložek.
18.1 Days and dates Elektronická učebnice - I. stupeň Základní škola Děčín VI, Na Stráni 879/2 – příspěvková organizace Anglický jazyk Autor: Zuzana Tonderová.
Vaše jistota na trhu IT Výčtové a interní datové typy Rudolf Pecinovský
Programování v jazyce C++ Dědičnost a polymorfismus.
Interaktivní procvičování anglických slovíček na téma dny v týdnu.
Označení DUM Pl - DUM Autor Příjmení a jméno: Pavelková Irena, Bc. Škola: Základní škola a Mateřská škola Štěpánkovice, příspěvková organizace.
Prezentace je určena pro žáky pátého ročníku Materiál slouží k procvičování a opakování ročních období, měsíců v roce, dnů v týdnu Doplňování názvu ročního.
PJV15 1 Vnořené ( nested ) a vnitřní ( inner ) členy Třídy či interfejsy mohou být členy tříd či interfejsů. Je-li X obalem Y a Y obalem Z, pak Z získá.
Dělení desetinných čísel beze zbytku
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Čas API pojednavá čas obecným, globálním způsobem.
Tento Digitální učební materiál vznikl díky finanční podpoře EU- OP Vzdělávání pro konkurenceschopnost. Není –li uvedeno jinak, je tento materiál zpracován.
Anotace – Dny v týdnu Anotace Autor Čeština, angličtina Jazyk
OOP - Objektově Orientované Programování
Generické typy jsou třídy či interfejsy deklarující tzv. typové parametry jimiž: systematizují typovou kontrolu kompilátorem, vyjadřují jasněji smysl,
AUTOR: Mgr. Alena Kaĺavská NÁZEV: VY_32_INOVACE_ 10_My school
ZLOMKY II. – opakování pojmů a postupů při početních operacích
Uživatelem definované datové typy
State 1.
Java 8: Mary Had a Little Lambda
Programování v jazyce C++
Abstract Factory.
Polymorfismus = Mnohotvarost
Charakteristika výukového materiálu
Příkazy IF a SELECT CASE
Název školy: Základní škola a mateřská škola Domažlice , Msgre B
Sada 2 Matematika MŠ, ZŠ a PrŠ Trhové Sviny
Bridge.
Cvičení 4 Dědičnost objektů.
Logické funkce a obvody
Reflexe jako introspekce
Barvy a tvary A Pracovní list určený pro rozvoj zrakového vnímání a abstraktně vizuálního myšlení Postup práce: Spoj čarou stejné trička – jedno je barevné,
Komplexní čísla - 5 Číslo opačné Číslo komplexně sdružené
Násobení a dělení číslem 5
Posuň čárku 2.
Název školy: Základní škola a Mateřská škola Kladno, Norská 2633
DAYS OF THE WEEK Název školy: Základní škola a mateřská škola Bělá
Název školy: Základní škola a Mateřská škola Sepekov Autor:
Builder „Návrhový vzor oddělující konstrukci složitých objektů od jejich reprezentace. Čímž je možné použít stejný proces konstrukce pro rozdílné reprezentace.“
VY_32_INOVACE_VJ36.
C# přehled vlastností.
ZŠP a ZŠS Uherský Brod projekt č. CZ.1.07/1.4.00/
Dny − days Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Nikola Bachtíková. Dostupné z Metodického portálu ISSN: 
Sčítání a odčítání racionálních čísel
Vázání dat Data Binding
Autor : Mgr. Venuše Nováková Název materiálu:
AUTOR: Bc. Leona Vejrostová NÁZEV: VY_22_INOVACE_02_20_Dny v týdnu 1
Adapter
Bridge.
Class Diagrams.
Transkript prezentace:

Výčtové typy ( Java 5 ) Výčtové typy jsou speciální třídy zavedené pro větší bezpečí a pohodlí. V nejjednodušší variantě se definují příkladmo takto: enum Day { SUN, MON, TUE, WED, THU, FRI, SAT ; } a mají ordinální čísla 0 .. 6. Vypíší se takto: for ( Day d : Day.values( ) ) System.out.println( d.ordinal( )+ " " +d.name( ) ); Užijí se např. takto: Day d = Day.MON; switch ( d ) { case SAT: case SUN: case MON: ... // No work case FRI: ... // Partial work default: ... // Work } PJV51

Syntax výčtových typů Výčtové typy jsou potomky abstraktní třídy java.lang.Enum, ( ta je přímým potomkem java.lang.Object ). Z třídy v Enum však nelze přímo dědit. [ public ] enum Name [ implements Interface1, Interface2, ... ] { XX [ ( a, b, ... ) ] [ { nestatické členy anonymní třídy $1 } ], // statický YY [ ( a, b, ... ) ] [ { nestatické členy anonymní třídy $2 } ], // kontext ... ; // Výčtové konstanty musejí být první // - další statický kontext kdekoli dále. [ [ private ] Name ( Type1 a, Type2 b, ... ) { this.a = a; this.b = b; ... } ] // Konstruktorů může být libovolný počet. ... Type1 a; // Nestatické atributy všech výčtových ... Type2 b = ... ; // konstant ( nemusejí být finální ani ... Type3 q = ... ; // skryté ). ... [ [ abstract ] ... m1 ( ... ) ... ] // Nestatické metody zdědí všechny [ [ abstract ] ... m2 ( ... ) ... ] // konstanty, avšak lze je přepsat ... // v anonymních třídách. } pro každou konstantu - meta symboly PJV51

Abstraktní třída java.lang.Enum Má hlavičku public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable Comparable<E> - porovnává výčtové konstanty dle ordinálních čísel. Definuje tyto public metody: static T [ ] values() - vrátí pole static <T extends Enum<T>> valueOf( String name ) static <T extends Enum<T>> valueOf( Class enum T, String name ) String name( ) – vrátí jméno konstanty int ordinal( ) – vrátí pořadové číslo tj. index položky Class <T> declaringClass( ) int compareTo( T o ) PJV51

Příklad s atributy public enum Day { SUN ( "Sunday", "dimanche", new Point(0,0) ), MON ( "Monday", "lundi", new Point(1,0) ), TUE ( "Tuesday", "mardi", new Point(2,0) ), WED ( "Wednesday", "mercoledi", new Point(3,0) ), THU ( "Thursday", "jeudi", new Point(4,0) ), FRI ( "Friday", "vendredi", new Point(5,0) ), SAT ( "Saturday", "samedi", new Point(6,0) ), ; public final String en; public final String fr; public Point where; private Day( String en, String fr, Point where ) { // konstruktor this.en=en; this.fr=fr; this.where = where; } PJV51

Příklad s atributem a metodami public enum Month { JAN (31), FEB (-1) { public int daysInMonth( int yy ) { return yy%4==0 ? 29 : 28 ; } }, MAR (31), APR (30), MAY (31), JUN (30), JUL (31), AUG (31), SEP (30), OCT (31), NOV (30), DEC (31) ; private final int days; // hidden private Month( int days ) { this.days = days; } // constructor public int daysInMonth( int year ) { return days; } public static int totalDays( int year ) { return year%4 == 0 ? 366 : 365 ; } } PJV51