Naučte se Javu – statické proměnné a metody, balíčky
V tomto díle si povíme o tom, co jsou statické proměnné a statické metody, a dále o balíčcích, zajišťujících hierarchii tříd Javy.
Statické proměnné
Dosud jsme hovořili o nestatických proměnných (proměnné instance). Statické proměnné (proměnné třídy) na rozdíl od nich existují pouze jedenkrát pro celou třídu, a to i v případě, že neexistují žádné její instance. Nepopisují vlastnost objektů třídy, ale třídy jako takové. Příkladem pro třídu Osoba může být počet osob uchovávaných v programu nebo jejich seznam:
|
Pomocí statických proměnných se často obchází nepřítomnost globálních proměnných a konstant v Javě. Pokud statické proměnné přidáte modifikátor final, jedná se o konstantu.
Statické metody
Statické metody (metody třídy) mohou přistupovat pouze ke statickým proměnným a lze je volat i v případě, že neexistuje žádný objekt dané třídy:
|
Popis příkladu: Statická proměnná seznamOsob
je typu Vector
, což je struktura pro uchovávání libovolného počtu objektů. Metoda volnychOsob
vrací počet volných míst pro osoby (maximální počet osob je omezen konstantou MAX_POČET
a aktuální počet se zjišťuje metodou size objektu seznamOsob
). Metoda novaOsoba
založí nový objekt třídy Osoba
a přidá ho do seznamu osob.
Kupříkladu matematické funkce jsou v Javě jako statické metody třídy java.lang.Math
, matematické konstanty jsou jakoby statické proměnné této třídy:
|
Balíčky
Balíčky se používají pro seskupování souvisejících objektů a souvisí s oblastí jmen, o čemž si povíme později. Jméno třídy odpovídá jménu souboru, ve kterém je definována třída. Jméno balíčku odpovídá adresáři, kde je daná třída umístěna. Bude–li například naše třída Kruznice
umístěna v balíčku grafika.tvary
, bude umístěna v souboru grafika\tvary\kruznice.class
(zdrojový kód v grafika\tvary\kruznice.java
). Pokud chcete tuto třídu v jiné třídě využívat, musí být v systémové proměnné CLASSPATH
definována cesta k adresáři balíčku (adresář obsahující podadresář grafika), a na třídu se odkazujete pomocí tečkové notace, jak ukazuje příklad:
|
Balíček třídy se definuje klíčovým slovem package umístěným jako první příkaz souboru. Příklad:
|
Pokud příkaz package
neuvedete, je třída součástí nepojmenovaného standardního balíčku. To se hodí pro malé aplikace nebo pro testovací účely, jinak raději balíčky používejte.
Standardní třídy jazyka Java jsou umístěny v podbalíčcích balíčku java: java.lang
, java.util
, java.awt
. V příkladu výše jsme se na objekt Vector
z balíčku java.util
udvolávali jako na java.util.Vector
.
Příklad z prvního dílu:
Nyní již umíme přečíst následující volání (podobné příkladu z prvního dílu seriálu):
|
Balíček java.lang
obsahuje třídu System
, ta má statickou proměnnou out
(reference na objekt typu java.io.PrintStream
) a ta má metodu println
. Proměnná out
třídy System
představuje standardní výstup programu a metoda println
vypíše řádek, celkově toto volání vypíše zadaný řetězec na standardní výstup. Jelikož balíček java.lang
je základní balíček Javy, lze jeho jméno vynechávat a používat tak zkrácený zápis (který byl popsán v prvním díle seriálu):
|
Na okraj uvádím, že Java rovněž umožňuje odkazovat se absolutně na třídy umístěné kdekoli na Internetu. K tomu se používá klasické doménové jméno. Předpokládejte, že chcete využívat třídu Circle
umístěnou na serveru java.libraries.com
v adresáři jirka/grafika
(http://java.libraries.com/jirka/grafika/Circle.class
). Kompletní jméno takové třídy by pak bylo COM.libraries.java.jirka.grafika.Circle
.
Import balíčků
Abyste nemuseli pokaždé vypisovat kompletní dlouhá jména všech tříd a jejich balíčků, umožňuje Java pomocí příkazu import určit, které třídy (balíčky) budete používat, a poté psát pouze zkrácený zápis. Pokud například často využíváte třídu grafika.tvary.Kruznice
, stačí napsat za příkaz package před definici třídy import grafika.tvary.Kruznice;
, a potom se na třídu lze odkazovat jako na Kruznice
. Pokud používáte hodně tříd z balíčku java.awt
(java.awt.Button
, java.awt.List
, java.awt.Checkbox
, …), můžete uvést příkaz import java.awt.*;
a na třídy se odkazovat jen jako na Button
, List
, Checkbox
…
Příklad třídy:
|
Mohlo by vás také zajímat
-
Responzivní design: Proč by ho neměl ignorovat žádný vývojář?
27. listopadu 2023 -
Souboj na trhu s CPU pro servery: AMD vs. Intel
8. prosince 2023 -
10 nejpopulárnějších programovacích jazyků a jejich využití
9. listopadu 2023 -
Nové AI modely od Open AI a Google
22. května 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024