NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze – Lekce 7 - Dědičnost v PHP

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
Odpovídá na Marian Bubenik
Michal Šmahel:8.2.2019 16:30

Jak to myslíš? Vždyť tady metodu celeJmeno() zvenčí nepoužíváš. Použití je zapouzdřené uvnitř tříd Clovek a Javista. Můžeš si vyzkoušet podobné rozšíření sám naprogramovat.

Jestli myslíš to, že stejně dojde k volání této metody, které bude mít vlastně původ zvenčí, tak to nevadí. Je třeba se na to dívat tak, že je jedno, co ty veřejné metody dělají, to tě nezajímá, když je voláš na instanci. Zajímá tě to pouze tehdy, programuješ-li kód dané třídy. Pak již platí to, že metodu voláš (používáš) uvnitř třídy, takže může být i protected a private.

Odpovědět
8.2.2019 16:30
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá na Michal Šmahel
Marian Bubenik:8.2.2019 20:33

:) nerad bych tady zapleveloval prostor jalovými dotazy... ale dívám se na to tak, že pokud použiju uvedený příklad, funguje mi to, "rozumím tomu" do okamžiku, než např. metodu celeJmeno() nastavím jako protected nebo private a v tom okamžiku skript končí fatal error, že volám protected metodu, proto v tom nějak plavu... :( (díky za trpělivost)

 
Odpovědět
8.2.2019 20:33
Avatar
Odpovídá na Marian Bubenik
Michal Šmahel:8.2.2019 22:32

No, asi to tady nebudeme dále rozvádět. Jestli ti něco konkrétního pořád nefunguje, napiš mi soukromou zprávu a pošli mi dotčené zdrojové kódy (nahrát je můžeš přes zdejší systém nebo na Pastebin).

Odpovědět
8.2.2019 22:32
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá na Michal Šmahel
Marian Bubenik:9.2.2019 9:29

OK, díky, pokud zjistím, co dělám blbě, dám to sem a ozvu se...

 
Odpovědět
9.2.2019 9:29
Avatar
Láďa
Člen
Avatar
Láďa:20.5.2019 9:14

Ahoj, zkoušel jsem udělat potomka třídy Imagick:

<code>

class ftImagick extends Imagick {

public $file;
public $rozmer;

public function __construct($file, $rozmer,$rozmer_tmb){

//proč funguje jen tohle??
$this->file=$file;
parent::__con­struct($file);

$this->rozmer=$rozmer;
$this->rozmer_tmb=$roz­mer_tmb;
// $this->file=$file;

}

public function zmensi(){

$info = getimagesize($this->file);
$sirka = $info[0]; $vyska = $info[1];

/*
if ($sirka > $vyska) {
if ($sirka > $this->rozmer) $scle = 1;
}else if ($sirka <= $vyska) {
if ($vyska > $this->rozmer) $scle = 1;}
*/

if (($sirka > $this->rozmer)||($vyska > $this->rozmer)) $scle = 1;

if ($scle == 1) {
// pokud chces zmensit obrazek na maximalni velikost:
$this->scaleImage($this->rozmer, $this->rozmer, true);
$this->writeImage($this->file);
unset ($scle);
}
}
}

</code>

 
Odpovědět
20.5.2019 9:14
Avatar
Rudolf Pecinovský:23.12.2020 11:38

Z výkladu vyplývá, že konstrukce dědění slouží především k tomu, abychom snadno získali dříve naprogramovaný kód. Nějak jsi ale zapomněl zdůraznit LSP, který upozorňuje, že množina instancí dceřiné třídy musí být podmnožinou instancí rodičovské třídy, jinými slovy že instance potomka se musí chovat jako plnohodnotná instance předka. Když se toto nezdůrazní, pak programátoři vytvářejí např. kruhy jako potomky bodů (předají atribut poloměr) a kruhové výseče jako potomky kruhů (přidají úhel), takže krajními body úsečky mohou být dvě kruhové výseče. Když se takováto základní pravidla nedodržují, začne se po čase program hroutit vlastní vahou.

 
Odpovědět
23.12.2020 11:38
Avatar
Pavel Kubalík:3.2.2021 15:11

Dobrý den
Vyřešil jsem první příklad (Nákladní automobil) a moc za něj děkuji. Opravdu jsem se na něm "vyřádil". Ne že by mi dal moc práce, ale vymýšlel jsem různé varianty. Docela mě to šlo, takže si myslím, že tuto lekci mohu uzavřít. Trochu mě zdržel obrázek náklaďáku. Nejdříve jsem špatně vložil složku obrazky (do tridy) a potom jsem zjistil, že obrázek má být uprostřed. Nechtělo se mi dělat soubor css, tak jsem to uzavřel do div a použil style=. Šlo to. Trochu mě zdržel název třídy. já jsem zvolil NákladniAuto a mělo být NakladniAutomobil. Ale zvládnul jsem to.
Díky PK

 
Odpovědět
3.2.2021 15:11
Avatar
Yuriy Tretyachenko:23.3.2021 21:30

A mohl bys ukazat kod? me jde o te ruzne varianty

Editováno 23.3.2021 21:32
 
Odpovědět
23.3.2021 21:30
Avatar
Yuriy Tretyachenko:12.4.2021 16:28

Ted mi na email prisla nabidka a hlavicka znela takto: "Krademe PHPkáře korporátům". Takze PHPista jeste i PHPkář. Ale mohlo by to take byt treba PHPač, PHPník, PHPec, PHPator atd.

 
Odpovědět
12.4.2021 16:28
Avatar
Vincent
Člen
Avatar
Vincent:18.8.2021 19:56

at dělám co dělám tak mi vyhazuje v Javista.php na obrazovku Fatal error: Uncaught Error: Class "Clovek" not found in C:\xampp\htdoc­s\OOP\tridy\Ja­vista.php:3 Stack trace: #0 {main} ....nevydržel jsem to a zkopiroval vaše všechny tři soubory,přepsal ty své a stejně ne...nenapadá mě co dělám špatně když mám ted vlastně totožné kody jako zde.děkuji za jakoukoliv odpověd. Vé

 
Odpovědět
18.8.2021 19:56
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 45.