Powrót do wiedza

Interfejs Java bez tajemnic

Czy wiesz, że korzystałeś już dzisiaj z co najmniej kilku rodzajów interfejsów? Być może w mikrofali albo podczas robienia kawy z ekspresu? A może sprawdzałeś dzisiaj nowe powiadomienia na smartfonie czy wysłałeś jakieś maile? Właśnie wtedy miałeś do czynienia z...

Czy wiesz, że korzystałeś już dzisiaj z co najmniej kilku rodzajów interfejsów? Być może w mikrofali albo podczas robienia kawy z ekspresu? A może sprawdzałeś dzisiaj nowe powiadomienia na smartfonie czy wysłałeś jakieś maile? Właśnie wtedy miałeś do czynienia z interfejsem. Dowiedzmy się więc, czym jest interfejs w ogóle i czym jest interfejs Java!

 

Podczas programowania zadbanie o interfejs jest jedną z najważniejszych rzeczy. Mówi się, że zły interfejs równa się złemu produktowi. A chyba zależy ci na tym, by twoje oprogramowanie było jak najlepsze? Z pewnością słyszałeś wielokrotnie, że “jemy oczami”. Podobnie jest z korzystaniem z aplikacji przez użytkownika – im bardziej intuicyjna i łatwiejsza  w obsłudze, tym częstsze powroty, by z niej znów skorzystać.

Czym jest w ogóle interfejs?

Co to jest interfejs? Wbrew pozorom nie jest to nic niezwykłego. Każdy z nas codziennie ma do czynienia z różnego rodzaju interfejsami, czy to w samochodzie, czy w przypadku obsługi radia, czy właśnie korzystając z różnego rodzaju oprogramowania. Interfejs definiuje sposób, w jaki porozumiewamy się z danymi systemami. Dzięki niemu wiemy, jakie operacje możemy wykonać i w jaki sposób możemy nimi zarządzać. Przecież wiesz, że aby skręcić kołami w samochodzie, należy też skręcić kierownicą, aby podgłośnić radio należy użyć potencjometru lub dedykowanego przycisku, a aby wstawić post na Facebooka, należy wpisać jego treść w odpowiednim polu. Interfejs więc podpowiada, jak wykonać pożądane operacje, lecz nie określa zasady działania, w jaki sposób zostanie to wykonane.

Co obejmuje interfejs aplikacji komputerowej? Między innymi środki do wyświetlania informacji, ich formaty oraz kody, także tryby poleceń i język, istotna są też interakcje pomiędzy użytkownikiem a aplikacją oraz informacje zwrotne, jakie wtedy uzyskujemy. Często interfejs kojarzony jest z wyglądem oprogramowania. Jest to tylko częściowa prawda, ponieważ interfejs jest także tym, czego nie widać na pierwszy rzut oka. To wszelkie zestawy zadań użytkowników, elementy sterowania i nawigacja pomiędzy poszczególnymi blokami systemu.

Zobacz także:Wszystko, co musisz wiedzieć o inżynierii oprogramowania

Charakterystyka interfejsu Java

Jeśli już wiem, czym jest interfejs i jak należy go rozumieć, przyjrzyjmy się charakterystyce interfejsu Java. Opisuje on zbiór metod, które można wywołać dla danego obiektu, aby uzyskać pewne informacje lub osiągnąć wypełnienie zleconego zadania. Są zatem zestawem metod bez ich implementacji.

 

Aby zdefiniować interfejsy w języku Java, należy skorzystać ze słowa kluczowego “interface”. Istotne, by trzymać się wyłącznie stałych metod abstrakcyjnych. Ważne: w Java części składowe interfejsu muszą być widoczne jako publiczne! Każdy interfejs definiujemy w osobnym pliku, którego nazwa musi być tożsama z nazwą interfejsu.

 

Dla przykładu:

public interface Clock {

    long secondsElapsedSince(Date date);

}

 

Widzimy powyżej prosty interfejs “Clock” z metodą “secondsElapsedSince” i argumentem “Date”. Należy zwrócić uwagę na brak słowa “public” ze względu na to, że wykorzystaliśmy wszystkie publiczne metody, jest ono zbędne.

 

Aby w pełni poprawnie pracować z interfejsami, należy zapamiętać ich podstawowe właściwości:

  1. Wiemy już, że pracę z interfejsem rozpoczynamy od słowa kluczowego “interface”.
  2. Wiemy też, że metody interfejsu są publiczne i abstrakcyjne, dlatego nie ma obowiązku zaznaczać tego przy deklaracji.
  3. Pola interfejsu są finalne, statyczne i publiczne.
  4. Metody interfejsów nie mogą być statyczne!
  5. Interfejs jest w stanie rozszerzyć wyłącznie inny interfejs.
  6. Interfejs nie jest w stanie zaimplementować innego interfejsu.

Zobacz także: Czym różni się Java od Java Script?

Interfejs Java a klasy abstrakcyjne różnice

Zacznijmy od wyjaśnienia, czym w ogóle są klasy abstrakcyjne? W najprostszych słowach można powiedzieć, że są to klasy, które mogą mieć metody abstrakcyjne. Sama w sobie klasa abstrakcyjna nie różni się od zwykłych klas. Tak samo może ona dziedziczyć po innych, można w niej stosować normalnej interfejsy, a także je implementować. Należy jednak pamiętać, że klasa abstrakcyjna nie może być zarazem abstract i final. Czym są zatem wspomniane metody abstrakcyjne? W gruncie rzeczy są podobne do zwykłych metod. Zawierają one jedynie sygnaturę metody bez jej ciała. 

 

Różnica pomiędzy interfejsem Java a klasą abstrakcjami opiera się na dziedziczeniu. W przypadku klasy abstrakcyjnej dziedziczenie jest możliwe wyłącznie po jednej, innej klasie i określa ona metody o innej widoczności niż publiczne. Interfejs Java można zaś dziedziczyć wielokrotnie i dotyczy on wyłącznie metod, których widoczność określona jest jako publiczna

Zobacz również: Czym jest programowanie obiektowe?

Udostępnij