Převzato z http://java.vse.cz a poté upraveno.
Pro označování tříd, konstant, proměnných, atributů, a metod se v Javě používají identifikátory. Pravidla pro jejich výběr se dělí na povinná a doporučená.
Povinná pravidla určují, jak můžeme identifikátory vytvářet, tedy, co všechno nám „zbaští“ překladač. Přípustný identifikátor (stejná pravidla pro třídy, atributy i metody, proměnné a konstanty) je ten, který začíná Unicode znakem (a, b, c,… ,A,B,C, …, ě, š, č, …, Ě, Š, …) nebo znakem _ či $. Dále může následovat posloupnost těchto znaků a číslic. Mezi těmito identifikátory nesmí být klíčová a rezervovaná slova jazyka Java (např. if, true, goto).
Doporučení pro pojmenování ulehčují čitelnost kódu a jejich dodržování je nutné, aby Váš kód přijal cvičící.
_
a $
pouze odůvodnitelně.
Student
, SeznamStudentu
. Pro rozhraní používejte přídavné jméno, např. Runnable
, Serializable
, Vyplnitelny
.
MAXIMALNI_POCET
.
int i = 7;
public static void main(String[] args) { int scitanec1 = 5; int scitanec2 = 2; System.out.println("Soucet je: " + (scitanec1 + scitanec2)); }
while (''podmínka'') { ''příkaz(y) } if (''podmínka'') { příkazy(y) }else { příkaz(y) }
/**
* Třída SeznamAkci - obsahuje seznam přípustných příkazů adventury.
* Používá se pro rozpoznávání jednotlivých příkazů.
*
* Tato třída je součástí jednoduché textové hry.
*
* @author Michael Kolling, Lubos Pavlicek, Jarmila Pavlickova
* @version 4.0
*@created září 2006
*/
/**
* Metoda hledá nejvyšší hodnotu (maximum) v poli celých čísel.
*
* @param pole Pole celých čísel, které se bude prohledávat
* @return Vrací celé číslo s nejvyšší hodnotou
*/
public static void main(String[] args)
. Jméno souboru musí být shodné se jménem třídy obsahující metodu main()
. Pozor, hlavička metody main()
je závazná!
public class Trida { public static void main(String[] args) { prikazy; }
javac Trida.java
java Trida
main()
může být ve více třídách - vhodné pro testování.
// koncořádkový komentář, od dvou lomítek do konce řádku /* blokový komentář muze obsahovat více řádků */ /** * javadoc komentář, slouží k vytváření HTML dokumentace, <b>lze</b> v něm používat * HTML tagy, podporuje direktivy jako * @autor * @version * @param */
byte
(8b), short
(16b), int
(32b), long
(64b),
float
(32b), double
(64b),
char
(16b), používá se UCS2, viz. Unicode,
boolean
, není převoditelný na číselné typy a naopak.
String
nebo pole.
modifikátory datovy_typ nazev_promenne
final
. Např. final int MAX = 10; final int MIN; MIN = 0;
- lze do ní jen jednou přiřadit
if(podminka) { prikazy }else if (podminka2) { prikazy } else { prikazy }
switch (vyraz) { case nejaka_hodnota: prikazy break; ... default: prikazy break; }
(podminka ? prikazy_splneno : prikazy_nesplneno);
for (vyraz_start; vyraz_stop; vyraz_iterace) { prikazy }
while (podminka) { prikazy }
do { prikazy } while (podminka);
return
+ návratový typ. Pokud je vyhodnocen return
již se neprovádí žádné příkazy uvedené v bloku metody odkud je return
volán.
static
) mohou využívat pouze třídních metod a třídních proměnných (a to všechny i private
té samé třídy). Ze všech ostatních tříd mohou využívat pouze statické členy (člen = metodu + atributy), které jsou public
. Ze tříd ve stejném balíčku navíc členy bez modifikátoru přístupu, tzv. default a z rodičovských tříd (a rozhraní) navíc mohou používat vše protected
.
specifikatory navratovyTyp jmenoMetody(formalniParametry) { telo metody (prikazy) }
void
. Někdy je označujeme pojmem „procedury“.
/* * mame bitový vektor, chceme vyresetovat (nastavit na 0) * celý vektor */ public void reset() {...} /* * mame bitový vektor, chceme vyresetovat (nastavit na 0) * pouze bit * @param pořadí bitu, který má být resetován */ public void reset(int bit) {...}
this.sirka
).
new
a zanikají, pokud na ně neexistuje žádná reference, zajistí garbage collector
.
int[] pole; // deklarace pole = new int[1000]; //inicializace int delkaPole = pole.length; // počet prvků pole si každé pole pamatuje, // nemusíte jej předávat do metod pracujících s polem jako další parametr
for (int i = 0; i < pole.length; i++) pole[i] = 2*i; // přiřazení hodnoty
int[] pole = {0, 1, 1, 2, 3, 5}; System.out.println (pole.length); // vypíše 6
Příklad zubatého pole:
int[][] matice = new int[5][]; for (int i = 0; i < matice[i].length; i++) matice[i][] = new int[i];
Napište program obsahující jedinou třídu CatalanArg
, jejíž statická metoda catalanNumber
vypočte n-té Katalánovo číslo rekurzivně. Získejte n jako argument programu (předpokládejte, že argument bude vždy jeden a vždy to bude číslo). V případě, že n<0, vypište na chybový výstup vhodnou hlášku, jinak vypočtené číslo vypište na standardní výstup.
Program přeložte a spusťte bez použití vývojového prostředí - pouze z konzole.
Modifikujte předchozí program tak, aby n získal ze standardního vstupu (předpokládejte, že na vstupu bude právě jedno číslo). V případě, že n<0, vypište na chybový výstup vhodnou hlášku.
Napište třídu Tabulka
, která ve svých metodách implementuje následující operace:
vypis
, použijte příkaz printf
),
vypis
),