
Objasnění citace v OOP
Ahoj, může mi prosím někdo objasnit tuhle větu (OOP) ?
Zapouzdření – zaručuje, že objekt nemůže přímo přistupovat k „vnitřnostem“ jiných objektů, což by mohlo vést k nekonzistenci. Každý objekt navenek zpřístupňuje rozhraní, pomocí kterého (a nijak jinak) se s objektem pracuje.
Priklad:
Class auto
{
private:
FARBA Farba;
public:
NastavFarbu();
}
...
auto.Farba = ZELENA; // hodi error lebo to je fuj.
auto.NastavFarbu(ZELENA); //spravne
...
Zmysel je v tom ze ta fcia NastavFarbu trebars moze robit aj dalsie veci, napr. nahlasit to na policiu ze si prestriekal auto :D, a preto je nastavovanie premennych priamo fuj, lebo potom je bordel.
Tak že, když objekt nemůže přímo přistupovat k „vnitřnostem“ jiných objektů, znaméná to, že těmi vnitřnostmi se myslí vlastnosti/proměnné ?
a rozhraní je v tomto případě metoda setFarba() ?
Ano da sa to tak chapat.
Já jsem myslel, že ta metoda je jen setter. ktomu settery služí, ne ?
Metody mozu byt rozne, definicia OOP je vseobecna. Dnes ta metoda moze len nastavit 1premennu, a zajtra pride poziadavka zakaznika ze to musi este aj hlasit prezidentovi, tak uz bude metoda robit tych veci viac. Nepotrebujes tomu davat extra nazvy. Je to len metoda ako kazda ina. A bol to len priklad, nebudem ti tu vypisovat alokaciu RAM pre string a podobne zlozitejsie veci.
Jasně, ale chci se dobrat tomu, že cituji:
Každý objekt navenek zpřístupňuje rozhraní, pomocí kterého (a nijak jinak) se s objektem pracuje.
Pořád nevím co je myšleno tím rozhraním. Je to teda prostě jakýkoliv setter, getter či jakákoliv metoda která je nastavena jako public ?
Rozhranie je subor/zoznam vsetkych tych funkcii ktore dana trieda poskytuje navonok. Ono sa to kludne aj definuje dopredu, podla toho co sa od danej triedy ocakava.
Díky za objasnění.