Programowanie obiektowe


Informacje ogólne

Typ:obowiazkowy
Kierunek:Informatyka studia licencjackie
Semestr:3
Wymiar zajęć:30 godzin wykładu, 30 godzin laboratorium
Punkty ECTS:6

Wymogi wstępne

Wstęp do programowania, Języki programowania

Założenia i cele przedmiotu

Celem przedmiotu jest zapoznanie studentów z zasadami programowania obiektowego i zdarzeniowego na przykładzie języka Java.

Program

  1. Wprowadzenie pojęć podstawowych: klasa, obiekt, pole, metoda; pola i metody: statyczne, publiczne oraz prywatne w języku Java; inicjalizacja i usuwanie obiektu oraz mechanizm tzw. zbieracza śmieci; przegląd instrukcji sterujących języka Java i ich porównanie z instrukcjami sterującymi języka C
  2. Pakiety klas języka Java – ukrywanie implementacji: struktura pakietu; importowanie pakietów; ustalanie praw dostępu do składowych pakietu; budowa interfejsów i ich implementacja
  3. Dziedziczenie i polimorfizm: dziedziczenie – składnia i zachowanie praw dostępu do dziedziczonych pól i metod; od abstrakcji do konkretu: klasy abstrakcyjne i finalne; porównanie własności pól finalnych i statycznych; porównanie własności metod przeciążonych i polimorficznych; przykłady wywołań funkcji polimorficznych
  4. Przegląd klas implementujących typowe struktury danych: pojęcie statycznych i dynamicznych struktur danych; przegląd własności i udostępnianych operacji na typie Collection języka Java i typach pochodnych (List, Set, BitSet, Maps i HashMaps); klasy implementujące typy wyliczeniowe i iteratory; polimorficzne metody umożliwiające sortowanie elementów przechowywanych w kolekcjach
  5. Programowanie z wykorzystaniem wyjątków: przegląd predefiniowanych wyjątków w języku Java; zasady tworzenia nowych wyjątków; zgłaszanie i wyłapywanie sytuacji wyjątkowych
  6. Programowanie z wykorzystaniem wątków: pojęcie wątku, zasobów współdzielonych i sekcji krytycznej; przegląd metod współdzielenia zasobów w języku Java: blokowanie zasobów i problem zakleszczenia wątków oraz kolejki priorytetowe i problem uczciwości w dostępie do zasobów; przykłady wykorzystania wątków języka Java do implementacji klasycznych problemów dostępu do zasobów krytycznych
  7. Aplety i aplikacje graficzne: tworzenie apletów – przegląd możliwości oferowanych przez bibliotekę AWT: elementy graficzne i sposoby ich rozmieszczania w oknie, rodzaje zdarzeń związanych z oknami biblioteki AWT i sposoby ich wyłapywania; tworzenie aplikacji – przegląd możliwości oferowanych przez biblioteki Java Beans i Java Swing

Sposób zaliczenia

Laboratoria: kolokwium z treści laboratoriów i egzamin treści wykładu
Wykład: Egzamin pisemny z treści prezentowanych a wykładzie.

Umiejętności i kompetencje

Studenci nabędą wiedzę i umiejętności niezbędne do tworzenia programów komputerowych zaprojektowanych zgodnie z paradygmatem programowania obiektowego.

Literatura

  • B. Eckel - Thinking in Java, Prentice Hall, 2000.
  • Horstmann C. S., Cornell G., Core Java 2 - Podstawy. Helion, 2003.
  • Horstmann C. S., Cornell G., Core Java 2 - Techniki zaawansowane. Helion, 2005.
  • Campione M., Walrath K., Java Tutorial. Addison-Wesley, 2000.
  • Dokumentacja źródłowa języka Java oraz bibliotek, dostępna na stronie www.java.sun.com