Spis treści

  1. Rozdział 1 - Wstęp
    1. Dla kogo przeznaczony jest kurs?
    2. O kursie
      1. Przykłady, odpowiedzi do pytań i rozwiązania zadań
    3. O autorze
    4. Formatowanie użyte w kursie
    5. Dlaczego Java?
    6. Jak tworzy się własne programy?
    7. Instalacja Java i przygotowanie środowiska programistycznego
      1. Katalog z przykładami
      2. Edytor tekstu – Notepad++ i IntelliJ IDEA
      3. Instalacja Java
        1. Instalacja Java Development Kit
        2. Ustawienie lokalizacji Java w zmiennej PATH
        3. Sprawdzenie poprawności instalacji
    8. Pierwszy program
      1. Krok pierwszy – kod źródłowy – Witaj Świecie!
      2. Krok drugi – kompilacja kodu Java
      3. Krok trzeci – uruchamiamy nasz program
    9. Analiza programu Witaj Świecie!
      1. Pierwsza linia – definicja klasy Hello World
      2. Druga linia – definicja metody main
      3. Trzecia linia – wypisanie tekstu na ekran
    10. Biblioteka Standardowa Java
    11. Podsumowanie
      1. Podstawy
      2. Kompilacja i uruchamianie kodu Java
      3. Przykład utworzenia, kompilacji, i uruchomienia programu Java
      4. Język Java
    12. Pytania
    13. Zadania
      1. Wypisz imię
      2. Brak końcowego znaku }
      3. Zakładka do JavaDoc
  2. Rozdział 2 - Komentarze i formatowanie kodu
    1. Komentarze
      1. Rodzaje komentarzy
      2. Zagnieżdżanie komentarzy
      3. Komentarze w stringach
      4. Kiedy używać komentarzy?
    2. Formatowanie kodu i najlepsze praktyki
      1. Najlepsze praktyki i konwencje
        1. Jedna instrukcja na linię
        2. Stosowanie wcięć
        3. Nazwy-wielbłądy (czyli Camel Case)
        4. Nazwy klas zaczynamy wielką literą
        5. Nie trzymamy zakomentowanego kodu
        6. Nazwy obiektów oraz komentarze po angielsku
    3. Podsumowanie
      1. Komentarze
      2. Formatowanie kodu i najlepsze praktyki
    4. Pytania
    5. Zadania
      1. Dopisz komentarze
      2. Brak main
  3. Rozdział 3 - Zmienne
    1. Czym są zmienne?
      1. Definiowanie zmiennych
      2. Wypisywanie na ekran wartości zmiennych
      3. Przykład – liczenie pola i obwodu koła
    2. Reguły nazw w języku Java
      1. Nadawanie nazw
    3. Typy podstawowe
      1. Literały
      2. Typy całkowite i zmiennoprzecinkowe
      3. Typ boolean
      4. Typ char
    4. Używanie zmiennych
    5. Stałe
    6. Zadania z podstaw zmiennych
      1. Dodawanie liczb
      2. Obwód trójkąta
      3. Aktualna data
      4. Liczba miesięcy w roku
      5. Inicjały
    7. Operatory w programowaniu
      1. Operatory arytmetyczne
        1. Operatory dodawania, odejmowania i mnożenia
        2. Operatory dzielenia i reszty z dzielenia
        3. Rzutowanie
        4. Zmiana priorytetów operatorów za pomocą nawiasów
        5. Plus jako operator konkatenacji
      2. Operatory przypisania
        1. Pomocnicze operatory przypisania
      3. Operatory jednoargumentowe
    8. String i wczytywanie danych od użytkownika
      1. Typ String
      2. Wczytywanie danych od użytkownika
    9. Podsumowanie
      1. Zmienne
      2. Nazwy
      3. Typy
      4. Stałe
      5. Operatory
      6. Typ String i wczytywanie danych od użytkownika
    10. Pytania
    11. Zadania
      1. Obwód trójkąta z pobranych danych
      2. Pobrane słowa w odwrotnej kolejności
      3. Liczba znaków w słowie
      4. Wynik rzeczywisty
      5. Wielkie litery
      6. Pole koła o podanym promieniu
  4. Rozdział 4 - Instrukcje warunkowe
    1. Podstawy instrukcji warunkowych
      1. Składnia instrukcji warunkowych
      2. Instrukcje w instrukcjach warunkowych
      3. Formatowanie instrukcji warunkowych
    2. Operatory relacyjne
    3. Typ boolean
    4. Warunki instrukcji if
    5. Operatory warunkowe i operator logiczny !
      1. Operator logiczny !
    6. Tablica prawdy operatorów warunkowych
    7. Nawiasy i priorytety operatorów warunkowych
    8. Short-circuit evaluation
    9. Zagnieżdżanie instrukcji warunkowych
    10. Bloki kodu i zakresy zmiennych
      1. Bloki kodu w instrukcjach warunkowych
    11. Instrukcja switch
      1. Użycie break w instrukcji switch
    12. Trój-argumentowy operator logiczny
    13. Podsumowanie
      1. Instrukcje warunkowe if
      2. Operatory relacyjne i typ boolean
      3. Operatory warunkowe
      4. Bloki kodu i zakres zmiennych
      5. Instrukcja switch
      6. Trój-argumentowy operator logiczny
    14. Pytania
    15. Zadania
      1. Czy liczba podzielna przez trzy
      2. Czy można zbudować trójkąt
      3. Wypisz największą z dwóch liczb
      4. Wypisz największą z trzech liczb
      5. Zamień liczbę na nazwę miesiąca
      6. Sprawdź imię
      7. Czy pełnoletni
      8. Czy rok przestępny
  5. Rozdział 5 - Pętle
    1. Czym są pętle?
    2. Pętla while
      1. Przykład: wypisywanie ciągu liczb
      2. Przykład: wypisywanie gwiazdek
    3. Pętla do..while
      1. Przykład: dodawanie kolejnych liczb
    4. Pętle nieskończone
    5. Pętla for
      1. Instrukcje inicjalizujące i kroku
    6. Zakres zmiennych w pętlach
    7. Instrukcje break oraz continue
      1. Instrukcja break
      2. Instrukcja continue
    8. Ten sam kod z użyciem różnych pętli
      1. Wyświetlanie kwadratu podanej liczby
      2. Wypisanie kolejnych liczb parzystych
    9. Zagnieżdżanie pętli
      1. Użycie break i continue w pętlach zagnieżdżonych
    10. Typ String i metoda charAt oraz pętle
      1. Porównywanie znaków zwracanych przez charAt
    11. Podsumowanie
    12. Pytania
    13. Zadania
      1. While i liczby od 1 do 10
      2. Policz silnię
      3. Palindrom
      4. Wypisz największą liczbę z podanych
      5. Zagnieżdżone pętle
      6. Kalkulator
      7. Choinka
  6. Rozdział 6 - Tablice
    1. Czym są tablice?
    2. Definiowanie i używanie tablic
      1. Odnoszenie się do elementów tablicy
      2. Domyślne wartości w tablicach
      3. Sprawdzanie liczby elementów tablicy
    3. Użycie pętli z tablicami
    4. Tablice wielowymiarowe
      1. Inicjalizacja tablic wielowymiarowych
    5. Pętla for each
    6. Porównywanie tablic i zmiana rozmiaru tablic
      1. Zmiana rozmiaru tablicy
    7. Podsumowanie
    8. Pytania
    9. Zadania
      1. Co druga wartość tablicy
      2. Największa liczba w tablicy
      3. Słowa z tablicy wielkimi literami
      4. Odwrotności słów w tablicy
      5. Sortowanie liczb
      6. Silnia liczb w tablicy
      7. Porównaj tablice stringów
  7. Rozdział 7 - Metody
    1. Czym są metody?
      1. Do czego potrzebne są metody?
      2. Podsumowanie podstaw metod
      3. Pytania do podstaw metod
      4. Zadania do podstaw metod
        1. Metoda wypisująca Witajcie!
        2. Metoda odejmująca dwie liczby
    2. Zakres i wywoływanie metod, zmienne lokalne
      1. Zakres metod
      2. Wywoływanie metod
      3. Zmienne lokalne
      4. Czas życia zmiennych lokalnych
      5. Podsumowanie zakresu i wywoływania metod, zmiennych lokalnych
      6. Pytania do zakresu i wywoływania metod, zmiennych lokalnych
    3. Wartości zwracane przez metody
      1. Słowo kluczowe return
      2. Używanie wartości zwracanych przez metody
        1. Przypisanie wyniku metody do zmiennej
        2. Rezultat metody jako argument innej metody
        3. Metoda użyta w instrukcji warunkowej
        4. Nieużywanie wyniku metody
      3. Nieosiągalne ścieżki wykonania i ścieżki bez return
        1. Nieosiągalny kod
      4. Void, czyli niezwracanie wartości
      5. Podsumowanie do zwracania wartości
      6. Pytania do zwracania wartości
      7. Zadania do zwracania wartości
        1. Metoda podnosząca do sześcianu
        2. Metoda wypisująca gwiazdki
    4. Argumenty metod
      1. Modyfikacja argumentów metod
    5. Metody typu string
      1. Przypomnienie metod length i charAt oraz indeksów znaków
      2. Przykłady użycia metod typu String
        1. toLowerCase, toUpperCase
        2. endsWith, startsWith, contains
        3. equals, equalsIgnoreCase
      3. replace, substring, split
    6. Dokumentowanie metod
    7. Podsumowanie, pytania i zadania do argumentów metod i metod typu String
      1. Podsumowanie argumentów metod
      2. Podsumowanie metod typu String
      3. Podsumowanie dokumentowania metod
      4. Pytania
      5. Zadania
        1. Metoda zwracająca ostatni znak
        2. Metoda czyPalindrom
        3. Metoda sumująca liczby w tablicy
        4. Metoda zliczająca znak w stringu
    8. Przeładowywanie metod
      1. Typ zwracany przez metodę a przeładowywanie metod
      2. Nazwy parametrów a przeładowywanie metod
      3. Podsumowanie przeładowywania metod
      4. Pytania do przeładowywania metod
      5. Zadania do przeładowywania metod
        1. Metoda porównująca swoje argumenty
  8. Rozdział 8 - Testowanie kodu
    1. Wstęp do testowania
    2. Pierwsze testy
      1. Testy w osobnych metodach
      2. Informowanie tylko o błędnym działaniu
      3. Więcej przypadków testowych
      4. Duplikacja kodu
    3. Given..when..then
    4. Dlaczego testy jednostkowe są ważne?
    5. Testowalny kod
    6. Co charakteryzuje dobre testy jednostkowe?
    7. Przykłady testów jednostkowych
      1. Wartość bezwzględna
      2. Metoda sprawdzająca, czy tablica zawiera element
    8. Test Driven Development
    9. Podsumowanie
    10. Pytania
    11. Zadania
      1. Testy czyParzysta
      2. Testy sprawdzania znaku liczby
      3. Testy zwracania indeksu szukanego elementu
  9. Rozdział 9 - Klasy
    1. Czym są klasy i do czego służą?
      1. Przykład pierwszej klasy z polami
      2. Użycie pierwszej klasy
      3. Nazewnictwo klas
      4. Jak tworzyć nowe instancje (obiekty) klas?
      5. Metoda toString
      6. Podsumowanie
      7. Pytania
      8. Zadania
        1. Klasa Osoba
    2. Różnice między typami prymitywnymi i referencyjnymi
      1. Przechowywane wartości
      2. Tworzenie
    3. Modyfikatory dostępu
      1. Modyfikatory dostępu public oraz private
      2. Modyfikatory public oraz private – przykład – klasa Ksiazka
        1. Użycie pól i metod publicznych klasy Ksiazka
        2. Próba użycia pola i metody private klasy Ksiazka spoza tej klasy
        3. Dostęp do prywatnych pól oraz metod w klasie Ksiazka
      3. Kiedy stosować modyfikatory dostępu
    4. Podsumowanie i pytania – typy prymitywne i referencyjne, modyfikatory dostępu
      1. Typy prymitywne i referencyjne
      2. Typy prymitywne i referencyjne – pytania
      3. Modyfikatory dostępu
      4. Modyfikatory dostępu – pytania
    5. Pola klas
      1. Pola klas a zmienne definiowane w metodach
        1. Zapamiętywanie wartości
        2. Inicjalizacja i domyślne wartości typów prymitywnych
        3. Wartość null
        4. Brak wymagania definicji przed użyciem
      2. Gettery i settery oraz enkapsulacja
        1. this
      3. Konwencje dotyczące pisania setterów i getterów
      4. Podsumowanie
        1. Pola klas
        2. Wartości domyślne i null
        3. Gettery i settery oraz this
        4. Konwencje dotyczące pisania setterów i getterów
      5. Pytania
      6. Zadania
        1. Klasa Punkt
    6. Konstruktory
      1. Domyślny konstruktor
      2. Przeładowanie konstruktora
      3. Inicjalizacja pól finalnych w konstruktorach
      4. Prywatne konstruktory
      5. Podsumowanie
      6. Pytania
      7. Zadania
        1. Klasa Adres
        2. Klasa Osoba z konstruktorem
    7. Equals i porównywanie obiektów
      1. Porównywanie wartości zmiennych
      2. Porównywanie obiektów za pomocą equals
        1. Sygnatura metody equals
        2. Typ Object i krótko o dziedziczeniu
        3. Implementacja metody equals w klasie Osoba
        4. Kontrakt equals
        5. Equals – przykład z tablicą
        6. Krok po kroku – pisanie metody equals
      3. Podsumowanie
      4. Pytania
      5. Zadania
        1. Klasa Punkt z equals
        2. Klasa Figura z equals
    8. Referencje do obiektów
      1. Przesyłanie i modyfikowanie obiektów w metodach
      2. Współdzielenie obiektów
        1. Osobne obiekty typu Punkt
        2. Tworzenie kopii obiektów
        3. Kiedy współdzielić obiekty?
      3. Stałe referencje
      4. Obiekty niemutowalne (immutable objects)
        1. Zalety i wady obiektów niemutowalnych
        2. Jak zapewnić niemutowalność obiektów
        3. Niemutowalny typ String
      5. Pamięć programu – stos i sterta
      6. Czas życia obiektów utworzonych w metodach
      7. Podsumowanie różnic typów prymitywnych i referencyjnych
      8. Podsumowanie
      9. Pytania
      10. Zadania
        1. Immutowalna Ksiazka i Biblioteka
    9. Metody i pola statyczne
      1. Pola statyczne
      2. Metody statyczne
      3. Dlaczego metoda main jest statyczna?
      4. Kiedy stosować pola i metody statyczne?
      5. Podsumowanie
      6. Zadania
        1. Klasa użyteczna Obliczenia
    10. Pakiety i importowanie klas
      1. Pakiety klas
        1. Konwencja nazewnicza pakietów klas
      2. Importowanie klas
        1. Importy statyczne – static import
        2. Lokalizacja klas – classpath
        3. Kiedy nie trzeba stosować instrukcji import
      3. Dostęp domyślny (default access) i klasy niepubliczne
        1. Dostęp domyślny
        2. Kiedy stosować dostęp domyślny?
        3. Modyfikator dostępu protected
        4. Niepubliczne klasy
      4. Podsumowanie
        1. Pakiety klas
        2. Importowanie klas
        3. Dostęp domyślny
      5. Pytania
  10. Rozdział 10 - Dziedziczenie i polimorfizm
    1. Czym jest dziedziczenie?
      1. Pierwszy przykład dziedziczenia
    2. Czym jest polimorfizm?
      1. Polimorfizm w akcji
      2. Przykład method overriding
    3. Zagadnienia związane z dziedziczeniem
    4. Limit rozszerzanych klas
    5. Dziedziczenie pól i metod
    6. Konstruktory i tworzenie obiektów klas pochodnych
      1. Powtórka z konstruktorów
      2. Konstruktory klas bazowych i kolejność tworzenia obiektów
      3. Wywoływanie konstruktora klasy bazowej i słowo kluczowe super
      4. Prywatne konstruktory a dziedziczenie
    7. Modyfikator protected i porównanie modyfikatorów
  11. Rozdział 11 - Wyjątki
    1. Czym są wyjątki?
      1. Stack trace
    2. Przykład obsługi sytuacji wyjątkowej
    3. Korzystanie z try..catch..finally
      1. Zakres zmiennych definiowanych w bloku try
      2. Metoda getInt i obsługa wyjątków
    4. Definiowanie i rzucanie wyjątków
      1. Definiowanie własnych wyjątków
      2. Przerywanie wykonania bloku kodu przez wyjątki
      3. Rzucanie wyjątków i nieosiągalny kod
      4. Rzucanie wyjątków a wartość zwracana z metody
      5. Rzucanie wyjątków w try, catch, i finally
      6. Ponowne rzucanie wyjątku
      7. Treść wyjątku, stack trace i inne pola i metody
    5. Wyjątki Checked & Unchecked
      1. Jak rozpoznać wyjątki Checked i Unchecked?
      2. Dlaczego istnieją dwa rodzaje wyjątków?
      3. Sprawdzanie wyjątków rzucanych przez metodę
      4. Jak sprawdzić rodzaj wyjątku
      5. Błędy kompilacji podczas braku obsługi wyjątków Checked
      6. Błąd Error
    6. Łapanie wyjątków
      1. Łapanie wyjątków za pomocą klasy bazowej
      2. Łapanie kilku wyjątków za pomocą znaku |
      3. Kolejność łapania wyjątków ma znaczenie
    7. Pomijanie łapania wyjątków
      1. Silent catch
      2. Pomijanie try..catch w metodzie main
    8. Try with resources
    9. Wady i zalety wyjątków
      1. Dlaczego używać mechanizmu wyjątków?
      2. Wady wyjątków
    10. Podsumowanie
      1. Podstawy wyjątków
      2. Łapanie wyjątków
      3. Rodzaje wyjątków
      4. Definiowanie i rzucanie wyjątków
      5. Sprawdzanie rzucanych wyjątków i ich rodzaju
    11. Pytania
    12. Zadania
      1. Silnia z obsługą ujemnych liczb
      2. Klasa Adres z walidacją danych
      3. Liczba znaków w pliku
      4. Implementacja stosu

Odpowiedzi do pytań i rozwiązania do zadań

Komentarze (2):

  1. Właśnie skończyłam czytać ostatni rozdział. Świetny kurs dla początkujących, napisany w sposób ciekawy, przemyślany, przejrzysty i zrozumiały. Bardzo dziękuję że go napisałeś i udostępniłeś całkowicie za darmo. Ogromna praca godna podziwu! Przeglądałam strony innych kursów , ale ten zdecydowanie według mojej subiektywnej opinii jest najlepszy. Jeszcze raz dzięki 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Nie musisz podawać swojego imienia, e-mailu, ani strony www, aby opublikować komentarz. Komentarze muszą zostać zatwierdzone, aby były widoczne na stronie.