Java: Wyłączanie dziedziczenia

W celu zablokowania możliwości dziedziczenia można ustawić modyfikator klasy. Spowoduje to, że nie da się użyć jej jako klasy nadrzędnej, czyli nie da się utworzyć klasy dziedziczącej na podstawie tej klasy. Przykładem jest poniższy kod, gdzie interfejs A został zaimplementowany w klasie abstrakcyjnej AA, która natomiast została odziedziczona i rozwinięta w klasie AAA, a ta oznaczona dodatkowo modyfikatorem final. Próba stworzenia klasy AAAA Dowiedz się więcej…

Java: Przykładowe zadania egzaminacyjne.

Zad. 1 Dany jest plik danych o strukturze: imię (łańcuch znaków) nazwisko (łańcuch znaków) kredyt (liczba rzeczywista) pensja (liczba rzeczywista) wiek (liczba całkowita) Napisać funkcję wpisującą w tym pliku proponowaną kwotę kredytu. Kwota jest wyliczana według wzoru: Parametrem funkcji jest nazwa pliku. Funkcja powinna zwrócić łańcuch znaków, zawierający imię i nazwisko osoby z największym Dowiedz się więcej…

Java: Polimorfizm.

Polimorfizm jest kolejną z „najważniejszych” cech programowania obiektowego. Jest praktycznie używany w każdym większym programie. Zrozumienie jego działania jest wręcz niezbędne dla skutecznego programowania obiektowego. Rozważmy przypadek firmy spedycyjnej posiadającej 1000 pojazdów, w tym 675 samochodów ciężarowych, 232 furgonetki, 18 zwyżek , 50 samochodów osobowych i 25 rowerów. W każdym z nich należy wykonać okresowo przegląd Dowiedz się więcej…

Java: Klasy i metody abstrakcyjne. Interfejsy.

Klasy i metody abstrakcyjne Klasy i metody abstrakcyjne to sposób na wejście jeszcze wyżej w filozofię programowania obiektowego. W sposób najprostszy abstrakcje te powodują, że wprost nie da się powołać z nich obiektów. Te struktury są jedynie „zarysem”, pewną „ideą” jaką programista zamierzył w stosunku do klasy, czy do metody. Dopiero na podstawie tej idei należy wypełnić ją treścią, a wtedy dopiero można tę treść przywołać „do życia” w postaci instancji klasy potomnej, Dowiedz się więcej…

Java: Dziedziczenie

Dziedziczenie jest szeroko wykorzystywane w programowaniu obiektowym. Wywodzi się ono niejako w sposób bezpośredni z idei programowania obiektowego. W założeniu polega na pomyśle, że niepotrzebnym jest wielokrotne powielanie kodu programu w różnych jego blokach funkcjonalnych, które się między sobą nie za bardzo różnią, bądź nie różnią się w ogóle, a powielenie wynika z tego, że w ten sam (lub podobny) sposób mamy się zająć dwiema Dowiedz się więcej…