Bo programowanie obiektowe to nie samo programowanie, tylko filozofia programowania. Taka barmanka na przykład ma interfejs z klientem. Ma metodę publiczną "podaj piwo", ale metoda "umyj kufel" jest już prywatna. Przecież klient nie podejdzie do barmanki i nie powie "umyj kufel i podaj piwo", tylko samo "podaj piwo". A to, czy barmanka przed podaniem mu piwa umyje mu kufel, zależy od tego, jak zaimplementowano jej metodę "umyj kufel".
Cały bajer polega na tym, że barmankę możemy napisać w C++, a nawet w C, chociaż wtedy będzie udawać C++. A jak się uprzemy, możemy ją nawet w PHP napisać. W Delphi też, ale to już będzie tylko makieta barmanki.
I tak działa programowanie obiektowe.
Cytat "mniej-więcej".
"zammer" należy pisać z małej litery. Zawsze. Nawet, jak jest na początku zdania. Jest to swoista anomalia ortograficzna (więcej...)
Treść bloga zammerologia stosowana jest dostępna na licencji Creative Commons - Uznanie autorstwa 3.0.
Design by zammer, częściowo zainspirowany przez Zergalla. Fugue Icons by pinvoke.
Powered by JoggerPL.
hljeg surim mekten keudsme
Komentarze:
1. Dodek 16 grudnia 2009, 09:06:35 [permalink]
Zabawne, żaden z wymienionych przez ciebie języków nie jest OO, chociaż pewnie mamy inne definicje OOP - moja nie jest ENTERPRISE QUALITY.
2. matekm 16 grudnia 2009, 09:22:31 [permalink]
on nie mówi o językach obiektowych a o programowaniu obiektowym.
Zresztą - istnieje w ogóle coś takiego jak "języki obiektowe"? Ja zawsze spotykałem się z określeniem "języki zorientowane na programowanie OO" lub prościej "języki zorientowane obiektowo". Jest jakaś poważna publikacja książkowa wyjaśniająca czym jest język obiektowy?
Co do OO: C++ jest OO.
Co do samego programowania zorientowanego obiektowo (z naciskiem na "zorientowanego) - to technika i jako taka nie jest właściwością języka. Może być z powodzeniem stosowana zarówno programując w języku C jak i C++, Javie, Pythonie i innych.
Jeżeli faktycznie istnieją "języki obiektowe" (coś jak Java? wymusza stosowanie klas?) to trzeba rozróżniać "języki obiektowe" od "programowanie zorientowane obiektowo"
3. Dodek 16 grudnia 2009, 09:28:08 [permalink]
"Zresztą - istnieje w ogóle coś takiego jak "języki obiektowe"?"
Słyszałem ludzi używających tego określenia, ale jest ill-defined, więc go nie użyłem, w związku z czym nie wiem, co miała na celu Twoja wypowiedź.
"Jeżeli faktycznie istnieją "języki obiektowe" (coś jak Java? wymusza stosowanie klas?)"
Prędzej message passing i late binding. OOP to nie tylko klasy, metody i dziedziczenie, o czym wielu zdaje się zapominać/nie wiedzieć.
4. matekm 16 grudnia 2009, 09:36:01 [permalink]
@Dodek: taka dygresja. Główna część jest o językach OO i programowaniu zorientowanym obiektowo
a, widzę. Miało być "mówi o programowaniu obiektowym a nie o językach OO" a nie "o językach obiektowych"
5. radmen 16 grudnia 2009, 09:58:19 [permalink]
Są języki w pełni obiektowe, przykładowo Smalltalk, Python.
6. Dodek 16 grudnia 2009, 09:58:52 [permalink]
Akurat może nie porównuj Smalltalka z Pythonem, bo to dwie zupełnie różne rzeczy.
7. radmen 16 grudnia 2009, 09:59:40 [permalink]
Dodek: nie porównuję ich. Mówię jeno, że to są jedne z języków w pełni obiektowych :) Miałem to ostatnio na wykładach z "Języków Programowania Obiektowego" :)
8. matekm 16 grudnia 2009, 10:12:42 [permalink]
@radmen: dzięki za info :)
9. teamon 16 grudnia 2009, 11:05:37 [permalink]
@radmen Nie zapominaj o ruby! ;]
10. radmen 16 grudnia 2009, 11:08:13 [permalink]
teamon: och się uczepiliście. Podałem przykłady tylko! :)
Dodaj komentarz: