Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Priklad: Class auto { private: FARBA Farba; public: NastavFarbu(); } ... auto.Farba = ZELENA; // hod…
MM.. 18.07.2016 17:36
MM..
Tak že, když objekt nemůže přímo přistupovat k „vnitřnostem“ jiných objektů, znaméná to, že těmi vni…
MM10 18.07.2016 17:53
MM10
Ano da sa to tak chapat.
MM.. 18.07.2016 17:54
MM..
Já jsem myslel, že ta metoda je jen setter. ktomu settery služí, ne ?
MM10 18.07.2016 17:55
MM10
Metody mozu byt rozne, definicia OOP je vseobecna. Dnes ta metoda moze len nastavit 1premennu, a zaj…
MM.. 18.07.2016 17:59
MM..
Jasně, ale chci se dobrat tomu, že cituji: Každý objekt navenek zpřístupňuje rozhraní, pomocí kteréh…
MM10 18.07.2016 18:02
MM10
Rozhranie je subor/zoznam vsetkych tych funkcii ktore dana trieda poskytuje navonok. Ono sa to kludn… nový
MM.. 18.07.2016 18:05
MM..
Díky za objasnění. poslední
MM10 18.07.2016 18:26
MM10

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é ?

class Auto {
  private $farba;
  ...
}

a rozhraní je v tomto případě metoda setFarba() ?

class Auto {
  public function setFarba($var)
  {
    $this -> $farba = $var ;
  }
  ...
}

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 ?

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