Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Python - zapouzdření (soukromé, veřejné)

Dobrý den,

řeším KSI a v ní je jedna tato úloha, na kterou prostě nedokážu přijít. Řeším ji už 3. den (každý den mám 20 pokusů na odpovědi) a prostě jsem naprosto v koncích. Nerozumím tomu a nemám už moc čas, abych to dál teď studoval. Prosím Vás, mohli byste mi poradit, co z toho je správně a posléze mě víc odkázat na stránky, kde se to naučím? Popř. abyste mi to vysvětlili, jak to rozpoznám od sebe? Vážně to nedokážu pochopit, mně více sedí funkcionální programování, ne OOP.

Úloha je v obrázku.

Vážně Vás prosím o pomoc. Předem všem děkuji za jejich vřelé rady.

Předmět Autor Datum
Jako veřejné bych dal poslední dva. Použitím ostatních by se to mohlo dostat do nekonzistentního sta…
Wikan 19.11.2017 13:49
Wikan
Zkusil jsem to odevzdat a nepřijalo to odpověď. :/ Ale děkuji za pokus. :)
Vilak 19.11.2017 14:13
Vilak
Ještě "get_" metody by mohlo být veřejné. Jenže "mohly", ještě nemusí znamenat, že by i měly být veř…
Wikan 19.11.2017 14:19
Wikan
Právě, to mě na tom štve.
Vilak 19.11.2017 14:24
Vilak
Když to vezmeme vylučovací metodou: - metody "add_" a "remove_" by se měly volat vždy v párech a ve…
Wikan 19.11.2017 14:32
Wikan
Jako soukromé jsem dal tedy: - add_on_road - add_to_zoo - on_road - remove_from_road - remove_from_…
Vilak 19.11.2017 14:41
Vilak
Get je snad vždy veřejný, ne? Pak by to postrádalo smysl. Mám třídu čtverec, která ma atributy veli…
MašinkaTomáš 21.11.2017 08:59
MašinkaTomáš
To jde o to, čemu všemu říkáš "get". Pokud myslíš "get" z dvojice "get_neco", "set_neco", tak máš pr… poslední
Wikan 21.11.2017 10:13
Wikan

Když to vezmeme vylučovací metodou:
- metody "add_" a "remove_" by se měly volat vždy v párech a ve správném pořadí, takže není bezpečné je volat zvenčí
- metoda "start_trip" by nám měla to správné pořadí zajistit, takže ta bude veřejná
- metody "get_" můžou ale i nemusí být veřejné, ale jejich použití by mělo být bezpečné, takže je může dát veřejné
- seznam "on_road" je dostupný pomocí metody "get_animals_on_road", takže bych ho dal jako soukromý
- seznam "zoos" je sporný a navíc podle mě by v téhle třídě vůbec neměl být. Každopádně někde musíme znát jednotlivá zoo, aby bylo mezi nimi možné přesouvat. Pokud ten seznam není nikde jinde, měl by být veřejný.

Jako soukromé jsem dal tedy:

- add_on_road
- add_to_zoo
- on_road
- remove_from_road
- remove_from_zoo

a pak:

- add_on_road
- add_to_zoo
- on_road
- remove_from_road
- remove_from_zoo
- zoos

a nevzalo mi to ani jedno. Koneckonců jsme už překročil limit, takže můžu zas zkusit odpovědět až zítra.

Zpět do poradny Odpovědět na původní otázku Nahoru