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



Podobné dokumenty
Abstraktní datové typy: zásobník

Principy objektově orientovaného programování

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

Třídy a objekty -příklady

Typický prvek kolekce pro české řazení

Úvod do programovacích jazyků (Java)

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

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

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

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

Java - řazení objektů

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

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

typová konverze typová inference

Výčtový typ strana 67

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

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

7. Dynamické datové struktury

Aplikace s grafickým uživatelským rozhraním

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

RMI Remote Method Invocation

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

boolean hasnext() Object next() void remove() Kolekce

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

Softwarové komponenty a Internet

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

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

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

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

Třída jako zdroj funkcí

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

Seminář Java II p.1/43

Programování v Javě I. Leden 2008

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

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

Teoretické minimum z PJV

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy

Objektově orientované programování

4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ

1. Téma 12 - Textové soubory a výjimky

Soubor jako posloupnost bytů

Algoritmizace a programování

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

Třída jako datový typ. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

UJO Framework. revoluční architektura beans. verze

Regulární výrazy. Vzory

KTE / ZPE Informační technologie

Seminář Java IV p.1/38

Datové abstrakce v programovacích jazycích

Generické programování

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

20. Projekt Domácí mediotéka

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

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Java a Caché IV: Manipulace s objekty

Technologie JavaBeans

OOPR_05. Případové studie

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

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

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/

Vytváření uživatelských datových typů a funkcí v Javě

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

Úvod do programování v jazyce Java

Třída jako datový typ. BD6B36PJV 01 Fakulta elektrotechnická České vysoké učení technické

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

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

Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Java aplety. Předávání parametrů z HTML

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

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

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

Datové struktury. alg12 1

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

Architektury informačních systémů

Projekty pro výuku programování v jazyce Java

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

PREPROCESOR POKRAČOVÁNÍ

Skriptovací jazyky. Obsah

Práce se soubory v Javě

Abstraktní třída a rozhraní

Třídy a dědičnost. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

Zápis programu v jazyce C#

Úvod do programovacích jazyků (Java)

Programovací jazyk Java

Jak v Javě příkazy, operace a výrazy. BD6B36PJV 00 Fakulta elektrotechnická České vysoké učení technické

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Část 1 Třídy a objekty. Objektově orientované programování. Část 2 Vztahy mezi objekty. Část 3 Objektově orientované programování (v Javě)

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

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);

1. Programování proti rozhraní

Objektově orientované programování

Iterator & for cyklus

Java Enum Java, zimní semestr ,2017 1

Java efektivně. Lukáš Zapletal liberix.cz. Pokročilejší techniky programování v Javě

Tvorba informačních systémů

1. ÚVOD ZÁKLADY JAZYKA...

Transkript:

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 více programátorů na jednom projektu class MojeTrida??? možnost distribuce knihoven tříd použití implementací z různých zdrojů v jedné aplikaci new Seznam()??? Knihovny tříd 2 Prostory jmen Jak zajistit jednoznačnost názvů? konvence pro pojmenování class MB_Trida centrální přidělování nerealizovatelné využití existujících jednoznačných názvů jméno domény organizace cs.vsb.cz, sun.com,... Jména balíků tříd (packages) java.lang. String. substring() jméno balíku jméno třídy jméno metody cz.vsb.cs.katis. Student. getlogin() jméno balíku jméno třídy jméno metody Knihovny tříd 3 Knihovny tříd 4 1

Vyhledávání balíků umístění přeložených tříd soubory.class archivy.jar (odpovídá formátu.zip) nastavení cest pro vyhledávání set CLASSPATH=.;c:/java/lib;c:/java/lib/mylib.jar java classpath./classes vyuka.java.priklad1 struktura adresáře odpovídá jménu balíku./classes/vyuka/java/priklad1.class Definice příslušnosti k balíku package cz.vsb.cs.katis; public class Student String login; public String getlogin() return login;... Knihovny tříd 5 Knihovny tříd 6 Přístup k prvkům balíku 1. Plně kvalifikované jméno java.util.date = new java.util.date(); 2. Příkaz import dovoz jedné třídy import java.util.date; Date = new Date(); 3. Příkaz import dovoz celého balíku Date = new Date(); Zapouzdření prvků v balíku Třídy a rozhraní označené public přístupné ze všech balíků v souboru.java může být pouze jeden prvek označený public; jméno se musí shodovat se jménem zdrojového souboru Třídy a rozhraní bez označení public přístupné pouze ze stejného balíku v souboru.java jich může být libovolný počet Knihovny tříd 7 Knihovny tříd 8 2

Zapouzdření prvků ve třídě private dostupné pouze v rámci těla třídy protected dostupné v rámci stejného balíku + třídám, které z aktuální třídy dědí public dostupné z libovolné třídy libovolného balíku bez označení dostupné z libovolné třídy téhož balíku Kolize ve jménech Odkaz musí být jednoznačný import cz.vsb.cs.util.*; Date today = new Date(); java.util.date today = new java.util.date(); Pozn.: Co když chybí příkaz package? implicitní balík vše funguje i bez public! Knihovny tříd 9 Knihovny tříd 10 java.lang nepotřebuje příkaz import, doveze se automaticky základní třídy (Object, Class, String, System, Math, Integer, Thread,...), rozhraní (Comparable,...) a výjimky (Exception,...) System.exit(1); System.out.println( str.tolowercase() ); int val = Integer.parseInt(str); double rnd = Math.random(); if( Character.isDigit(c) ) java.util pomocné třídy (Currency, Calendar, Date, Random), rozhraní a implementace abstraktních datových typů (List, Set, Map, LinkedList, TreeSet, TreeMap) System.out.println(new Date()); Arrays.sort(arr); Knihovny tříd 11 Knihovny tříd 12 3

java.io práce s datovými proudy (soubory, bloky paměti, řetězce, roury,...) java.net podpora síťových aplikací (třídy URL, Socket,...) java.rmi vzdálené volání metod (rozhraní Remote) java.applet podpora appletů aplikací běžících v prohlížeči na straně klienta (IE, Netscape,...) java.awt jednoduchá knihovna komponent grafického uživatelského rozhraní javax.swing pokročilá knihovna komponent grafického uživatelského rozhraní Knihovny tříd 13 Knihovny tříd 14 java.sql, javax.sql jednotný přístup k SQL databázím javax.xml.parsers, javax.xml.transform analýza XML souborů a jejich transformace java.security, javax.security kryptografie a bezpečnost aplikací Knihovny tříd 15 package cviceni3; public class Complex private double re; private double im; public double getre() return re; public double getim() return im; public double abs() return Math.sqrt(re * re + im * im); Knihovny tříd 16 4

public Complex() public Complex(double re) this.re = re; this.im = 0.0; public Complex(double re, double im) this.re = re; this.im = im; public void add(complex c) re += c.re; im += c.im; public static Complex add(complex c1, Complex c2) double re = c1.re + c2.re; double im = c1.im + c2.im; return new Complex(re, im); Knihovny tříd 17 Knihovny tříd 18 public String tostring() return im == 0.0? Double.toString(re); : re == 0.0? im + i : re + (im < 0.0? "" : "+ ) + im + "i"; public boolean equals(object obj) if( obj instanceof Complex ) Complex c = (Complex)obj; return re == c.re && im == c.im; return false; Knihovny tříd 19 Domácí úkol Vytvořte funkci, která převede řetězec reprezentující přirozené číslo v soustavě o zadaném základu na hodnotu čísla static int tointeger(string s, int base) for(int i = 0; i < s.length(); i++) char c = s.charat(i); Knihovny tříd 20 5