struktury danych i techniki obiektowe na przykładzie javy 5.0 full, ebooki
[ Pobierz całość w formacie PDF ] IDZ DO PRZYK£ADOW Struktury danych i techniki obiektowe na przyk³adzie Javy 5.0 SPIS TREŒCI KATALOG KSI¥¯EK Autorzy: Elliot Koffman, Paul Wolfgang T³umaczenie: Rafa³ Joñca, Tomasz ¯mijewski ISBN: 83-246-0089-2 Tytu³ orygina³u: Format: B5, stron: 936 KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK Przy tworzeniu systemów informatycznych najwa¿niejsze zadania wykonuje siê, zanim powstanie pierwszy fragment kodu Ÿród³owego. Wymogi stawiane wspó³czesnym aplikacjom powoduj¹, ¿e in¿ynieria oprogramowania staje siê kwesti¹ kluczow¹. Opracowanie odpowiedniego projektu oraz w³aœciwy dobór technologii i metodologii zapewniaj¹ szybk¹ i efektywn¹ pracê nad systemem. Niezwykle wa¿ne jest poznanie dostêpnych w jêzyku Java struktur danych i umiejêtnoœæ ich wykorzystania. Prawid³owo dobrana struktura danych znacznie przyspiesza nie tylko implementacjê aplikacji, ale równie¿ dzia³anie gotowego systemu. Ksi¹¿ka „Struktury danych i techniki obiektowe na przyk³adzie Javy 5.0” przedstawia podstawowe struktury danych i sposoby ich wykorzystania podczas programowania obiektowego. Wszystkie wiadomoœci zosta³y zaprezentowane z uwzglêdnieniem regu³ nowoczesnej in¿ynierii oprogramowania. Czytaj¹c kolejne rozdzia³y ksi¹¿ki, poznasz najlepsze zastosowania ró¿nych struktur danych oraz wady i zalety ich implementacji. Przede wszystkim jednak zrozumiesz potrzebê stosowania tak wielu struktur danych. Cykl ¿ycia oprogramowania Zastosowanie jêzyka UML w projektowaniu systemów Obs³uga b³êdów i wyj¹tków Testowanie oprogramowania Dziedziczenie i hierarchia klas Listy jedno- i dwukierunkowe Interfejs Collection Stosy i kolejki Algorytmy rekurencyjne Sortowanie danych Drzewa wyszukiwania Grafy DODAJ DO KOSZYKA CENNIK I INFORMACJE ZAMÓW INFORMACJE ONOWOŒCIACH ZAMÓW CENNIK CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Po przeczytaniu tej ksi¹¿ki zrozumiesz zasadê: „Pomyœl, a dopiero potem pisz kod” Przedmowa ..................................................................................... 17 Rozdział 1. Wprowadzenie do projektowania oprogramowania ............................ 29 1.1. Cykl życia oprogramowania ..............................................................................30 Modele cyklu życia oprogramowania ...................................................................31 Działania związane z cyklem życia oprogramowania ..........................................33 Specyfikacja wymagań .........................................................................................34 Analiza ..................................................................................................................35 Projektowanie .......................................................................................................36 Ćwiczenia do podrozdziału 1.1 .............................................................................38 1.2. Abstrakcja pomaga zarządzać złożonością ......................................................39 Abstrakcja proceduralna .......................................................................................39 Abstrakcja danych .................................................................................................40 Ukrywanie informacji ...........................................................................................40 Ćwiczenia do podrozdziału 1.2 .............................................................................41 1.3. Abstrakcyjne typy danych, interfejsy, warunki wstępne i końcowe ..............42 Interfejsy ...............................................................................................................43 Klauzula implements ............................................................................................45 Deklaracja zmiennej będącej typem interfejsu .....................................................45 Interfejs dla klasy książki telefonicznej ................................................................46 Komentarze Javadoc .............................................................................................46 Kontrakty i interfejsy ............................................................................................47 Warunki początkowe i końcowe ...........................................................................47 Ćwiczenia do podrozdziału 1.3 .............................................................................48 1.4. Analiza wymagań, przypadki użycia i diagramy sekwencji ...........................49 ANALIZA PRZYPADKU — projektowanie programu książki telefonicznej ....50 Ćwiczenia do podrozdziału 1.4 .............................................................................55 1.5. Projektowanie książki telefonicznej bazującej na tablicy ...............................56 ANALIZA PRZYPADKU — projektowanie programu książki telefonicznej (kontynuacja) ......................................................................................................56 Ćwiczenia do podrozdziału 1.5 .............................................................................62 1.6. Implementacja i testowanie książki telefonicznej bazującej na tablicy .........62 ANALIZA PRZYPADKU — projektowanie programu książki telefonicznej (kontynuacja) ......................................................................................................62 Ćwiczenia do podrozdziału 1.6 .............................................................................69 4 Struktury danych i techniki obiektowe na przykładzie Javy 5.0 1.7. Dwie klasy implementujące interfejs PDUserInterface ...................................69 ANALIZA PRZYPADKU — projektowanie programu książki telefonicznej (kontynuacja) ......................................................................................................69 Ćwiczenia do podrozdziału 1.7 .............................................................................80 Podsumowanie rozdziału ...............................................................................................80 Rozdział 2. Poprawność i wydajność programów ............................................... 87 2.1. Defekty i błędy w programach ...........................................................................88 Błędy składniowe ..................................................................................................89 Błędy czasu wykonania i wyjątki .........................................................................90 Błędy logiczne ......................................................................................................94 Ćwiczenia do podrozdziału 2.1 .............................................................................95 2.2. Hierarchia klas wyjątków ..................................................................................95 Klasa Throwable ...................................................................................................96 Wyjątki weryfikowane i nieweryfikowane ...........................................................96 Ćwiczenia do podrozdziału 2.2 .............................................................................97 2.3. Wyłapywanie i obsługa wyjątków .....................................................................99 Wyjątki niewyłapane ............................................................................................99 Sekwencja try-catch-finally ..................................................................................99 Ćwiczenia do podrozdziału 2.3 ...........................................................................106 2.4. Zgłaszanie wyjątków .........................................................................................106 Klauzula throws ..................................................................................................106 Instrukcja throw ..................................................................................................108 Wyłapywanie wyjątków w programie książki telefonicznej ..............................111 Ćwiczenia do podrozdziału 2.4 ...........................................................................113 2.5. Testowanie programów ....................................................................................114 Strukturalne ścieżki przejścia .............................................................................115 Poziomy i rodzaje testów ....................................................................................115 Przygotowanie do testów ....................................................................................117 Wskazówki dotyczące testowania programów ...................................................118 Przygotowanie danych testowych .......................................................................119 Testowanie warunków granicznych ....................................................................119 Kto wykonuje testy? ...........................................................................................122 Namiastki ............................................................................................................123 Programy testujące ..............................................................................................124 Testowanie klasy .................................................................................................124 Wykorzystanie systemu testującego ...................................................................125 Testy regresyjne ..................................................................................................127 Testy integracyjne ...............................................................................................128 Ćwiczenia do podrozdziału 2.5 ...........................................................................128 2.6. Usuwanie błędów z programów .......................................................................129 Wykorzystanie programu uruchomieniowego ....................................................130 Ćwiczenia do podrozdziału 2.6 ...........................................................................134 2.7. Rozważania na temat programów: asercje i niezmienniki pętli ...................134 Asercje ................................................................................................................135 Niezmienniki pętli ...............................................................................................135 Rozszerzenie tematu — instrukcja assert języka Java ........................................137 Ćwiczenia do podrozdziału 2.7 ...........................................................................138 2.8. Wydajność algorytmów ....................................................................................138 Notacja dużego O ................................................................................................141 Porównanie wydajności ......................................................................................145 Spis treści 5 Algorytmy o złożoności wykładniczej ................................................................146 Ćwiczenia do podrozdziału 2.8 ...........................................................................147 Podsumowanie rozdziału .............................................................................................148 Rozdział 3. Dziedziczenie i hierarchie klas ....................................................... 157 3.1. Wprowadzenie do dziedziczenia i hierarchii klas ..........................................158 Związki „jest” i „zawiera” ..................................................................................160 Klasa bazowa i podklasa .....................................................................................161 Wykorzystanie słowa kluczowego this ...............................................................162 Inicjalizacja pól danych podklasy .......................................................................163 Konstruktor bezparametrowy ..............................................................................164 Pola chronione klasy bazowej .............................................................................164 Ćwiczenia do podrozdziału 3.1 ...........................................................................165 3.2. Przeciążanie metod, przesłanianie metod i polimorfizm ...............................166 Przesłanianie metod ............................................................................................166 Przeciążanie metod .............................................................................................168 Polimorfizm ........................................................................................................169 Ćwiczenia do podrozdziału 3.2 ...........................................................................171 3.3. Klasy abstrakcyjne, przypisanie i rzutowanie w hierarchii klas ..................172 Referencje do obiektów rzeczywistych ..............................................................174 Klasy abstrakcyjne i interfejsy ............................................................................174 Klasa abstrakcyjna Number i klasy opakowujące typy podstawowe .................174 Podsumowanie cech klas konkretnych, klas abstrakcyjnych i interfejsów .........175 Ćwiczenia do podrozdziału 3.3 ...........................................................................175 3.4. Klasa Object, rzutowanie i klonowanie ..........................................................177 Metoda toString() ................................................................................................177 Dopuszczalne operacje określa typ zmiennej referencyjnej ...............................177 Rzutowanie w hierarchii klas ..............................................................................178 Metoda Object.equals() .......................................................................................182 Klonowanie .........................................................................................................183 Klonowanie struktury danych .............................................................................187 Ćwiczenia do podrozdziału 3.4 ...........................................................................188 3.5. Dziedziczenie wielobazowe, stosowanie wielu interfejsów i delegacja .........189 Wykorzystanie wielu interfejsów do emulacji dziedziczenia wielobazowego ...189 Implementacja wielokrotnego użycia dzięki delegacji .......................................191 Ćwiczenia do podrozdziału 3.5 ...........................................................................192 3.6. Pakiety i widoczność .........................................................................................193 Pakiety .................................................................................................................193 Środowisko bez deklaracji nazwy pakietu ..........................................................193 Widoczność w ramach pakietu ...........................................................................194 Widoczność pozwala wspomóc hermetyzację ....................................................194 Ćwiczenia do podrozdziału 3.6 ...........................................................................195 3.7. Hierarchia klas kształtu ...................................................................................196 ANALIZA PRZYPADKU — rysowanie figur geometrycznych .......................196 Ćwiczenia do podrozdziału 3.7 ...........................................................................212 3.8. Fabryki obiektów ..............................................................................................212 ANALIZA PRZYPADKU — obliczanie pól i obwodów figur geometrycznych ................................................................................................213 Ćwiczenia do podrozdziału 3.8 ...........................................................................215 6 Struktury danych i techniki obiektowe na przykładzie Javy 5.0 Podsumowanie rozdziału .............................................................................................215 Rozdział 4. Listy i interfejs Collection ............................................................. 223 4.1. Interfejs List i klasa ArrayList ........................................................................224 Klasa ArrayList ...................................................................................................225 Kolekcje sparametryzowane ...............................................................................227 Specyfikacja klasy ArrayList ..............................................................................229 Ćwiczenia do podrozdziału 4.1 ...........................................................................230 4.2. Zastosowania ArrayList ...................................................................................230 Powrót do programu książki telefonicznej .........................................................231 Ćwiczenia do podrozdziału 4.2 ...........................................................................232 4.3. Implementacja klasy ArrayList .......................................................................233 Konstruktor klasy KWArrayList<E> ..................................................................234 Metoda add(E anEntry) .......................................................................................234 Metoda add(int index, E anEntry) .......................................................................235 Metody set() i get() .............................................................................................236 Metoda remove() .................................................................................................237 Metoda reallocate() .............................................................................................237 Implementacja KWArrayList jako klasy bez parametryzacji .............................238 Wydajność KWArrayList ...................................................................................238 Klasa Vector ........................................................................................................238 Ćwiczenia do podrozdziału 4.3 ...........................................................................239 4.4. Listy jednokierunkowe i dwukierunkowe ......................................................239 Węzeł listy ..........................................................................................................241 Łączenie węzłów .................................................................................................243 Klasa listy jednokierunkowej ..............................................................................243 Wstawienie węzła ...............................................................................................244 Usunięcie węzła ..................................................................................................244 Przejście przez listę .............................................................................................245 Listy dwukierunkowe ..........................................................................................246 Klasa listy dwukierunkowej ................................................................................248 Listy cykliczne ....................................................................................................249 Ćwiczenia do podrozdziału 4.4 ...........................................................................250 4.5. Klasa LinkedList oraz interfejsy Iterator, ListIterator i Iterable ................252 Klasa LinkedList .................................................................................................252 Iterator .................................................................................................................252 Interfejs Iterator ..................................................................................................253 Interfejs ListIterator ............................................................................................255 Porównanie Iterator i ListIterator ........................................................................258 Interfejs ListIterator i indeks ...............................................................................258 Rozszerzona pętla for ..........................................................................................258 Interfejs Iterable ..................................................................................................259 Ćwiczenia do podrozdziału 4.5 ...........................................................................259 4.6. Implementacja klasy listy dwukierunkowej ...................................................260 Implementacja metod klasy KWLinkedList .......................................................261 Klasa implementująca interfejs ListIterator ........................................................262 Klasy wewnętrzne — statyczne i niestatyczne ...................................................268 Ćwiczenia do podrozdziału 4.6 ...........................................................................269 4.7. Zastosowania klasy LinkedList .......................................................................269 ANALIZA PRZYPADKU — przechowywanie uporządkowanej listy .............270 Ćwiczenia do podrozdziału 4.7 ...........................................................................276
[ Pobierz całość w formacie PDF ]
zanotowane.pldoc.pisz.plpdf.pisz.plmement.xlx.pl
|