Objektovo orientované programovanie

Objektovo orientované programovanie vychádza z myšlienky, že programy ktoré vytvárame, sú simuláciou buď skutočného alebo nami vymysleného virtuálneho sveta, ktorý je zložený z objektov.
Všetky tieto objekty majú dve charakteristické vlastnosti, ktorými sú stav a správanie.
Mobil

Napríklad objekt mobil má stavy (farba, značka, zapnutý, vypnutý)  a správanie (zapnúť, vypnúť, telefonovať, SMS – kovať, ...).


Programy v Jave pozostávajú minimálne z jedného objektu, ktorý má určitý stav, ktorý je uchovávaný  vo vlastnostiach  a komunikuje s prostredím (inými objektmi) pomocou metód.

Triedy (class)

Správanie objektu v objektovo orientovaných jazykoch definuje  jeho typ. Typ objektu sa označuje ako trieda (class).
V reálnom živote existuje množstvo mobilov. Všetky sú vyrobené podľa určitého prototypu. V objektovo orientovanej terminológii hovoríme, že mobil je inštancia triedy objektov známych ako mobily.
Byť inštanciou znamená byť  potomkom danej triedy, teda ako potomok dedím nejaké vlastnosti z triedy, od ktorej som bol odvodený. Trieda je vzor, z ktorého sa jednotlivé objekty vytvárajú.

Existuje viacero druhov mobilov (dotykové, klasické, véčkové, vysúvacie), ktoré majú spoločné charakteristické vlastnosti, ako napríklad výrobcu, základné funkcie. Ale majú aj charakteristiky, ktoré ich odlišujú. Triedy vytvorené z rodičovskej triedy, v našom prípade trieda mobil, zdedia spoločné znaky  a vo vlastnom tele obsahujú odlišnosti od ostatných tried. V prípade triedy mobil si základnú štruktúru môžeme predstaviť takto:
Trieda mobil
Interakcia objektov s prostredím je uskutočňovaná prostredníctvom metód. Metódy formujú rozhranie objektu s okolitým svetom. Pojem metóda a rozhranie bližšie rozoberieme neskôr.

Všeobecná deklarácia triedy vyzerá nasledovne


Ako prvé píšeme modifikátory, ktoré upravujú vlastnosti triedy. Poznáme modifikátor public, označuje verejnú triedu, čo v praxi znemená, že majú k tejto triede prístup aj iné časti programu.
Ak použijeme slovo  abstract, označíme triedu ako abstraktnú, chceme tým vyjadriť, že je nejakým spôsobom „nedokončená“ alebo sa aspoň za nedokončenú má považovať. Z abstraktných tried nemožno vytvárať  inštancie, možno však od nich odvodzovať nové triedy, preto abstraktnú triedu veľmi pravdepodobne nájdeme na niektorom medzistupni či priamo na vrchole objektovej hierarchie. [4]
Modifikátor final označuje koncovú triedu, ktorá nemôže byť rodičovskou triedou.  
Vyhradeným slovom private označujeme súkromnú triedu, ku ktorej nemajú prístup ostatné triedy.

Za kľúčovým slovom class píšeme názov triedy, ktorý sa väčšinou uvádza s prvým  veľkým písmenom, v prípade viac slovného názvu sa nesmú používať medzery a píšeme vždy prvé písmeno veľkým a všetky slová spolu, kvôli čitateľnosti.

V deklarácii nasleduje slovo  extends (z angličtiny „rozširuje“) a za ním sa uvádza rodičovská trieda, v prípade tvorby appletu je to trieda Applet.

Pokiaľ náš program bude obsahovať aj nejaké rozhrania, tak za názvom rodičovskej triedy píšeme slovo  implements, za ním  nasleduje jedno alebo viac rozhraní oddelených čiarkou, ktoré trieda implementuje. V prípade, že uvádzame rozhrania trieda musí obsahovať metódy,  uvedené v príslušnom rozhraní.

Takto by vyzerala deklarácia triedy DotykovýMobil bez rozhraní:


Všimnime si, že telo triedy sa vždy píše medzi zložené zátvorky, ktoré nazývame otváracia a zatváracia zložená zátvorka.