14. Programowanie obiektowe: Klasy i Obiekty

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).

Programowanie obiektowe w Javie

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

Obiekt w Javie

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. 

Notatka o autorze:

Zajmuję się testowaniem, zabezpieczaniem i zapewnianiem jakości oprogramowania od ponad 13 lat. Rozpocząłem swoją karierę od testów manualnych i analizy biznesowo-technicznej. Obecnie prowadzę firmę Quality Island, która zajmuje się szeroko pojętym testowaniem oprogramowania oraz szkoleniami dla przyszłych i obecnych testerów oprogramowania. Moją specjalnością są testy automatyczne aplikacji webowych oraz budowa procesów automatyzacji i robotyzacji. Od 8 lat prowadzę aktywnie szkolenia oraz konsultacje z tych tematów i wykonuję zlecenia dla firm trzecich jako konsultant, ekspert oraz audytor. Współpracuję również z firmami jako osoba do rekrutacji i weryfikacji technicznych. Interesują mnie głównie tematy związane z architekturą IT oraz zagadnienia DevOps/TestOps, ponieważ ściśle wiążą się z zapewnianiem jakości oprogramowania.

 

Tomasz Stelmach

CEO&Founder

 

1 komentarz

  1. Adam

    Programowanie obiektowe to drugi poziom programowania. Nie każdy zrozumie.

    Odpowiedz

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *