Kapitola 4: Práce s daty
97
Obrázek 4.2 Předání návratové hodnoty objektového typu
Obrázek 4.3 Zadání názvu vráceného odkazu (přesněji názvu proměnné, do níž uložíme vrácený odkaz)
BlueJ pak uloží odkaz do zásobníku, kde s ním můžeme pracovat podobně jako s odkazy na objekty, o jejichž vytvoření jsme požádali konstruktor (viz obrázek 4.4). Vzácnou výjimkou mezi objektovými typy je typ String. Když jsem se o něm poprvé zmiňoval, říkal jsem, že se v některých situacích chová obdobně jako primitivní datové typy. Jednou z takovýchto situací je v programu BlueJ předávání návratové hodnoty, při němž se String chová současně jako primitivní typ, protože zobrazí požadovanou hodnotu, a současně jako objektový datový typ, protože nám umožní získat odkaz. Zkuste např. poslat odkazu na červenou barvu zprávu String getNázev(). V dialogovém okně, které pak BlueJ otevře, uvidíte jak hodnotu tohoto řetězce, tak živá tlačítka nabízející možnost prohlížení a získání odkazu (viz obrázek 4.5).
Všimněte si, že vracený text je v uvozovkách. Zapamatujte si, že text, který bude hodnotou typu String, musí být vždy uváděn v uvozovkách. Jinak by jej překladač považoval za identifikátor.
A104b_Vracení_objektů opakuje předchozí látku a předvádí použí Animace vání zpráv vracejících hodnoty objektových typů. 43G_UOA1_J7_Zlom.doc, verze 3.00.3866, uloženo: čt 4.4.13 – 11:40
Strana 97 z 495 Ukázka elektronické knihy, UID: KOS190077
98
Java 7 – učebnice objektové architektury pro začátečníky
Obrázek 4.4 S odkazem získaným zasláním zprávy můžeme pracovat jako s jakýmkoliv jiným
Obrázek 4.5 Při vracení objektu typu String se zobrazí i příslušný řetězec
43G_UOA1_J7_Zlom.doc verze 3.00.3866, uloženo: čt 4.4.13 – 11:40
Strana 98 z 495 Ukázka elektronické knihy, UID: KOS190077
Kapitola 4: Práce s daty
4.2
99
Parametry metod
Prozatím jsme se omezovali na používání konstruktorů, jejichž závorky za názvem konstruktoru byly prázdné, a které proto označujeme jako implicitní nebo bezparametrické. Tyto konstruktory vytvářely stále stejně veliké a pokaždé stejně vybarvené obrazce ve stále stejném místě plátna. Nyní si ukážeme, jak tento nudný stereotyp změnit. Budeme modifikovat chování konstruktorů prostřednictvím parametrů, s jejichž pomocí budeme moci všechny výše uvedené charakteristiky nastavit. Prostřednictvím parametrů předáme konstruktoru hodnoty, kterými budeme specifikovat některé naše požadavky na vytvářené instance. autoři používají pro parametry termín argument, občas se také Někteří můžete setkat s termínem vstupní hodnota jako opozitum k výstupní hodnotě vracené po zaslání některých zpráv.
Jak jste si mohli všimnout v místních nabídkách, jednotlivé konstruktory se liší tím, kolik parametrů mají v závorkách uvedeno a které to jsou. Při definici konstruktoru proto tvůrce uvede v závorkách za názvem třídy čárkami oddělený seznam parametrů, které je konstruktor schopen zpracovat. několika verzí konstruktorů s různými sadami typů parametrů Definice bývá označována jako přetěžování (anglicky overloading) daného konstruktoru. Jednotlivé verze se pak nazývají přetížené.
Aby program dokázal s předanými hodnotami co nejefektivněji pracovat, musí vědět, co jsou zač. Je zřejmé, že např. konstruktor trojúhelníků bude zcela jinak pracovat s barvou svého objektu, jinak se směrem, do nějž má být vytvářený trojúhelník natočen, a zcela jinak s číslem představujícím jeho rozměr nebo souřadnici. Seznam parametrů v závorkách proto obsahuje nejenom názvy (identifikátory) jednotlivých parametrů, které nám napoví jejich význam, ale také jejich datové typy, podle nichž počítač pozná, jak má s daným parametrem pracovat. Jak se můžete přesvědčit v nabídkách, v seznamu je vždy uveden nejprve typ parametru, a teprve pak název, který nám naznačuje, k čemu se daný parametr používá. uvádění odkazů na jednotlivé přetížené verze charakterizuje konkrét Při ní zprávu/metodu počet parametrů a jejich typy. Názvy parametrů pře-
kladač při hledání správné verze metody nezajímají – ty jsou v programu hlavně pro nás. Budu-li se proto domnívat, že nemůže dojít k nedorozumění, budu tuto zkrácenou charakteristiku používat i já.
43G_UOA1_J7_Zlom.doc, verze 3.00.3866, uloženo: čt 4.4.13 – 11:40
Strana 99 z 495 Ukázka elektronické knihy, UID: KOS190077