Objektově orientované programování v Javě
Java obsahuje pokročilé nástroje pro práci s objekty, stručně se s nimi seznámíme. Identifikátor objektu představuje odkaz na něj (obdoba ukazatelů v C++). Java zjednodušuje práci s objekty, na rozdíl od C++ lze pracovat pouze s dynamickými objekty. Jsou vytvářeny prostřednictvím operátoru new, nemusíme se však starat o jejich rušení. Java obsahuje automatickou správu paměti, tento nástroj nazýváme garbage collector. Ten se stará o automatické odstraňování nepoužívaných objektů (tj. objektů, na které již neexistuje odkaz).Zápis
představuje vytvoření odkazu na objekt, nikoliv vytvoření samostatného objektu. Pokud bychom se pokoušeli s takovým objektem pracovat, dojde k výjimce (tj. systémové chybě). Odkaz zatím není propojen na žádný objekt. Konstrukce
String objekt="Ahoj";
představuje vytvoření inicializovaného odkazu. V tomto případě se jedná o inicializaci odkazu prostřednictví řetězce typu String. Pokud vytvoříme odkaz, zpravidla k němu vytváříme i objekt. Používíme k tomu klíčové slovo new. Celý kód představující vytvoření objektu současně s jeho inicializací lze zapsat takto:
String objekt=new String("Ahoj");
Primitivní datové typy
Primitivní typ | Objektový typ | Velikost |
boolean | Boolean | - |
char | Char | 8b |
byte | Byte | 8b |
short | Short | 16b |
int | Int | 16b |
long | Long | 64b |
oat | Float | 32b |
double | Double | 32b |
V Javě existují tzv. primitivní datové typy. Představují speciální skupinu datových typů, se kterými se zachází "neobjektově". V tomto případě by bylo jejich používání ve formě objektů začněme neefektivní, Java kopíruje přístup jazyka C++. Vytváříme je proto jako statické proměnné. Každý datový typ má v Javě na různých počítačích stejnou velikost, Java je tedy na rozdíl od ostatních programovacích jazyků přenositelná. Ke každému primitivnímu datovému typu existuje jeho objektová varianta. Název primitivní varianty začíná malým písmenem, název objektové velkým písmenem.
Pole v Javě
Používání polí v Javě je mnohem bezpečnější než v C++, nejedná se totiž o pouhé paměťové bloky. Nemůže dojít k tomu, že při čtení přesáhneme index pole. Kontrola indexu pole je začleněna přímo do jazyka Java za cenu drobného zatížení paměti. Při vytvoření pole je zaručena inicializace jeho jednotlivých prvků. Lze vytvářet pole primitivních i objektových datových typů.Mazání objektů
V javě nemusíme řešit problémy související s životností objektů. Vymazání nepotřebných objektů je provedeno automaticky prostřednictvím garbage collectoru. Odstraníme tak spoustu chyb souvisejících s životností objektů. Jsou mazány takové objekty, na které neexistuje již žádný odkaz. Okamžik smazání objektu není možné ovlivnit, provede se, až to systém uzná sám za vhodné. Garbage collector lze vyvolat ručně pomocí System.gc.Autor: Filip Koval