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…

Podejście obiektowe – pojęcie klasy, konstrukcja obiektu (konstruktory, metody)

Podejście obiektowe służy uporządkowaniu konstrukcji programu, hermetyzacji danych i metod, oraz naturalnemu, intuicyjnemu grupowaniu funkcjonalności programu w obrębie zamkniętych obiektów cechujących się wyróżniającymi je elementami. Takie działanie sprzyja przejrzystości programu, gdyż w podejściu obiektowym dosyć szybko możemy wyróżnić i zinterpretować obiekty nas interesujące. Hermetyzacja pomaga także utrzymać spójność danych utrudniając swobodną manipulację nimi, przez co zwiększając ich wiarygodność i odporność Dowiedz się więcej…

Tablice „dynamiczne” – kolekcje: listy, wektory, kolejki, sety, mapy.

Znamy już struktury tablicowe i wiemy jakie niedogodności za sobą przynoszą. Z uwagi na ich prostotę często z nich korzystamy i korzystać będziemy, jednakże z uwagi na ich wady nieraz to zastanawiać się możemy czy nie ma czegoś „lepszego”. Tym „lepszym” mogą się okazać kolekcje, czyli elementy umieszczane w pamięci operacyjnej komputera i powiązane ze sobą specyficznymi, dla natury tej użytej akurat kolekcji, odsyłaczami. Grupa kolekcji Dowiedz się więcej…

Varargs…

Nieraz w naszym świecie potrzeb mamy do czynienia z faktem, że musimy coś przeliczyć opierając się na pewnej ilości argumentów. Do Java wersja 5 mogliśmy to zrobić tworząc metodę parsującą tablicę argumentów, bądź osobno stworzoną listę argumentów. Tym niemniej obecnie możemy oprzeć się na mechanizmie zmiennej ilości argumentów w metodzie. Użycie varargs, bo o tym mechanizmie mowa, może wyglądać następująco: Wynikiem Dowiedz się więcej…

Obsługa plików tekstowych i binarnych

Obsługa plików należy do nieco „wyższego” poziomu wtajemniczenia. Jednakże przy pewnym zaawansowaniu programowania trudno bez niej się obejść. W zakresie tej obsługi trzeba wyróżnić obsługę plików tekstowych, czyli takich, które zawierają wartości będące ekwiwalentem tekstu pisanego i które winny być interpretowane jako tekst; oraz pliki binarne, które zaś mogą zawierać dowolne wartości, i trudno jednoznacznie przyjąć co jest Dowiedz się więcej…

Dodatek: Liczby pseudolosowe

Liczby pseudolosowe są udostępniane jako wynik działania generatora liczb pseudolosowych. W przypadku języka Java za działanie generatora odpowiada klasa Random. Przykładem użycia jest poniższy program: Po zaimportowaniu odpowiedniej biblioteki możemy przystąpić do stworzenia instancji rand klasy Random. Posiadając instancję możemy powoływać się na metody udostępnione w ramach tej klasy. Do najczęściej przydatnych należą: nextInt() – generujący liczbę pseudolosową w pełnym Dowiedz się więcej…