Autor Zpráva
RastyAmateur
Profil
Dobrý den,

na začátek by bylo asi vhodné zdůvodnit, proč píšu na fórum o webu dotaz související s javou. Ještě se mi nestalo, abych zde nedostal odpovědi a navíc vím o několika lidech z DJPW, kteří již párkrát o javě psali. Vím, že se tu (snad) najde někdo, kdo mi dokáže pomoci, protože je to uplně nejvíc začátečnický dotaz, který dokáže zodpovědět každý, kdo s javou má alespoň minimální zkušenosti.

Psal jsem ještě na jiné fórum, ale prozatím bez reakce...

Jak fungují "funkce" v javě. V PHP je to jednoduše in_array(), strpos(), trim(), .... a v javě je to uplně složitě system.out.println (= echo). V jednom tutoriálu jsem se dočetl, že to první je třída oddělená od metody tečkou. To by ovšem bylo jen "system.out".

Tedy ten dotaz: Dokáže mi někdo vysvětlit princip "funkcí" v javě?

Věřím, že se zde najde někdo, kdo mi na dotaz dokáže odpovědět. Děkuji
juriad
Profil
V Javě (podobně jako nově v PHP) existuje koncept namespaců, v Javě se nazývají balíky (package). Třida System je v balíku java.lang. Její celý název je java.lang.System
Tato třída obsahuje několik veřejných statických atributů - docs.oracle.com/javase/7/docs/api/java/lang/System.html#field_summary. Tyto atributy (out a err) obsahují instance třídy PrintStream (java.io.PrintStream), které se tam dostanou automaticky při inicializaci virtuální mašiny.
PrintStream je třída, která slouží pro zápis do různých cílových zařízení, je univerzální a záleží na tom, na jaký proud je napojená - může to být soubor, socket, ale i ta konzole. A právě ten PrintStream v System.out je napojený na standardní konzolový výstup. PrintStream má veřejnou metodu println, která bere (v některé z přetížených variant) jako argument snad všechno možné.

Krátce: Třída System tedy sama o sobě neumí nic tisknout, to umí až PrintStream, který je z ní přístupný.

Funkce v Javě neexistují. Vše je metoda nějaké třídy. Na rozdíl od PHP, ale nemusíš při přístupu k atributu ani metodě v rámci stejné třídy používat klíčové slovo this. Pro přístup k atributu/metodě ať už staticke nebo ne, v Javě vždy slouží tečka, tedy ne šipka (->) ani čtyřtečka/Paamayim Nekudotayim (::).
Keeehi
Profil
Ještě dolním tento zápis.
PrintStream myVariable = System.out;
myVariable.println();
Je to rozepsané System.out.println(); a snad je to z toho lépe vidět.
RastyAmateur
Profil
Děkuji oboum za reakci. Jestli jsem dobře pochopil vaše rady a tutorialy s dokumentacemi co jsem teď četl, tak na začátku souboru si naimportuji nějaký balíček (package), tím získám nějakou třídu. A pak se chovám standartně, jako s třídami v PHP, trida.metoda.necoDalsiho?

Ještě jednou děkuji

Vaše odpověď

Mohlo by se hodit

Příspěvky nesouvisející s webem budou odstraněny.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: