Vyhledávání na webu

Objektově orientovaný přístup k programování a zapouzdření v Javě – 5. část


Od začátku této série (a ještě před tím) jste věděli, že Java je objektově orientovaný programovací jazyk. Objektově orientovaný programovací jazyk je založen na konceptu „objektů “, který obsahuje data jako atributy v metodách.

Každý objekt v Javě má stav a chování, které jsou reprezentovány instančními proměnnými a metodami. Každá instance třídy může mít jedinečnou hodnotu pro svou proměnnou instance.

Například,

Machine A může být napájen Debianem a má 8 GB RAM, zatímco Machine B může mít nainstalované Gentoo se 4 GB RAM. Je také zřejmé, že správa strojů, na kterých je nainstalováno Gentoo, vyžaduje více znalostí – chování působící na jeho stav. Zde metoda používá hodnoty proměnných instance.

JVM při analýze třídy vytvoří objekt tohoto druhu. Když píšete třídu, ve skutečnosti se chováte jako kompilátor, který vaší třídě říká, co by měl objekt vědět a jak by se měl chovat. Každý objekt určitého typu může mít pro stejnou instanční proměnnou jinou hodnotu.

Každá instance třídy má stejnou metodu, ale je možné, že se všechny chovají odlišně.

Třída OS má 3 proměnné instance, jmenovitě Název OS, Typ OS, Kategorie OS.

OS
OS_Name
OS_Type
OS_Category
Boot()
Reboot()
scan()

Metoda Boot() spouští jeden operační systém, který je pro danou instanci reprezentován názvem OS. Takže pokud boot() na jedné instanci zavedete Debian, zatímco na jiné instanci nabootujete Gentoo. Kód metody zůstává v obou případech stejný.

Void Boot() 
	{
	bootloader.bootos(OS_Name);
	}

Už jste si vědomi toho, že program se spustí hned po metodě main(). Hodnoty můžete předávat do své metody.

Chtěli byste například sdělit operačnímu systému, jaké služby spustit při spouštění jako:

You are already aware that the program starts to execute just after the main() method. You can pass values into you method. For example you would like to tell you OS what services to start at boot as:
OS.services(apache2);

To, co předáváte metodám, se nazývá argumenty. Uvnitř metody můžete použít proměnnou s typem a názvem. Je důležité předávat hodnoty s parametrem, pokud metoda přebírá parametr.

OS deb = debian();
deb.reboot(600);

Zde metoda reboot na OS předává hodnotu 600 (reboot machine po 600 sekundách) jako argument metodě. Doposud jsme viděli metodu, která se vždy vrací void, což znamená, že vám nic nevrací, jednoduše jako:

void main()
	{
	…
	…
	}

Můžete však požádat kompilátor, aby získal přesně to, co chcete, a váš kompilátor vám nevrátí špatné typy. Můžete jednoduše udělat jako:

int Integer()
	{
	…
	…
	return 70;
	}

Do metody můžete odeslat více než jednu hodnotu hodnoty. Můžete to udělat voláním dvou parametrických metod a jejich odesláním do argumentů. Typ proměnné a typ parametru se musí vždy shodovat.

void numbers(int a, int b)
	{
	int c = a + b;
	System.out.print(“sum is” +c);
	}
Deklarujte a inicializujte proměnné instance

1. Když neznáte hodnotu, kterou chcete inicializovat.

int a;
float b;
string c;

2. Když znáte hodnotu pro inicializaci.

int a = 12;
float b = 11.23;
string c = tecmint;

Poznámka: Proměnné instance jsou často zaměňovány s lokálními proměnnými, nicméně je mezi nimi velmi tenká hranice pro rozlišení.

3. Proměnné instance jsou deklarovány uvnitř třídy na rozdíl od lokálních proměnných, které jsou deklarovány v rámci metody.

4. Na rozdíl od proměnných instance se musí lokální proměnné před použitím inicializovat. Pokud před inicializací použijete lokální proměnnou, kompilátor ohlásí chybu.

Zapouzdření

Možná jste slyšeli o zapouzdření. Je to vlastnost většiny objektově orientovaného programovacího jazyka, která umožňuje svázat data a funkce do jediné komponenty. Zapouzdření je podporováno třídou a chrání kódy před náhodným poškozením vytvořením zdi kolem objektů a selektivním skrytím jejich vlastností a metod.

V případě potřeby rozšíříme zapouzdření do detailů ve správném tutoriálu. Od této chvíle vám stačí vědět, co je to zapouzdření? Co to dělá? A jak se to dělá?

To je prozatím vše. Zůstaňte ve spojení pro další díl této série Java „třída a objekty v Javě a Vytvořte svůj první objekt v Javě“, zatímco na tom pracuji. Pokud se vám seriál líbí a příspěvek, dejte nám vědět ve zpětné vazbě.