Programowanie obiektowe to sposób projektowania programów przy użyciu klas i obiektów. Programowanie obiektowe organizuje kod programistyczny wokół obiektów, które istnieją w klasach.
Klasa jest matrycą, szablonem, który definiuje postać obiektu. Określa ona zarówno dane obiektu (składowe) jak i również kod, który operuje na tych danych (metody).
Obiekt udostępnia zdefiniowany zestaw funkcji, których implementacja pozostaje ukryta.
Najważniejsze pojęcia związane z obiektowością w Javie
- Obiekt
- Klasa
- Abstrakcja
- Dziedziczenie
- Polimorfizm
- Hermetyzacja
Podstawowe cechy obiektu w Javie
- Zachowanie obiektu
- Stan obiektu
- Tożsamość obiektu
Informacje jakie obiekt ma o sobie nazywamy składowymi
Czynności jakie obiekt może wykonywać nazywamy metodami
Tworząc, projektując klasę należy myśleć o obiektach, które będą tworzone na podstawie tej klasy.
Jaka jest różnica między klasą a obiektem?
Klasa służy do tworzenia obiektów, a obiekty są instancjami klas.
Abstrakcja
Abstrakcja jest pewnym mechanizmem, który ma za zadanie wyświetlać tylko potrzebne informacje i ukrywać niepotrzebne. Głównym celem abstrakcji jest ukrywanie danych i prezentacja tylko niezbędnych lub oczekiwanych danych. Taki mechanizm sprawia, że nasz kod jest możliwie mniej skomplikowany, bardziej przejrzysty i łatwiejszy w odbiorze.
Dziedziczenie
Dziedziczenie w Javie to mechanizm, który sprawia, że jeden obiekt nabywa/dziedziczy właściwości innego obiektu. Dziedziczenie obsługuje również klasyfikację hierarchiczną. Umożliwia nam tworzenie nowych klasa , które są zbudowane na istniejących klasach, tj. gdy dziedziczysz z istniejącej klasy, możemy ponownie wykorzystać metody i pola klasy nadrzędnej. Dziedziczenie reprezentuje relację rodzic-dziecko.
Polimorfizm
Polimorfizm odnosi się do wielu form lub jest procesem, który wykonuje jedną akcję na różne sposoby. Występuje, gdy mamy wiele klas powiązanych ze sobą dziedziczeniem. Polimorfizm jest dwojakiego rodzaju, tj. polimorfizm w czasie kompilacji i polimorfizm w czasie wykonywania. Jednym z przykładów w Polimorfizmie czasu kompilacji jest to, że przeciążamy metodę statyczną w Javie. Polimorfizm w czasie wykonywania jest również nazywany dynamiczną dyspozycją metody, w której wywołanie nadpisanej metody jest rozwiązywane w czasie wykonywania, a nie w czasie kompilacji. W tej metodzie przesłonięta metoda jest zawsze wywoływana przez zmienną referencyjną. Używając przeciążania metod i nadpisywania metod, możemy wykonać polimorfizm. Ogólnie pojęcie polimorfizmu jest często wyrażane jako jeden interfejs, wiele metod.
Enkapsulacja inaczej hermetyzacja
Jest jednym z filarów programowania obiektowego. Jest to mechanizm, który łączy dane i kod w jedną całość i chroni je przed ingerencją z zewnątrz i niewłaściwym wykorzystaniem. W tym procesie dane są ukryte przed innymi klasami i można uzyskać do nich dostęp tylko za pośrednictwem metod bieżącej klasy. Dlatego jest również znany jako ukrywanie danych. Enkapsulacja działa jak opakowanie ochronne, które uniemożliwia dostęp do kodu i danych osobom postronnym. Są one kontrolowane przez dobrze zdefiniowany interfejs.
Programowanie obiektowe to drugi poziom programowania. Nie każdy zrozumie.