155362
Książka
W koszyku
(Owoce Programowania)
Rozdział 1. Wprowadzenie do komputerów i Javy 31 1.2. Po co programować? 31 1.3. Systemy komputerowe: sprzęt i oprogramowanie 33 Sprzęt 33 Oprogramowanie 36 1.4. Języki programowania 37 Czym jest program? 37 Historia języka Java 38 1.5. Z czego składa się program? 40 Elementy języka 40 Wiersze i instrukcje 42 Zmienne 42 Kompilator i maszyna wirtualna Javy 43 Wersje oprogramowania Java 45 Kompilowanie i uruchamianie programów w Javie 46 1.6. Proces programowania 48 Inżynieria oprogramowania 50 1.7. Programowanie obiektowe 51 Rozdział 2. Podstawy Javy 59 2.1. Części programu w Javie 59 2.2. Metody print i println oraz interfejs API Javy 65 2.3. Zmienne i literały 70 Wyświetlanie wielu elementów za pomocą operatora + 72 Zachowaj ostrożność przy cudzysłowach 73 Jeszcze o literałach 73 Identyfikatory 74 Nazwy klas 76 2.4. Proste typy danych 76 Całkowitoliczbowe typy danych 78 Typy zmiennoprzecinkowe 79 Typ danych boolean 82 Typ danych char 82 Inicjowanie zmiennych i przypisywanie do nich wartości 84 Zmienne w danym momencie przechowują tylko jedną wartość 85 2.5. Operatory arytmetyczne 86 Dzielenie całkowitoliczbowe 89 Pierwszeństwo operatorów 89 Grupowanie z użyciem nawiasów 91 Klasa Math 94 2.6. Złożone operatory przypisania 95 2.7. Konwersja prostych typów danych na inne takie typy 97 Operacja na różnych typach całkowitoliczbowych 99 Inne wyrażenia matematyczne z różnymi typami 100 2.8. Tworzenie nazwanych stałych za pomocą słowa kluczowego final 101 2.9. Klasa String 103 Obiekty są tworzone na podstawie klas 103 Klasa String 104 Zmienne typów prostych i zmienne będące instancją klasy 104 Tworzenie obiektu typu String 105 2.10. Zasięg 108 2.11. Komentarze 110 2.12. Styl programowania 114 2.13. Wczytywanie danych wejściowych z klawiatury 116 Wczytywanie znaków 120 Łączenie wywołań metody nextLine z wywołaniami innych metod klasy Scanner 120 2.14. Okna dialogowe 123 Wyświetlanie okien dialogowych 124 Wyświetlanie okien dialogowych na dane wejściowe 124 Przykładowy program 125 Przekształcanie tekstowych danych wejściowych na liczby 126 2.15. Typowe błędy, których należy unikać 129 Rozdział 3. Struktury decyzyjne 143 3.1. Instrukcja if 143 Używanie operatorów relacji do tworzenia warunków 145 Łączenie wszystkich informacji 147 Style programowania a instrukcja if 149 Uważaj na średniki 149 Warunkowe wykonywanie wielu instrukcji 150 Flagi 150 Porównywanie znaków 151 3.2. Instrukcja if-else 152 3.3. Zagnieżdżone instrukcje if 154 3.4. Instrukcja if-else-if 160 3.5. Operatory logiczne 165 Pierwszeństwo operatorów logicznych 170 Sprawdzanie przynależności liczb do przedziałów za pomocą operatorów logicznych 171 3.6. Porównywanie obiektów typu String 172 Ignorowanie wielkości znaków przy porównywaniu łańcuchów 176 3.7. Jeszcze o deklarowaniu i zasięgu zmiennych 178 3.8. Operator warunkowy (opcjonalny) 179 3.9. Instrukcja switch 180 3.10. Wyświetlanie sformatowanych danych wyjściowych za pomocą instrukcji System.out.printf i String.format 189 Składnia specyfikatorów formatowania 192 Precyzja 193 Określanie minimalnej szerokości pola 194 Opcje 196 Formatowanie argumentów w postaci łańcuchów znaków 199 Metoda String.format 200 3.11. Typowe błędy, których należy unikać 203 Rozdział 4. Pętle i pliki 217 4.1. Operatory inkrementacji i dekrementacji 217 Różnice między trybami przyrostkowym i przedrostkowym 219 4.2. Pętla while 221 Pętla while jest testowana na początku 223 Pętle nieskończone 224 Nie zapominaj o umieszczaniu bloku instrukcji w nawiasie klamrowym 225 Styl programowania i pętla while 225 4.3. Stosowanie pętli while do sprawdzania poprawności danych wejściowych 227 4.4. Pętla do-while 231 4.5. Pętla for 233 Pętla for jest pętlą ze sprawdzaniem wstępnym 237 Unikaj modyfikowania zmiennej sterującej w ciele pętli for 237 Inne formy wyrażenia aktualizującego 237 Deklarowanie zmiennej w wyrażeniu inicjującym pętli for 237 Tworzenie pętli for sterowanych przez użytkownika 238 Używanie wielu instrukcji w wyrażeniach inicjującym i aktualizującym 239 4.6. Suma bieżąca i wartość wartownika 242 Stosowanie wartownika 245 4.7. Pętle zagnieżdżone 247 4.8. Instrukcje break i continue (opcjonalne) 254 4.9. Wybieranie rodzaju pętli 255 4.10. Wprowadzenie do zapisu i odczytu plików 255 Stosowanie klasy PrintWriter do zapisu danych w pliku 256 Dołączanie danych do pliku 262 Określanie lokalizacji pliku 263 Odczyt danych z pliku 263 Odczyt wierszy pliku za pomocą metody nextLine 264 Dodawanie klauzuli throws do nagłówka metody 266 Sprawdzanie, czy plik istnieje 270 4.11. Generowanie liczb losowych za pomocą klasy Random 273 4.12. Typowe błędy, których należy unikać 279 Rozdział 5. Metody 295 5.1. Wprowadzenie do metod 295 Metody void i metody zwracające wartość 297 Definiowanie metody void 297 Wywoływanie metody 299 Warstwowe wywołania metod 302 Używanie komentarzy javadoc do metod 303 5.2. Przekazywanie argumentów do metod 304 Zgodność typów danych argumentów i parametrów 307 Zasięg parametrów 307 Przekazywanie wielu argumentów 307 Argumenty są przekazywane przez wartość 309 Przekazywanie metodom referencji do obiektów 310 Używanie znacznika @param w komentarzach javadoc 313 5.3. Jeszcze o zmiennych lokalnych 315 Czas życia zmiennych lokalnych 316 Inicjowanie zmiennych lokalnych za pomocą parametrów 316 5.4. Zwracanie wartości przez metody 317 Definiowanie metody zwracającej wartość 318 Wywoływanie metody zwracającej wartość 319 Używanie znacznika @return w komentarzach javadoc 320 Zwracanie wartości logicznych 323 Zwracanie referencji do obiektu 324 5.5. Rozwiązywanie problemów za pomocą metod 325 Wywoływanie metod zgłaszających wyjątki 328 5.6. Typowe błędy, których należy unikać 329 Rozdział 6. Pierwszy kontakt z klasami 343 6.1. Obiekty i klasy 343 Klasy: to z nich biorą się obiekty 344 Klasy w interfejsie API Javy 345 Zmienne typów prostych a obiekty 347 6.2. Pisanie prostej klasy krok po kroku 350 Akcesory i mutatory 363 Znaczenie ukrywania danych 363 Unikanie nieaktualnych danych 363 Podawanie specyfikatorów dostępu na diagramach UML 364 Zapis typów danych i parametrów na diagramach UML 364 Układ składowych klasy 365 6.3. Pola i metody instancji 366 6.4. Konstruktory 370 Zapisywanie konstruktorów na diagramach UML 372 Niezainicjowane lokalne zmienne referencyjne 372 Konstruktor domyślny 373 Pisanie własnego konstruktora bezargumentowego 374 Konstruktor klasy String 374 6.5. Przekazywanie obiektów jako argumentów 382 6.6. Przeciążanie metod i konstruktorów 393 Klasa BankAccount 395 Przeciążone metody zwiększają użyteczność klas 400 6.7. Zasięg pól instancji 400 Przesłanianie 401 6.8. Pakiety i instrukcje import 402 Szczegółowe i ogólne instrukcje import 402 Pakiet java.lang 403 Inne pakiety z interfejsu API 403 6.9. Projektowanie obiektowe: określanie klas i ich zadań 403 Określanie klas 404 Określanie zadań klas 408 To dopiero początek 411 6.10. Typowe błędy, których należy unikać 411 Rozdział 7. Tablice i klasa ArrayList 427 7.1. Wprowadzenie do tablic 427 Dostęp do elementów tablicy 429 Zapisywanie i wyświetlanie zawartości tablicy 430 Java sprawdza zakres tablicy 433 Uważaj na pomyłki o jeden element 434 Inicjowanie tablicy 434 Różne sposoby deklarowania tablic 435 7.2. Przetwarzanie elementów tablic 437 Długość tablicy 439 Pętla for dla kolekcji 439 Umożliwianie użytkownikom określania wielkości tablicy 441 Przypisywanie nowych tablic do tablicowych zmiennych referencyjnych 442 Kopiowanie tablic 443 7.3. Przekazywanie tablic jako argumentów metod 445 7.4. Wybrane przydatne algorytmy i operacje tablicowe 448 Sumowanie wartości w tablicy liczb 449 Obliczanie średniej wartości z tablicy liczb 449 Wyszukiwanie największej i najmniejszej wartości w tablicy liczb 450 Klasa SalesData 451 Częściowo zapełnione tablice 458 Praca z tablicami i plikami 459 7.5. Zwracanie tablic przez metody 460 7.6. Tablice typu String 461 Wywoływanie metod typu String za pomocą elementów tablicy 464 7.7. Tablice obiektów 464 7.8. Algorytm wyszukiwania sekwencyjnego 467 7.9. Tablice dwuwymiarowe 469 Inicjowanie tablicy dwuwymiarowej 473 Pole length w tablicy dwuwymiarowej 474 Wyświetlanie wszystkich elementów tablicy dwuwymiarowej 475 Sumowanie wszystkich elementów tablicy dwuwymiarowej 476 Sumowanie wartości wierszy tablicy dwuwymiarowej 477 Sumowanie kolumn tablicy dwuwymiarowej 477 Przekazywanie tablic dwuwymiarowych do metod 478 Tablice z wierszami o różnej długości 479 7.10. Tablice o co najmniej trzech wymiarach 480 7.11. Algorytm sortowania przez wybieranie i wyszukiwania binarnego 481 Algorytm sortowania przez wybieranie 481 Algorytm wyszukiwania binarnego 484 7.12. Argumenty podawane w wierszu poleceń i listy argumentów o zmiennej długości 486 Argumenty w wierszu poleceń 487 Listy argumentów o zmiennej długości 488 7.13. Klasa ArrayList 490 Tworzenie i używanie obiektów typu ArrayList 491 Używanie pętli for dla kolekcji do obiektów typu ArrayList 492 Metoda toString klasy ArrayList 493 Usuwanie elementów z obiektu typu ArrayList 494 Wstawianie elementu 495 Zastępowanie elementu 496 Pojemność 496 Zapisywanie własnych obiektów w obiektach typu ArrayList 497 7.14. Typowe błędy, których należy unikać 498 Rozdział 8. Jeszcze o klasach i obiektach 513 8.1. Statyczne składowe klasy 513 Krótkie omówienie pól i metod instancji 513 Składowe statyczne 514 Pola statyczne 514 Metody statyczne 516 8.2. Przekazywanie obiektów jako argumentów metod 519 8.3. Zwracanie obiektów przez metody 522 8.4. Metoda toString 524 8.5. Pisanie metody equals 528 8.6. Metody kopiujące obiekty 530 Konstruktory kopiujące 532 8.7. Agregowanie 533 Agregacja na diagramach UML 539 Problemy z bezpieczeństwem dotyczące klas agregujących 539 Unikaj stosowania referencji null 542 8.8. Zmienna referencyjna this 545 Używanie słowa kluczowego this do zapobiegania przesłanianiu 545 Używanie słowa kluczowego this do wywoływania przeciążonego konstruktora w innym konstruktorze 546 8.9. Typy wyliczeniowe 547 Typy wyliczeniowe są wyspecjalizowanymi klasami 548 Używanie typu wyliczeniowego w instrukcji switch 553 8.10. Przywracanie pamięci 555 Metoda finalize 556 8.11. Koncentracja na projektowaniu obiektowym - współdziałanie klas 557 Opisywanie współdziałania klas za pomocą kart CRC 559 8.12. Typowe błędy, których należy unikać 561 Rozdział 9. Przetwarzanie tekstu i klasy nakładkowe 573 9.1. Wprowadzenie do klas nakładkowych 573 9.2. Sprawdzanie i konwersja znaków za pomocą klasy Character 574 Zmiana wielkości znaków 579 9.3. Inne metody klasy String 581 Wyszukiwanie podłańcuchów 581 Pobieranie podłańcuchów 587 Metody zwracające zmodyfikowany obiekt typu String 590 Statyczne metody valueOf 592 9.4. Klasa StringBuilder 594 Konstruktory klasy StringBuilder 595 Inne metody klasy StringBuilder 596 Metoda toString 599 9.5. Rozdzielanie łańcuchów znaków 604 9.6. Klasy nakładkowe dla liczbowych typów danych 608 Statyczne metody toString 608 Metody toBinaryString, toHexString i toOctalString 608 Stałe MIN_VALUE i MAX_VALUE 609 Automatyczna konwersja na klasę i na typ prosty 609 9.7. Rozwiązywanie problemów - klasa TestScoreReader 611 9.8. Typowe błędy, których należy unikać 614 Rozdział 10. Dziedziczenie 627 10.1. Czym jest dziedziczenie? 627 Uogólnianie i specjalizacja 627 Dziedziczenie to relacja "jest czymś" 628 Dziedziczenie na diagramach UML 635 Konstruktor klasy bazowej 635 Dziedziczenie nie działa w drugą stronę 637 10.2. Wywoływanie konstruktora klasy bazowej 638 Co się dzieje, gdy klasa bazowa nie ma konstruktora domyślnego ani bezargumentowego? 644 Streszczenie zagadnień związanych z konstruktorami w kontekście dziedziczenia 644 10.3. Przesłanianie metod klasy bazowej 646 Przeciążanie a przesłanianie 650 Zapobieganie przesłanianiu metody 653 10.4. Składowe chronione 653 Dostęp na poziomie pakietu 658 10.5. Łańcuchy dziedziczenia 659 Hierarchie klas 663 10.6. Klasa Object 665 10.7. Polimorfizm 667 Polimorfizm i wiązanie dynamiczne 668 Relacja "jest czymś" nie działa w drugą stronę 670 Operator instanceof 670 10.8. Klasy i metody abstrakcyjne 671 Klasy abstrakcyjne na diagramach UML 677 10.9. Interfejsy 677 Interfejs jest kontraktem 679 Pola w interfejsach 682 Implementowanie wielu interfejsów 683 Interfejsy na diagramach UML 683 Metody domyślne 683 Polimorfizm i interfejsy 685 10.10. Anonimowe klasy wewnętrzne 690 10.11. Interfejsy funkcyjne i wyrażenia lambda 693 10.12. Typowe błędy, których należy unikać 697 Rozdział 11. Wyjątki i zaawansowane plikowe operacje wejścia-wyjścia 711 11.1. Obsługa wyjątków 711 Klasy wyjątków 712 Obsługa wyjątków 713 Pobieranie domyślnego komunikatu o błędzie 717 Polimorficzne referencje do wyjątków 719 Używanie wielu klauzul catch do obsługi wielu wyjątków 719 Klauzula finally 726 Ślad stosu 727 Obsługa wielu wyjątków za pomocą jednej klauzuli catch 729 Co się dzieje, gdy wyjątek nie zostaje przechwycony? 731 Wyjątki kontrolowane i niekontrolowane 731 11.2. Zgłaszanie wyjątków 733 Tworzenie własnych klas wyjątków 736 Używanie znacznika @exception w komentarzach javadoc 738 11.3. Zagadnienia zaawansowane: pliki binarne, pliki z dostępem swobodnym i serializowanie obiektów 739 Pliki binarne 739 Pliki o dostępie swobodnym 745 Serializowanie obiektów 751 Serializowanie obiektów zagregowanych 754 11.4. Typowe błędy, których należy unikać 755 Rozdział 12. JavaFX: programowanie interfejsu GUI i podstawowe kontrolki 765 12.1. Graficzne interfejsy użytkownika 765 Programy z interfejsem GUI sterowanym zdarzeniami 766 12.2. Wprowadzenie do biblioteki JavaFX 768 Kontrolki 768 Płótno i sceny 769 Klasa Application 770 12.3. Tworzenie scen 772 Tworzenie kontrolek 773 Tworzenie kontenerów 773 Tworzenie obiektów typu Scene 774 Dodawanie obiektu typu Scene do płótna 775 Określanie wielkości sceny 777 Wyrównywanie kontrolek w kontenerze HBox 777 12.4. Wyświetlanie grafiki 779 Wczytywanie grafiki z internetu 782 Określanie wielkości grafiki 782 Zachowywanie proporcji obrazu 783 Modyfikowanie obrazu powiązanego z obiektem typu ImageView 783 12.5. Jeszcze o kontenerach HBox, VBox i GridPane 784 Kontener typu HBox 784 Kontener typu VBox 789 Kontener typu GridPane 791 Używanie wielu kontenerów na jednym ekranie 797 12.6. Przyciski i zdarzenia 798 Obsługa zdarzeń 800 Pisanie obiektów obsługi zdarzeń 801 Rejestrowanie obiektu obsługi zdarzeń 801 12.7. Wczytywanie danych za pomocą kontrolki typu TextField 805 12.8. Używanie anonimowych klas wewnętrznych i wyrażeń lambda do obsługi zdarzeń 809 Używanie anonimowych klas wewnętrznych do tworzenia obiektów obsługi zdarzeń 809 Używanie wyrażeń lambda do tworzenia obiektów obsługi zdarzeń 811 12.9. Kontener typu BorderPane 814 12.10. Interfejs ObservableList 817 12.11. Typowe błędy, których należy unikać 819 Rozdział 13. JavaFX: zaawansowane kontrolki 829 13.1. Dodawanie stylów aplikacji opartych na bibliotece JavaFX za pomocą arkuszy CSS 829 Nazwy selektorów typów 830 Właściwości w stylach 831 Stosowanie arkuszy stylów do aplikacji opartych na bibliotece JavaFX 833 Stosowanie stylów do węzła korzenia 836 Podawanie kilku selektorów w jednej definicji stylu 838 Praca z kolorami 838 Tworzenie niestandardowej klasy stylu 840 Selektory identyfikatorów 842 Wewnątrzwierszowe reguły stylów 842 13.2. Kontrolki typu RadioButton 844 Sprawdzanie w kodzie, czy dana kontrolka typu RadioButton jest zaznaczona 845 Zaznaczanie kontrolki typu RadioButton w kodzie 845 Reagowanie na kliknięcie kontrolki typu RadioButton 850 13.3. Kontrolki typu CheckBox 853 Sprawdzanie w kodzie, czy kontrolka typu CheckBox jest zaznaczona 854 Zaznaczanie kontrolki typu CheckBox za pomocą kodu 854 Reagowanie na kliknięcie kontrolki typu CheckBox 857 13.4. Kontrolki typu ListView 858 Pobieranie zaznaczonego elementu 859 Pobieranie indeksu zaznaczonego elementu 861 Reagowanie na zaznaczenie elementu za pomocą obiektu obsługi zdarzeń 862 Dodawanie elementów a ustawianie elementów 864 Inicjowanie kontrolki typu ListView za pomocą tablicy lub obiektu typu ArrayList 864 Tryby zaznaczania elementów 866 Pobieranie wielu zaznaczonych elementów 867 Używanie elementów z listy typu ObservableList 869 Przekształcanie listy typu ObservableList na tablicę 870 Używanie kodu do zaznaczania elementu w kontrolce typu ListView 871 Układ kontrolki typu ListView 871 Tworzenie kontrolek typu ListView z elementami typów innych niż String 872 13.5. Kontrolki typu ComboBox 877 Pobieranie zaznaczonego elementu 879 Reagowanie na zaznaczenie elementu w kontrolce typu ComboBox 880 Kontrolki typu ComboBox umożliwiające modyfikacje 881 13.6. Kontrolki typu Slider 882 13.7. Kontrolki typu TextArea 888 13.8. Menu 890 Przypisywanie klawiszy skrótu do opcji menu 897 13.9. Klasa FileChooser 899 Wyświetlanie okna dialogowego typu FileChooser 899 13.10. Używanie danych wyjściowych w konsoli do debugowania aplikacji z interfejsem GUI 901 13.11. Typowe błędy, których należy unikać 904 Rozdział 14. JavaFX: grafika, efekty i multimedia 913 14.1. Rysowanie kształtów 913 Układ współrzędnych ekranu 913 Klasa Shape i jej podklasy 914 Klasa Line 915 Zmienianie koloru pędzla 917 Klasa Circle 918 Klasa Rectangle 921 Klasa Ellipse 924 Klasa Arc 928 Klasa Polygon 931 Klasa Polyline 934 Klasa Text 936 Obracanie węzłów 938 Skalowanie węzłów 940 14.2. Animacje 942 Klasa TranslateTransition 943 Klasa RotateTransition 946 Klasa ScaleTransition 950 Klasa StrokeTransition 953 Klasa FillTransition 954 Klasa FadeTransition 955 Sterowanie animacją 956 Wybieranie mechanizmu interpolacji 958 14.3. Efekty 959 Klasa DropShadow 960 Klasa InnerShadow 961 Klasa ColorAdjust 963 Klasy BoxBlur, GaussianBlur i MotionBlur 964 Klasa SepiaTone 967 Klasa Glow 967 Klasa Reflection 967 Łączenie efektów 968 14.4. Odtwarzanie plików dźwiękowych 970 Rejestrowanie obiektu obsługi zdarzenia EndOfMedia 972 14.5. Odtwarzanie filmów 975 14.6. Obsługa zdarzeń związanych z klawiszami 980 Stosowanie anonimowej klasy wewnętrznej do rejestrowania obiektu obsługi zdarzeń dla sceny 981 Używanie wyrażeń lambda do rejestrowania obiektów obsługi zdarzeń dla sceny 981 14.7. Obsługa zdarzeń związanych z myszą 986 14.8. Typowe błędy, których należy unikać 991 Rozdział 15. Rekurencja 999 15.1. Wprowadzenie do rekurencji 999 15.2. Rozwiązywanie problemów za pomocą rekurencji 1002 Rekurencja bezpośrednia i pośrednia 1006 15.3. Przykładowe metody rekurencyjne 1006 Sumowanie przedziału elementów tablicy za pomocą rekurencji 1006 Rysowanie koncentrycznych kół 1008 Ciąg Fibonacciego 1010 Znajdowanie największego wspólnego dzielnika 1011 15.4. Rekurencyjne wyszukiwanie binarne 1012 15.5. Wieże Hanoi 1015 15.6. Typowe błędy, których należy unikać 1019 Rozdział 16. Bazy danych 1025 16.1. Wprowadzenie do systemów zarządzania bazami danych 1025 JDBC 1027 SQL 1027 Używanie systemu DBMS 1028 Java DB i Apache Derby 1028 Tworzenie bazy danych CoffeeDB 1028 Nawiązywanie połączenia z bazą CoffeeDB 1029 Łączenie się z bazą chronioną hasłem 1031 16.2. Tabele, wiersze i kolumny 1032 Typy danych kolumn 1033 Klucze główne 1034 16.3. Wprowadzenie do instrukcji SQL SELECT 1035 Przekazywanie instrukcji SQL-owych do systemu DBMS 1036 Określanie kryteriów wyszukiwania za pomocą klauzuli WHERE 1045 Sortowanie wyników zapytania SELECT 1051 Funkcje matematyczne 1052 16.4. Wstawianie wierszy 1055 Wstawianie wierszy za pomocą technologii JDBC 1057 16.5. Aktualizowanie i usuwanie istniejących wierszy 1058 Aktualizowanie wierszy za pomocą technologii JDBC 1059 Usuwanie wierszy za pomocą instrukcji DELETE 1063 Usuwanie wierszy za pomocą technologii JDBC 1063 16.6. Tworzenie i usuwanie tabel 1066 Usuwanie tabel za pomocą instrukcji DROP TABLE 1069 16.7. Tworzenie nowej bazy danych za pomocą technologii JDBC 1069 16.8. Przewijalne zbiory wyników 1071 16.9. Metadane zbioru wyników 1073 16.10. Dane relacyjne 1078 Złączanie danych z wielu tabel 1081 System wprowadzania zamówień 1082 16.11. Zaawansowane zagadnienia 1092 Transakcje 1092 Procedury składowane 1094 16.12. Typowe błędy, których należy unikać 1094
Sygnatura czytelni BWEAiI: XII N 132
Pliki multimedialne:
Status dostępności:
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 148505 N (1 egz.)
Strefa uwag:
Tytuł oryginału: Starting out with Java : from control structures through objects
Uwaga ogólna
Oznaczenie wydania na stronie tytułowej i okładce: wydanie VII dotyczy oryginału angielskiego (strona redakcyjna: Tytuł oryginału: Starting out with Java : from control structures through objects (7th Edition).
Tytuł oryginału: Starting out with Java : from control structures through objects.
Wydanie 7. odnosi się do oryginału.
Uwaga dotycząca bibliografii
Indeks.
Pozycja została dodana do koszyka. Jeśli nie wiesz, do czego służy koszyk, kliknij tutaj, aby poznać szczegóły.
Nie pokazuj tego więcej

Deklaracja dostępności