Programovací jazyk Java
- Soubory se zdrojovými kódy mají koncovku .java
- Kompilované soubory mají potom koncovku .class
- .class soubory neobsahují nativní kód pro procesor, ale tzv. mezikód (Java bytecode)
- Java bytecode je pak vykonáván pomocí Java Virtual Machine (JVM)

Kompilace a spuštění programu z příkazové řádky
- Kompilace souboru se zdrojovým kódem lze provést kompilátorem javac
- Kompilátor vytvoří ve stejné složce soubor s koncovkou .class
- Ten lze potom spustit pomocí příkazu java
- Je duležité být ve složce, kde jsou uložené balíčky se zdrojáky a potom předat celou cestu ke třídě s main metodou
- Alternativně lze předat cestu ke složce s balíčky parametrem -cp
javac C:\\project\src\java\cz\muni\fi\pb162\Main.java
cd C:\\project\src\java
java cz.muni.fi.pb162.Main
java -cp C:\\project\src\java cz.muni.fi.pb162.Main
Platforma Java
- Platforma je hardwarové a softwarové prostředí pro spouštění programů
- Platforma Javy se skládá ze dvou komponent:
- Java Virtual Machine
- Java Application Programing Interface (API)

Odkazy
Základní pojmy objektového programování
Objekt
- Objekt nebo také instance třídy je základní stavební jednotkou v objektovém programování
- Pomocí objektů se zpravidla snažíme modelovat svět kolem nás
- Každý objekt má svůj stav a sadu metod, které nám umožňují s objektem manipulovat
// Vytvoření nového objektu
Bike bike = new Bike();
Třída
- Třída je konstrukční plán, pomocí kterého jsou vytvářeny objekty
- Ve třídách zpravidla definujeme atributy a chování objektů
// Definice třídy
public class Bike {
// Some attributes and methods
}
Rozhraní
- Rozhraní je kontrakt mezi třídou a okolním světem
- Pokud třída implementuje rozhraní, potom se zavazuje, že bude splňovat veškeré chování, které dané rozhraní definuje
- Rozhraní neobsahují samotnou implementaci metod, tu dodává až třída, která rozhraní implementuje
// Definice rozhraní
public interface Comparable {
// Some public method definitions
}
Dědičnost
- Dědičnost poskytuje silný a přirozený nástroj pro organizaci a strukturu softwaru
- Stanovuje is-a vztah mezi objekty
- Je to mechanizmus pro znovupoužití kódu a umožňuje nezávislé rozšíření původního kódu
Balíček
- Balíček je jmenný prostor pro logickou organizaci tříd a rozhraní
- Rozdělení zdrojového kódu do balíčků zpřehledňuje projekt a má za následek jednodužší udržovatelnost
Konvence
- Názvy balíčků (packages) píšeme malými písmeny
- Názvy tříd a rozhraní by měly být podstatná jména a název začíná vždy velkým písmenem
- Názvy metod začínají malým písmenem a první slovo by mělo být sloveso
- Proměnné nazýváme podobně jako metody první malým písmenem
- Názvy konstant píšeme velkými písmeny, jednotlivá slova jsou pak oddělena podtržítkem
- Podrobný popis vyjmenovaných konvencí
- Nepoužíváme češtinu, třídy, metody apod. nazýváme anglicky
cz.muni.fi.pb162
class StringBuilder;
interface EventListener;
subtractExact(int x, int y);
isEmpty();
int i;
String myName;
static final int MAX_COUNT;
Javadoc
- Tutoriál s popisem tagů a příklady
- Dokumentace je u projektu a domácích úloh povinná
- Za chybějící dokumentaci se budou strhávat body
- Preferuje se angličtina, ale je povoleno psát dokumentaci i v češtině bez diakritiky
- Nezapomeňte u každé třídy v javadocu uvést vždy autora, tag @author