Wpis z mikrobloga

#java #javapomoc

oglądam 2 tutoriale, przeczytałem cały rozdział i dalej nie wiem po co są te interfejsy. Wiem że interfejs mówi co metoda może robić ale nie mówi w jaki sposób, interfejs może być dzierżony (xD) przez kilka różnych klas. Na co to komu?
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@borrow: Można to sobie wyobrazić w ten sposób, że interfejsem stawiasz pewne wymagania co do tego co ma funkcja zwracać i jakie parametry przyjmować, nie obchodzi cie to w jaki sposob zostanie to zrobione. Później w kodzie, możesz zarządac przyjęcia np w parametrze obiektu, który jest zgodny z tym interfejsem. Ktoś więc taki obiekt ci poda, ale co jak ktoś wymyśli lepszy sposób na zrobienie tego? Napisze nową klasę która
  • Odpowiedz
@borrow: najlepiej popatrz na istniejące w javie interfejsy, np Collection, możesz zrobić sobie metodę co np usuwa z kolekcji wszystkie stringi z twojej listy zakazanych słów: void removeCensored(Collection collection) i Collection to interface, można tam podać listę, seta, cokolwiek co implementuje ten interfejs, ale ciebie już nie interesuje jak np jest tam zaimplementowana metoda .remove której będziesz używać, tylko wiesz że tam jest i co ma robić, a to jak
  • Odpowiedz
interfejs może być dzierżony


@borrow: czy to jest, przepraszam, cytat z jakiejś polskojęzycznej książki? :D W sumie po 'odśmiecaczu nieużytków' nic mnie nie zaskoczy.
  • Odpowiedz
@borrow: masz metodę/funkcję która przyjmuje jakiś obiekt jako argument, jeżeli typ tego argumentu to konkretna klasa to tylko tą jedną klasę może przyjąć

jeżeli jako argument jest interfejs, to metoda może przyjąć jakąkolwiek klasę która implementuje ten interfejs

realnym więc powodem istnienia interfejsów jest to by oznaczyć klasy które mogą być użyte zamiennie jako argument jakiejś metody
  • Odpowiedz
@borrow: Napisz program który będzie miał 3 klasy - kwadrat, trójkąt, koło. Każda klasa ma liczyć pole i obwód. Potrzebne parametry podajesz przez konstruktor. Dla każdego z obiektu wyświetl pole i obwód. Potem zastanów się jak możesz użyć tu interfejsu.
  • Odpowiedz