Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:
Funkce, kterou se snažíš použít je dostupná pouze pro registrované uživatele. Buďto se přihlas nebo si zdarma vytvoř nový účet.

Diskusia – 1. diel - Úvod do objektovo orientovaného programovania v Jave

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Zdenek
Člen
Avatar
Zdenek:21.6.2018 0:13

Diky za clanek

Avatar
Feri Laky
Člen
Avatar
Feri Laky:20.1.2019 15:22

Jsem rád, že jsem tohle začal číst - mám Pecinovského, pod kterým jsem začal kolem 1990 Pascal a posílali jsme takové ty vyřezávané pásy papíru, kde správné odpovědi se vystřihovaly nůžkami v binárním kódu.Bohužel rozpadem Československa všechno skončilo - chyběl mi k získání "diplomu" jeden rok.
Je výborná možnost porovnat výklad OOP zde a Pecinovského - pouze začnu - ale už teď díky za články p.Čápka (promiň Davide - zapoměl jsem, že se tady tyká :-)))

Avatar
Leona Koubková:1.5.2019 9:31

Perfektně vysvětleno, díky moc za super článek :)

Avatar
Gemy
Člen
Avatar
Gemy:8.5.2020 19:45

Mám OTÁZKU: Kdy mám použít jinou třídu jako atribut a kdy ji mám vložit do metody? Uvedu příkladu. Mám vedle main a 2 další třídy s toho druhá se jmenuje Trida tu chci vyvolat v té třetí.
Kdy použiji třídu jako atribut.

private Trida trida;

Kdy použiji třídu v metodě?

public void Metoda(Trida trida);

Děkuji všem za cenné rady. :)

Odpovedať
Člověk stvořil logiku, a proto jedná v afektu.
Avatar
Lukáš Hornych
Tvůrce
Avatar
Odpovedá na Gemy
Lukáš Hornych:8.5.2020 21:20

Záleží jestli s tou jednou instancí "trida" mají pracovat (a mít k ní přistup) všechny metody v té třídě nebo jen ta jedna konkrétní. Obecně jako atributy třídy se většinou používají nějaké servisní třídy (ty které ti zpostředkovávají nějaké další operace a instance v průběhu života třídy se nemění) a jako parametry metody spíše nějaké datové třídy, které jsou např.: potřebné pro nějaké výpočty v té dané metodě nebo instance té třídy v parametru je potřebná jen pro tu danou metodu.

Avatar
Josef Nosek
Člen
Avatar
Josef Nosek:3.11.2020 14:28

Java je objektově intuitivní, vede programátora pro použití objektů. Pascal, C atd. objekty nemají, ale použití procedur a funkcí se objektovému programování dost podobá.
Jasně že OOP je lepší, přehlednější, avšak jde více o evoluci než o revoluci.
Není pravda, že program napsaný třeba v Pascalu, C nebo Algolu je časem tak složitý, že se takřka nedá udržovat a rozšiřovat. Základem slušného programátora v procedurálním strukturovaném jazyce je důsledně použití struktur programu. Například funkce i procedury obsahují neveřejné proměnné, konstanty, další (vnořené, neveřejné) funkce a procedury stejně jako obsahují objekty při OOP. Stejně tak se nepoužívali jen globální proměnné, těch naopak mělo být co nejméně, hodnoty se předávali odkazem či hodnotou.
Jenže, co je to platné, když programátor je čuně, tak mu sebelepší nástroj nepomůže udržet program přehledný a efektivní :D.
Programátor při psaní v OOP nemusí tolik myslet, musí ale mít lepší paměť :).

Avatar
Adam Pospíšek:16.11.2020 14:14

Super, dík za článek!

Odpovedať
Vždy to jde
Avatar
Lubor Pešek
Člen
Avatar
Odpovedá na Feri Laky
Lubor Pešek:15.3.2021 16:10

I Pecinovský učí OOP - já osobně jsem se to naučil právě od něj.

Odpovedať
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
Lubor Pešek
Člen
Avatar
Odpovedá na Lukáš Hornych
Lubor Pešek:15.3.2021 16:20

To je blbost. Důležité je zaměřit se, jakou instanci chceš - jedináčka, či novou instanci.
Může být případ, kdy s instancí jedné třídy pracuje více metod. Nebo si kupříkladu chceš uchovat odkaz na jedináčka.
I třeba při práci s frameworkem většinou autowired-uješ celý objekt v deklaraci atributů. Zatím jsem viděl pár případů, kdy se přímo používal autowired jen pro přístupovou metodu.

Záleží tedy, kolik metod pracuje s tím objektem. Pokud jedna, tak ok, ať se použije jako parametr. Ale jinak často bude používat objekty jako atributy. Případně si některé objekty z knihoven bude vytvářet lokálně.

Pokud nějaký objekt použije pouze dočasně a ví o tom, tak je zase blbost ho cpát mezi atributy třídy a zatěžovat tak zbytečně místo v paměti.

No a ještě je tu třetí případ, ale ten se dneska už také moc nepoužívá (zvlášť díky rest/soap službám a efektivity jsonu) Messenger (přepravka). Návrhový vzor, který představovala instance třídy, která právě šetřila vypisování parametrů. Výhodou toho byl i fakt, že pokud se jako parametr předával takovýto objekt, tak nebylo nutné předávat úplně všechny hodnoty + dalo se využít stejné instance, takže předávání zpráv bylo efektivnější. Ale jak říkám, messenger už není tak častým případem, ale tu a tam na něj ještě narazíš.

Editované
Odpovedať
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
Lukáš Hornych
Tvůrce
Avatar
Odpovedá na Lubor Pešek
Lukáš Hornych:15.3.2021 19:40

To co píšeš v prvním 3 odstavcím odpovídá tomu co jsem psal já, akorát detailněji popsané.

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 54.