Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 7. diel - Dedičnosť v PHP

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
Avatar
Odpovedá 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.

Odpovedať
8.2.2019 16:30
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovedá 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)

 
Odpovedať
8.2.2019 20:33
Avatar
Odpovedá 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).

Odpovedať
8.2.2019 22:32
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovedá 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...

 
Odpovedať
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>

 
Odpovedať
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.

 
Odpovedať
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

 
Odpovedať
3.2.2021 15:11
Avatar
Yuriy Tretyachenko:23.3.2021 21:30

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

Editované 23.3.2021 21:32
 
Odpovedať
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.

 
Odpovedať
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é

 
Odpovedať
18.8.2021 19:56
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 45.