eT` Posted October 17, 2011 Report Share Posted October 17, 2011 Man uzdeva m/d OOP un uzd ir tāds: Izveidot sistēmu, kas atpazīst kokus parkā pēc krāsas;Sistēmai tiek nodota koka krāsa kā char masīvs (piem., “zaļš”); Pēc krāsas saņemšanas, sistēma izdod: ¨koka nosaukumu; ¨krāsu; ¨koka vecumu; ¨hierarhiju; ¨citus atribūtus, kas raksturīgs tikai konkrētai vienai koku klasei Sistēmai ir jāsatur klase KOKS un vairākas apakšklases. Obligāti jābūt: Ozols, Vītols, Osis, Liepa, Kļava un vēl vismaz 2 pašu izdomātas; Katrai klasei ir vismaz divi atribūti; Katrai klasei ir vismaz divas metodes; Uzdevumā minētām klasēm (gan virsklasei, gan apakšklasēm) atribūti un metodes ir jāiekļauj pieejas zonā ‘Protected’. Papildus uzdevums (nav obligāts): Izveidot sistēmu tā, lai jauna koka pievienošana, neprasītu izmaiņas sistēmas kodā it kā uztaisīju, bet nu protected var izsaukt tikai no apakšklases. tātad jautājums sekojošs: Kā var uztaisīt f-ju, kas tiek klāt visām 5 koku klasēm? C++ var uztaisīt class klase: public virsklase,public virsklase2,public virsklase3 utt, bet PHP tādu risinājumu neatradu. Quote Link to comment Share on other sites More sharing options...
briedis Posted October 17, 2011 Report Share Posted October 17, 2011 ir private, protected un public. Šis pats attiecas arī uz PHP. Kur īsti ir problēma? Quote Link to comment Share on other sites More sharing options...
eT` Posted October 17, 2011 Author Report Share Posted October 17, 2011 mans kods - http://paste.php.lv/647dd8c0db3db905767bd022f83e1722?lang=php man ir 3 klases. un ja man tagad jāizveido katrai apakšklasei objekts un konstruktoram ir jābūt protected ( kas nozīmē, ka jāizsauc no apakšklases ) man jāveido katrai apakšklasei vēl viena klase, kas spētu izsaukt viņas konstruktoru? un man būs 5 koku klases tātad - virsklase, 5 koku klases, 5 klases kas spēj izsaukt katru no koku klasēm, lai izveidotu objektu. Nav cita risinājuma? Quote Link to comment Share on other sites More sharing options...
eT` Posted October 17, 2011 Author Report Share Posted October 17, 2011 (edited) BUMP! Šāds risinājums ir korekts? http://paste.php.lv/131782af45a3ce596465affcc22753c8?lang=php Edited October 18, 2011 by eT` Quote Link to comment Share on other sites More sharing options...
codez Posted October 18, 2011 Report Share Posted October 18, 2011 Izskatās, ka tev tur īsti pareizi kaut ko nemāca. Tas, ka Ozols varētu ekstendod Koks klasi ir normāli, bet tas, ka arī Ozols klasei jābūt ar protected metodēm nozīmē, ka katra koka veida klasei tev vajadzēs vēlvienu klasi, kura ļauj šo koka klasi izmantot, kas ir absurdi. Visu koku glabāšanai loģiskākais variants būtu izveidot klasi Parks, bet šī klase nevar ekstendot ne klasi Koks, ne Ozols, jo tas ir absurdi. Tātad gribot, vai negribot klases Ozols konstruktoram ir jābūt public, nevis protected. Pēdējais variants, kuru tu iepostoji, kurš ir praktiski vienīgais iespējamais variants, kā realizēt to, lai būtu protected metodes, bet nebūtu katrai koka apakšklasei, jātaisa vēlviena klase to izmantošanai, vispār ir absurds, jo kāpēc gan Ozolam būtu jāekstendo Vītols, varbūt Vītolam ir jākestendo Ozols? Tas nav loģiski. Es saprotu, ka tas ir tikai mācību piemērs, bet piemēriem ir jābūt tādiem, kas viennozīmīgi ilustrē apgūstamā materiāla būtību, nevis liek taisīt kaut ko bezsakarīgu. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted October 18, 2011 Report Share Posted October 18, 2011 Kāpēc PHP ar HTML atkal ir vienā putrā? :D abstract class Tree class Oak extends Tree class Willow extends Tree Quote Link to comment Share on other sites More sharing options...
v3rb0 Posted October 18, 2011 Report Share Posted October 18, 2011 tad jau vēl vajag: interface IBotanicalEntitiy { //.. } abstract class Tree implements IBotanicalEntitiy { } citādi ar Tree sapratīs pavisam ko citu.. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted October 18, 2011 Report Share Posted October 18, 2011 citādi ar Tree sapratīs pavisam ko citu.. Nesapratu. Quote Link to comment Share on other sites More sharing options...
spainis Posted October 18, 2011 Report Share Posted October 18, 2011 duck typing Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.