Jump to content
php.lv forumi

PHP OOP


eT`

Recommended Posts

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...