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
David Hartinger
Vlastník
Avatar
Odpovídá na lm3951
David Hartinger:11.11.2013 17:43

Ty jsi to vůbec nepochopil. Zdravic.java je třída, která reprezentuje objekt zdraviče. Je to tu vysvětlené. Main je spouštěcí metoda v hlavní třídě aplikace, pracuje se s ní asi 15 předchozích dílů, tak jestli jsi je četl, měl bys to vědět.

Odpovědět
11.11.2013 17:43
New kid back on the block with a R.I.P
Avatar
Michal Říčan (fussak):11.11.2013 17:47

Jestli chceš odpověď, kde přesně musí být umístěna metoda main(). Tak se to většinou dá dohledat někde v nastavení projektu.

Když vytváříš nový projekt, tak se ti defaultně vygeneruje třída obsahující metodu main(). A cesta ( název třídy ) kde se metoda nachází je taky nastavena defaultně. Nepoužívám eclipse ale NetBeans, tam se to dá dohledat ( Run > Set project config > Customize.. ), položka main class. Když si ji změníš například na start.Zdravic, překladač bude hledat metodu main() ve třídě Zdravic

Asi nikoho nenapadlo, když nějaké IDE atd. programoval, že ještě před spuštěním překladu by měl prohledat všechny zdrojové kódy aby zjistil kam mu uživatel umístil main().

Snad je toto odpověď na tvou otázku.

 
Odpovědět
11.11.2013 17:47
Avatar
lm3951
Člen
Avatar
Odpovídá na David Hartinger
lm3951:11.11.2013 20:18

sdraco - nerozumieme si nejak. Vysvetlujes to super a tvoj tutorial som presiel komplet. Vdaka.
Ja viem co a naco je metoda main a ked som pisal program proceduralne, tak mi neprislo nijak divne, ze tam je a ze je nou obaleny cely kod.

Ja som sa, ale teraz pri oop pytal, ze v ktorej triede ju NEMUSIM uviest ked pouzivam objekty. Odpoved davaj ju vsade nie je odpoved na to co ma zaujima.

A eclipse ti default nevklada do vytvoreneho class metodu main, iba ak si to zvolis ako moznost pre ten konkretny class.

Takto to chodi samozrejme v pohode.
HelloObjects.java

package helloobjects;

public class HelloObjects{

        public static void main (String[] args)
        {

        Zdravic zdravic = new Zdravic();

        zdravic.pozdrav();

        }

}

Zdravic.java

package helloobjects;

public class Zdravic
{


        public void pozdrav ()
        {
                System.out.println("Ahoj object world");
        }


}

ked main vlozim do triedy zdravic

package helloobjects;



public class Zdravic
{

        public static void main (String[] args){


        public void pozdrav ()
        {
                System.out.println("Ahoj object world");
        }

   }
}

a vymazem z triedy HelloObjects

package helloobjects;

public class HelloObjects{


        Zdravic zdravic = new Zdravic();

        zdravic.pozdrav();

}

tak aj napriek tomu, ze mi tvrdite, ze to je jedno kde je main, tak to nefunguje, takze ? Kde robim chybu ?

Editováno 11.11.2013 20:21
 
Odpovědět
11.11.2013 20:18
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na lm3951
David Hartinger:11.11.2013 20:23
  1. Na vložení zdrojových kódů je zde tlačítko.
  2. Metodu si tam vložil špatně, proto to nefunguje. Nemůžeš mít metodu v metodě.
  3. Pokud čteš seriál, kde se pracuje s NetBeans, tak je lepší pracovat s NetBeans, je to i hlavní IDE pro Javu přímo od Oracle. Chápu, že třeba potřebuješ používat Eclipse, ale přejdi až ve chvíli, kdy to budeš umět.
Odpovědět
11.11.2013 20:23
New kid back on the block with a R.I.P
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na lm3951
Jan Vargovský:11.11.2013 20:31
package helloobjects;

public class HelloObjects{


       Zdravic zdravic = new Zdravic();

       zdravic.pozdrav();

}

Tohle je co ?

 
Odpovědět
11.11.2013 20:31
Avatar
lm3951
Člen
Avatar
Odpovídá na David Hartinger
lm3951:11.11.2013 20:50
  1. ok
  2. ok
  3. ok

nasiel som si to teda na nete. main MUSI byt LEN v triede, ktoru spusta interpreter ako prvu. V zasade by nikde inde byt nemusela /iba ak sa testuje nejaka trieda /. Bez IDE nejak ako napr. java MenoTriedy potom sa zavola metoda main z tejto triedy inde byt nemusi.

 
Odpovědět
11.11.2013 20:50
Avatar
vfsdfsdfdsf
Člen
Avatar
vfsdfsdfdsf:10.1.2014 17:39

Ahoj, jakto že v tom příkladu, co napsal uživatel Зайчик v komentářích, se po vytvoření instance třídy Pozdrav automaticky zavolá i jeho metoda se stejným názvem? To dělá nějak implicitně konstruktor?

 
Odpovědět
10.1.2014 17:39
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na vfsdfsdfdsf
Jan Vargovský:11.1.2014 21:26

To není metoda, ale pouze konstruktor. Podívej se jak se píše konstruktor a metoda - u jedné chybí návratový typ.

 
Odpovědět
11.1.2014 21:26
Avatar
vfsdfsdfdsf
Člen
Avatar
Odpovídá na Jan Vargovský
vfsdfsdfdsf:12.1.2014 11:38

Jojo díky, kdybych si předtím přečetl další kapitolu, nemusel bych se ptát :D

 
Odpovědět
12.1.2014 11:38
Avatar
Marcel Smolik:4.7.2015 11:13

Dobrý den mohl bych se zeptat co jsou tyhle znaky- %s
vým že je to asi někde v základech ale nemohu to najít.

 
Odpovědět
4.7.2015 11:13
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.