Programowanie obiektowe

Liczba godzin wykładu: 30 ćwiczeń: laboratoriów: 30

Wymagania przedmiotowe

Podstawy programowania

Sylabus

I. Programowanie obiektowe w języku Java

1) Wprowadzenie do programowanie obiektowego oraz języka Java: - programowanie w podejściu proceduralnym, a programowanie w podejściu obiektowym, - klasa i obiekt w paradygmacie programowania obiektowego (tożsamość, stan, zachowanie, hermetyzacja,) - wprowadzenie do Javy (zarządzanie pamięcią, uruchamianie programów), - anatomia języka Java (zmienne, typy, instrukcje).

2) Klasa, a obiekt: - klasa i obiekt w języku Java (klasa, składowe klasy, definicja klasy, klasa i instancja klasy), - metody i ich wywołanie, - metoda finalize - konstruktor, - czas życia obiektu, - ukrywanie implementacji (modyfikatory dostępu, dostęp przyjazny), - pakiety.

3) Dziedziczenie, polimorfizm, klasa abstrakcyjna, interfejsy: - dziedziczenie i hierarchia klas, - widoczność składowych podczas dziedziczenia, - polimorfizm, - klasa abstrakcyjna, - interfejsy, - słowo kluczowe final, - klasy wewnętrzne.

4) Związki pomiędzy obiektami oraz ich realizacja w języku Java: - związki pomiędzy obiektami, - przesyłanie komunikatów - specjalizacja / generalizacja (właściwości, jak rozpoznać związek specjalizacja / generalizacja), - asocjacja (asocjacja, a powiązanie; liczność asocjacji, realizacja asocjacji binarnej, realizacja asocjacji 1-n, realizacja asocjacji n-n) - agregacja.

5) Przechowywanie obiektów: - tablice, - kolekcje, - iteratory.

6) Wybrane zagadnienia implementacyjne języka Java: - obsługa wyjątków, - system wejścia wyjścia (strumienie, klasa File) - serializacja obiektów, - zarządzanie typami (RTTI).

7) Zastosowania języka Java: - budowa interfejsu okienkowego (Swing), - obsługa zdarzeń, - aplety (budowa, pliki JAR), - środowisko J2EE.

II. Efektywne programowanie w językach obiektowych

8) Analiza i projektowanie obiektowe - cykl życia oprogramowania oraz miejsce w tym cyklu na analizę i projektowanie obiektowe, - zunifikowany język do modelowania obiektowego UML (czym jest UML, diagram klas, diagramy interakcji), - analiza obiektowa (identyfikacja obiektów, atrybutów i związków pomiędzy obiektami), - projektowanie obiektowe (identyfikacja metod, czym są wzorce projektowe).

III. Środowisko .NET oraz programowanie obiektowe w języku C#

9) Środowisko .NET - środowisko uruchomieniowe .NET Framework (WinForms, ASP.NET, klasy bazowe, CLR) - wspólne środowisko uruchomieniowe (język pośredni MSIL, wspólny system typów CTS, metadane zarządzanie pamięcią, obsługa wersji, pojęcie złożenia) - współpraca pomiędzy językami .NET (VB, C#, MC++), - kod zarządzany i niezarządzany w MC++

10) Programowanie obiektowe w języku C# - przestrzenie nazw, - typy wartości i typy referencyjne, - tablice, - przekazywanie parametrów do funkcji (metod), - klasy, o stale, pola, metody, metody generyczne, o konstruktory, finalizatory, o dziedziczenie, o widoczność składowych klas, - właściwości, - mechanizm obsługi zdarzeń, - przeładowywanie operatorów, - interfejsy.

IV. Programowanie obiektowe w języku C++

11) Podstawy języka C++: - wprowadzenie do C++ (C++ a Java i C#; zarządzanie pamięcią, uruchamianie programów), - anatomia języka C++ (zmienne, typy, instrukcje), - klasa i obiekt w języku C++ (klasa, składowe klasy, widoczność składowych, definicja klasy, klasa i instancja klasy), - metody i ich wywołanie, - konstruktor, destruktor, - czas życia obiektu.

12) Dziedziczenie, polimorfizm, klasa abstrakcyjna, wielokrotne wykorzystanie kodu: - konstruktor i destruktor w klasie pochodnej, - wielokrotne dziedziczenie, - polimorfizm (metody wirtualne, wczesne i późne wiązanie, wirtualne destruktory), - klasa abstrakcyjna. - funkcje i klasy zaprzyjaźnione, - przeładowanie operatorów, - kopiowanie obiektów, konstruktor kopiujący, - korzystanie z szablonów klas,

Cel przedmiotu

Celem przedmiotu jest przedstawienie podstawowych pojęć związanych z programowaniem obiektowym oraz ich realizacją w wybranych językach programowania. Podstawowe pojęcia programowania obiektowego wprowadzane są w oparciu o język Java, różnice w innych językach ilustrowane są na przykładzie C# oraz C++. Na wykładzie przedstawione jest znaczenie dla programowania obiektowego analizy i projektowania obiektowego oraz języka UML. Wykład jest w pełni skorelowany z ćwiczeniami laboratoryjnymi tzn. zagadnienia omawiane na wykładzie są pogłębiane na laboratoriach poprzez analizę przez studentów przykładowych programów ilustrujących omawiane zagadnienia. Praca studentów na laboratoriach polega ponadto na pisaniu małych programów do każdego z zagadnień omawianych na wykładzie. Studenci są również zobowiązani do zrealizowanie indywidualnie projektów programistycznych w 2 językach programowania.

Literatura

Bruce Eckel, Thinking in Java, Helion, 2001 Cay S. Horstmann, G. Cornell, Core Java 2, Podstawy, Helion, 2003 Jerzy Grębosz, Symfonia C++, Oficyna Kallimach, 1999 Jerzy Grębosz, Pasja C++, Oficyna Kallimach, 1999 Craig Larman, Applying UML and Patterns, Prentice Hall, 2002

Nazwa przedmiotu w języku angielskim

Wymagania przedmiotowe (w j. angielskim)

Sylabus (w j. angielskim)

Cel przedmiotu (w j. angielskim)


KategoriaPrzedmiot

Sylabus: Programowanie obiektowe (ostatnio edytowane 2011-05-24 10:12:57 przez localhost)