Autor | Zpráva | ||
---|---|---|---|
RastyAmateur Profil |
#1 · Zasláno: 29. 12. 2015, 21:40:35
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 |
#3 · Zasláno: 29. 12. 2015, 22:12:00
Ještě dolním tento zápis.
PrintStream myVariable = System.out; myVariable.println(); System.out.println(); a snad je to z toho lépe vidět.
|
||
RastyAmateur Profil |
#4 · Zasláno: 29. 12. 2015, 23:03:10
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 |
||
Časová prodleva: 8 let
|
0