NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 4 - Hrací kostka v Javě - Zapouzdření, konstruktor a Random

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
Atrament
Člen
Avatar
Odpovídá na Robert Vyskup
Atrament:20.8.2021 19:52

toString() ale vypisuje jméno bojovníka, to nemá se zprávou vůbec co dělat a ta zpráva se přece vytváří a mění až v průběhu boje, takže dělat s ní cokoliv v konstruktoru je nesmysl od toho jsou tam ty dvě metody přímo na zpracování zprávy

 
Odpovědět
20.8.2021 19:52
Avatar
Odpovídá na Atrament
Robert Vyskup:20.8.2021 20:14

No a co kdybychom to napsali takto:

public String vratZpravu(String zprava){
        this.zprava=zprava;
        return zprava;
}

takto bychom místo dvou metod měli jednu. Samozřejmě všude bychom museli změnit vratPosledniZpravu a nastavZpravu na vratZpravu. Ale pak by to snad mohlo fungovat ne?

 
Odpovědět
20.8.2021 20:14
Avatar
Odpovídá na Atrament
Robert Vyskup:20.8.2021 20:46

Tak už vidím proč to nejde. V main třídě ze které vypisujem to chce String a to co jsem vytvořil nebere jako String. No radši už toho nechám ;-) Ale aspoň jsem to zase pochopil o kus dál. Díky za pomoc.

 
Odpovědět
20.8.2021 20:46
Avatar
Atrament
Člen
Avatar
Odpovídá na Robert Vyskup
Atrament:21.8.2021 8:53

Právě jsi na pouhých třech řádcích kódu porušil dvě nejzákladnější pravidla při psaní metod :) A sice

  1. metody mají vždy dělat pouze jednu jedinou věc
  2. jméno metody má vždycky přesně říkat co daná metoda dělá

Tebou stvořená metoda vratZpravu nyní kromě vracení zprávy ještě i zprávu nastavuje, o čemž v jejím jméně není ani zmínka.

Vždycky je lepší mít více metod dělajících každá jednu věc, než jednu metodu, která dělá více věcí najednou. Jak bys třeba teďka s touto metodou postupoval, kdybys chtěl jenom nastavit zprávu a nic víc?

 
Odpovědět
21.8.2021 8:53
Avatar
Lukáš Kučavík:19.10.2021 14:14

Metodu již jednoduše nedefinujeme, ale protože již exituje, musíme ji přepsat, resp. překrýt.

Předpokládám, že tam mělo být slovíčko existuje. Pokud tedy tu metodu nechcete nechat zemřít :-D ;-)

Editováno 19.10.2021 14:15
Odpovědět
19.10.2021 14:14
Každý je zodpovědný za svůj život ale ne každý je ochoten tu zodpovědnost přijmout.
Avatar
Petr Štěpánek:2.1.2022 16:21

Jediný ze všech článků, kde jsem se ztratil, a to v okamžiku, kdy píšeš "K projektu si přidejme novou class s názvem Kostka". Až postupně mi došlo, že to je ve stromu, nikoli přímo v kódu. Taky mi hned neseplo, že půlené okno s kódem má napravo obsah podle toho, na kterou metodu kliknu nalevo

 
Odpovědět
2.1.2022 16:21
Avatar
Jaroslav Drobek:3.2.2022 17:43

"zkuste se podívat např. na metodu indexOf() na třídě String"...jak to udělat? Ani na vytvořenou třídu Kostka nereaguje NetBeans vždy vyrolováním možností - musí být napsána v určitém kontextu, uchází mi v jakém.

"Zde bychom hráči pomocí this předali sebe sama, tedy tu konkrétní kostku"..to nedává smysl, ikdyž asi tuším, co to má znamenat

 
Odpovědět
3.2.2022 17:43
Avatar
Atrament
Člen
Avatar
Odpovídá na Jaroslav Drobek
Atrament:4.2.2022 11:50

Prostě napiš název nějaké String proměnné nebo přímo nějaký string a za něj tečku a otevře se ti ta nabídka:

String slovo;
slovo.
"slovo".
//v obou případech se po napsání tečky otevře nabídka

samozřejmě je to citlivé na kontext, kde to píšeš, prostě to nabízí to, co dává smysl v daném místě.

 
Odpovědět
4.2.2022 11:50
Avatar
Ondřej Raška:2.8.2022 19:13

Pro začátečníka příliš mnoho informací na příliš malém prostoru.

 
Odpovědět
2.8.2022 19:13
Avatar
Martin Král
Člen
Avatar
Martin Král:4.10.2022 14:22

Za mě pro začátečníky naprosto slabě vysvětlená nová důležitá látka....

Editováno 4.10.2022 14:23
 
Odpovědět
4.10.2022 14:22
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 136.