Przejdź do treści
Strona główna » 1.1 Java Podstawy – Obiekty i klasy

1.1 Java Podstawy – Obiekty i klasy

  • przez
java podstawy

spis treści

  1. Wstęp do programowania obiektowego w Java
  2. Klasy
  3. Obiekty
  4. Jak rozpoznawać klasy ?
  5. Jakie są relacje między klasami ?

Wstęp do programowania obiektowego | Java Podstawy

OOP ( obiect oriented programming ) – czyli programowanie zorientowane obiektowo jest aktualnie bardzo popularne i są to Java Podstawy. Sama Java zyskała na tym ogromną popularność. Nasza aplikacja składa się z obiektów. Każdy obiekt umożliwia swój własny zakres funkcji, a detale implementacji są schowane w definicji obiektu. W Java istnieje możliwość wielokrotnego używania obiektów, które już raz zostały stworzone jak i definicji obiektów jakimi są klasy. Ta właśnie re używalność klas jest bardzo pomocna. Gdy już raz coś napiszemy, możemy korzystać z tego wielokrotnie, jak i całą aplikację możemy wykorzystywać wielokrotnie.

Poprzednio, zanim powstał język java, bardzo popularne było programowanie tak zwane skryptowe gdzie nie było tej re używalności. Należało nowy obiekt i jego definicję pisać od nowa co tworzyło dużo nadmiarowego kodu. Programowanie zorientowane na obiekty, trochę odwróciło sposób patrzenia na obiekty. Była to wielka rewolucja i popularność języka java sięga aż do dziś. Jest jeszcze kilka dodatkowych aspektów, które sprawiło wielką popularność języka Java.

Klasy i dziedziczenie

Klasa jest ogólną definicją z której tworzy się obiekty. Można ją używać wielokrotnie i tworzyć wiele obiektów danej klasy. Możemy np stworzyć klasę BmwX1
oraz egzemplarz tej klasy np. o konkretnym numerze VIN.

W firmie BMW mógłby istnieć taki kod. Klasa BmwX1 zawiera ogólna definicję jak tworzyć model BMW X1, natomiast jednorazowe stworzenie egzemplarza tego modelu jest zawarte w obiekcie mojeBmw.

Kluczową rolę jaką pełnia klasy jest ich hermetyzacja czyli ukrywanie swojej zawartości przed innymi klasami. Dbamy o to żeby konkretne klasy nie wpływały na siebie oraz ich rola była możliwie samodzielna. Gdy wiele klasy od siebie zależy to robi się ogromny bałagan w kodzie i właśnie ta hermetyzacja klas ma temu zapobiec. Nie chcemy więc żeby jeszcze jakaś inna klasa która robi to samo co klasa BmwX1 oraz żeby jej funkcja była możliwie niezależna. Istnieje natomiast możliwość rozszerzania ( extends ) kompetencji jednej klasy o inna klasę. Np gdybyśmy mieli jakiś ogólny kod budowanie każdego BMW to ten kod moglibyśmy zawrzeć w klasie BMW oraz rozszerzyć serie BMW X1 o klase BMW.

Obiekty

Obiekt ma 3 podstawowe cechy:

  • Zachowanie
  • Stan
  • Tożsamość

Obiekty już są zapisywane w konkretnym miejscu pamięci w Java. One realnie wykonują dla nas pracę. Obiekty z tej samej klasy cechują się tym samym zachowaniem. Mogą jednak one różnić się stanem. Np 2 egzemplarze klasy BmwX1 cechują się takim samym zachowaniem, ale każdy będzie miał inny nr VIN. Będą miał inny stan. Stan obiektu może zostać zmieniony tylko jeśli została użyta jakaś metoda tego obiektu. Nie powinno się zmieniać stanu obiektu z poziomu innego obiektu. Tak jak już mówiliśmy. Jeden obiekt powinien być w miarę możliwości samodzielny.

Tożsamość obiektu jesteśmy w stanie sprawdzić. Jeden obiekt może dziedziczyć wiele klas. Każdy obiekt dziedziczy np. po Klasie ogólne Object w java. Sprawdzanie tożsamości obiektu i jego typu często jest wymagane przy bardziej skomplikowanych modelach np. Abstrakcyjnych.

Jak rozpoznawać klasy ?

W jaki sposób stwierdzić, że egzemplarz klasy BmwX1 rzeczywiście pochodzi z klasy Bmw X1 ?

Np. metoda instanceof jest w stanie sprawdzić czy egzemplarz danej klasy rzeczywiście pochodzi z tej klasy ?

Również sama klasa Obiekt po której dziedziczą wszystkie obiektu ma możliwość sprawdzenia całej hierarchii dziedziczenia.

Relacje między klasami | Java Podstawy

  • Zależność
  • Agregacja
  • Dziedziczenie

Zależność między klasami to jest coś czego należy możliwie unikać i ograniczać. Klasa BmwX1 może np być używana przez klasę BmwFactory. Nie powinna natomiast klasa BmwFactory już po stworzenie BmwX1 zmieniać za bardzo jego stanu. Zależność(coupling) między klasami należy ograniczać do minimum.

Agregacja to zawieranie się jednej klasy w drugiej. Np. Klasa Bmw X1 może posiadać listę klas Wheel ( koło ), albo listę siedzeń. Dopóki nie ma pomiędzy nimi dużego couplingu to wszystko jest ok.

Klasa również może dziedziczyć po innej klasie czyli realnie być reprezentacją innej klasy, rozszerzona o dodatkowe funkcje.
Warto zaznaczyć, że w Java istnieje tylko jednokrotne dziedziczenie. Można dziedziczyć tylko po 1 klasie, natomiast można implementować wiele interfejsów o czym później.

Zachęcamy do zakupu kurs java

pozdrawiamy
Zespół Great

Pomocne:
Java Podstawy
Java Exceptions

Dodaj komentarz

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