NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Diskuze – Lekce 2 - První objektová aplikace v Javě - Hello object world

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Marcel Smolik
Ondřej Štorc:4.7.2015 12:53

http://www.itnetwork.cz/…-typy-string
Skoro u konce článku je to popsaný (nadpis té 'sekce' je Format)

Odpovědět
4.7.2015 12:53
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Richard H.
Tvůrce
Avatar
Richard H.:7.8.2015 12:28

Zajímavá náhoda já jsem Richard

Odpovědět
7.8.2015 12:28
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:5.12.2015 21:58

Jen pro upřesnění:

metoda je činnost, kterou program dělá PO JEJÍM ZAVOLÁNÍ!! pokud tedy metodu nezavoláme, je naprosto jedno, jak dokonalý kód je v ní napsaný. V OOP jde vlastně pouze o volání metod, samotný kód, který v metodě není v objektových jazycích neexistuje (překladače je automaticky vyhodnotí jako chybu - viz komentář uživatele lm3951:

public class HelloObjects{
       Zdravic zdravic = new Zdravic();
       zdravic.pozdrav();
}

Všechno musí být v metodách. O tom jaké máme metody budou snad další články, ale takové základní rozdělení je. Prázdné, Návratové, Konstruktory
Potom mohou být statické, veřejné a soukromé, ale to teď není důležité.
Prázdná metoda:

public void metoda(){
}

Návratová metoda:

public int metoda(){
        return 5;
}
public String metoda(){
        return "tukan";
}
public boolean metoda(){
        return true;
}

atd.
Pak je speciální typ metody - konstruktor. (jsou 4 druhy konstruktorů: implicitní, bezparametrický, parametrický a privátní) o tom jaký je mezi nimi rozdíl není tento článek, proto je pouze vypisuji.
Konstruktor narozdíl od metody nemá žádný datový typ (ani prázdný - void). Navíc název konstruktoru MUSÍ být stejný jako je název třídy.

public class Test{      //vytvoření a název třídy (třída Test)
        public Test(){  //toto je konstrutor. Když se třída jmenuje Test, muse se takto jmenovat i konstrutor
        }
}

No a metoda main? (kvůli které toto píšu:D)
Jak jsem psal na začátku - OOP je vlastně volání metod příslušných tříd. Jenže aby se vůbec nějak program rozjel, musí se zavolat metoda main, která je v Javě takhle daná. Tudíž, zapamatujte si, že metoda:

public static void main(String[] args){

}

spouští program. Pokud je metoda main ve více třídách (může být), tak musíme vybrat, kterou bude program brát za spouštěcí. Potom jsou ty ostatní opravdu zbytečné, ale můžou tam být.

Pokud jde o toto: "metoda main může být kdekoliv", tak ano, může být, ale už logicky z toho tedy vyplývá, že pokud ji dáme do "nehlavní" třídy, tak se z ní musíme komplikovaně dostávat ven.
příklad: máme 3 třídy. Plocha, Piskvorek, Hodnoceni. Logicky bychom dali main metodu do třídy Plocha, protože na plochu nakreslíme pole čtverečků, budeme provádět logiku hry apod. Pokud bychom dali metodu main do třídy Piskvorek, tak bychom museli z ní stejně zavolat:

Plocha plocha = new Plocha();

Ale trošku to postrádá přehlednost. A v situaci, kdy máme takových tříd 200 a ne jen 3, tak hledejme proč není metoda main logicky v hlavní třídě, ale ve třídě, kterou hlavní třída dočasně, okrajově nebo dokonce pomocně využívá. To už potom píše kód prase a ne človíček:)

Odpovědět
5.12.2015 21:58
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
Nezmar Hydra
Člen
Avatar
Nezmar Hydra:17.5.2016 2:26

Moc děkuji za krásně zpracovaný kurz. A budu mít jednu úplně pitomou otázku. Kde nastavím zobrazování popisků? Nezobrazují se mi u žádného ani staženého projektu. Děkuji.

Editováno 17.5.2016 2:27
 
Odpovědět
17.5.2016 2:26
Avatar
Nezmar Hydra
Člen
Avatar
Odpovídá na Nezmar Hydra
Nezmar Hydra:17.5.2016 3:11

Tak nic .... už jsem to uklikal :-)

Editováno 17.5.2016 3:11
 
Odpovědět
17.5.2016 3:11
Avatar
David Capoušek:27.11.2016 12:49

Nedal by sem někdo zdroják tý objektový kalkulačky, prosím?

 
Odpovědět
27.11.2016 12:49
Avatar
Miroslav Melzer:28.12.2016 16:31

Jenom takovou drobnost... mě to neodřádkuje

public class Zdravic {

   public void pozdrav (String jmeno){
       System.out.printf("Vítej uživateli jménem %s", jmeno);
Zdravic zdravic = new Zdravic();
        zdravic.pozdrav("Karel");
        zdravic.pozdrav("Jaroslav");

Chybí tam to \n za tim %s, nebo mam něco blbě já ?

 
Odpovědět
28.12.2016 16:31
Avatar
Odpovídá na Miroslav Melzer
Libor Šimo (libcosenior):28.12.2016 16:59

Schvalne, co si o tom myslis?

Odpovědět
28.12.2016 16:59
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Miroslav Melzer:28.12.2016 19:14

Myslim, že to tam chybí.

 
Odpovědět
28.12.2016 19:14
Avatar
Miroslav Melzer:30.12.2016 16:07

Já to nějak nechápu :-? S tou kalkulačkou je to jenom vtip, že jo ?
Zatim se mi podařilo ten zdravič malinko modifikovat...

/** Tříde ke zdravení*/
public class Zdravic {
    /** text pozdravu*/
    public String text;
    /** pozdraví už. jménem a textem
     *
     * @param jmeno Jmeno už.
     * @param vek   Věk už.
     * @return  text s pozdravem
     */
    public String pozdrav(String jmeno, int vek){
        return String.format("%s %d letý %s",text,vek,jmeno);

=============­========================­==============

public static void main(String[] args) {

         Scanner sc = new Scanner(System.in, "Windows-1250");

        Zdravic zdravic = new Zdravic();

        zdravic.text = "Ahoj uživateli";
        System.out.println(zdravic.pozdrav("Miroslave", 41));
        zdravic.text = " Zadej první číslo";
        System.out.println(zdravic.pozdrav ("Josefe",55));
        float a = Float.parseFloat(sc.nextLine());

=============­========================­=======
Pro kalkulačku, ten scaner, jak ho tam dostanu ? "Postaru" importem nebo už jako metodu?
To "new scanner" vypadá jako "new Zdravic" ... Může tam vůbec být víc metod ? Bude mít každá svůj return ? Jak bude vypadat return pro float? A co ty početní operace a jak ten cyklus pro opakování... Mi neřikejte, že ste někdo už po týhle lekci tu kalkulačku zmáknul... :-O

 
Odpovědět
30.12.2016 16:07
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 196.