Interfejs (programowanie obiektowe)

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Interfejs – definicja abstrakcyjnego typu posiadającego jedynie operacje, a nie dane. Kiedy w konkretnej klasie zdefiniowane są wszystkie metody interfejsu mówimy, że klasa implementuje dany interfejs. W programie mogą być tworzone zmienne typu referencja do interfejsu, nie można natomiast tworzyć obiektów tego typu. Referencja może wskazywać na obiekt dowolnej klasy implementującej dany interfejs. Interfejs określa udostępniane operacje, nie zawiera natomiast ich implementacji i danych. Z tego powodu klasy mogą implementować wiele interfejsów, bez problemów wynikających z wielokrotnego dziedziczenia. Wszystkie metody w interfejsie z reguły muszą być publiczne.

PHP – obiektowy język programowania zaprojektowany do generowania stron internetowych i budowania aplikacji webowych w czasie rzeczywistym.Object Pascal – obiektowy język programowania, jest obiektowym rozszerzeniem języka Pascal. Pomiędzy językami Pascal i Object Pascal występuje podobna relacja jak w przypadku języków C i C++ (tzn. że Object Pascal jest nadzbiorem Pascala). W języku Object Pascal dodano nie tylko możliwość programowania obiektowego (klasy) ale uzupełniono go także o cechy, których nie posiada Pascal, np.: tablice dynamiczne, przeciążanie procedur/funkcji, interfejsy, zarządzane ciągi znaków, zarządzane rekordy, obsługa Unikodu, typy generyczne.

Interfejs pozwala na hermetyzację obiektów, utworzonych w oparciu o klasy zawierające definicję (implementację) wspólnego interfejsu. Tak rozumiany interfejs, w ramach programowania obiektowego, określany jest też mianem interfejs klasy.

  • w języku C++ interfejs może być zdefiniowany jako klasa abstrakcyjna
  • w Javie, C#, Object Pascalu oraz PHP stosuje się w tym celu specjalną deklarację ze słowem interface
  • Przykład interfejsu w Javie[ | edytuj kod]

    interface Interfejs{
    
      public void proc();
    
    }
    
    class Klasa implements Interfejs{
    
      @Override
      public void proc(){
        // ...
      }
    }
    

    Interfejs a Klasa Abstrakcyjna[ | edytuj kod]

    między w/w typami danych są następujące różnice:

    W programowaniu obiektowym klasa jest częściową lub całkowitą definicją dla obiektów. Definicja obejmuje dopuszczalny stan obiektów oraz ich zachowania. Obiekt, który został stworzony na podstawie danej klasy nazywany jest jej instancją. Klasy mogą być typami języka programowania - przykładowo, instancja klasy Owoc będzie mieć typ Owoc. Klasy posiadają zarówno interfejs, jak i strukturę. Interfejs opisuje, jak komunikować się z jej instancjami za pośrednictwem metod, zaś struktura definiuje sposób mapowania stanu obiektu na elementarne atrybuty.Hermetyzacja (inna używana nazwa to enkapsulacja, (ang.) encapsulation) – jedno z założeń programowania obiektowego. Hermetyzacja polega na ukrywaniu pewnych danych składowych lub metod obiektów danej klasy tak, aby były one dostępne tylko metodom wewnętrznym danej klasy lub funkcjom zaprzyjaźnionym.
  • Interfejs może zawierać jedynie deklaracje metod, a klasa abstrakcyjna może zawierać również metody zdefiniowane.
  • Rozszerzając klasę abstrakcyjną klasa może uczestniczyć jedynie w jednej hierarchii, natomiast używając interfejsów klasa może uczestniczyć w wielu typach hierarchii.
  • interfejsy – w przeciwieństwie do klas abstrakcyjnych – wymagają od użytkownika implementacji wszystkich metod w nich zawartych. Ponadto Klasy abstrakcyjne mogą ułatwić ten proces, umożliwiając podstawową implementację danej funkcjonalności.
  • Wszystkie zadeklarowane metody w interfejsie są publiczne, natomiast metody zadeklarowane w klasach mogą być publiczne lub chronione.
  • Klasy abstrakcyjne mogą zawierać atrybuty, natomiast interfejsy – nie.
  • Przypisy[ | edytuj kod]

    1. Rozmowa kwalifikacyjna z Javy? Żaden problem! Cz. III (Core), it-leaders.com.pl [dostęp 2018-10-25] [zarchiwizowane z adresu 2018-10-24] (pol.).
    2. Programistyka: Różnice między klasą abstrakcyjną, a interfejsem, sebastian-malaca.blogspot.com [dostęp 2018-10-25].
    Dziedziczeniem (ang. inheritance) w programowaniu obiektowym nazywamy mechanizm współdzielenia funkcjonalności między klasami. Klasa może dziedziczyć po innej klasie, co oznacza, że oprócz swoich własnych atrybutów oraz zachowań, uzyskuje także te pochodzące z klasy, z której dziedziczy. Klasa dziedzicząca jest nazywana klasą pochodną lub potomną (w j. angielskim: subclass lub derived class), zaś klasa, z której następuje dziedziczenie — klasą bazową (w ang. superclass). Z jednej klasy bazowej można uzyskać dowolną liczbę klas pochodnych. Klasy pochodne posiadają obok swoich własnych metod i pól, również kompletny interfejs klasy bazowej.Referencja w informatyce to wartość, która zawiera informacje o położeniu innej wartości w pamięci lub na innym nośniku danych. W odróżnieniu od wskaźników, zarządzanie referencjami realizowane jest wyłącznie przez kompilator lub interpreter, a programista nie posiada żadnych informacji o konkretnym sposobie implementacji referencji.




    Warto wiedzieć że... beta

    Metoda – w programowaniu obiektowym podprogram składowy klasy, którego zadaniem jest działanie na rzecz określonych elementów danej klasy lub klas z nią spokrewnionych (zob. też dziedziczenie).
    Obiekt to podstawowe pojęcie wchodzące w skład paradygmatu programowania obiektowego w analizie i projektowaniu oprogramowania oraz w programowaniu.
    Definicja intuicyjna: Java (wym. „dżawa”) to język programowania. Programy napisane w Javie można uruchamiać na wielu urządzeniach, takich jak telefony komórkowe lub komputery oraz pod różnymi systemami operacyjnymi, przy użyciu Wirtualnej maszyny Javy, która musi być w danym środowisku zainstalowana.

    Reklama