Programowanie obiektowe Andrzej Ziółkowski
Plan pracy Wprowadzenie, pojęcia podstawowe, obiektowe języki programowania Klasy, obiekty, zmienne, metody Modyfikatory, pakiety, interfejsy Programowanie sterowane zdarzeniami Aplety i servlety programowanie aplikacji internetowych Aplikacje mobilne, programowanie telefonów i drobnych urządzeń. Uruchamianie programów, błędy, testowanie, ślad, obsługa wyjątków Programowanie wielowątkowe, programowanie rozproszone
Ćwiczenia Projekt Programowanie w języku Java Środowisko programistyczne NetBeans IDE Praca indywidualna i w grupach Projekt Program w języku Java
Lektury Marek Wierzbicki: Java, programowanie obiektowe. Helion 2006 Bruce Eckel: Thinking in Java. Helion 2006. http://java.sun.com/docs/books/tutorial/
Zaliczenie i oceny Do uzyskania 100 punktów 70 – ćwiczenia 30 – projekt Oceny: 0 – 49 : brak zaliczenia 50 – 59 : 3.0 dostateczna 60 – 69 : 3.5 dostateczna plus 70 – 79 : 4.0 dobra 80 – 89 : 4.5 dobra plus 90 – 100 : 5.0 bardzo dobra
Języki programowania Assembler Prolog Fortran Lisp Algol Perl, PHP Cobol PL-1 C Simula, Smalltalk C++ Java, C# Prolog Lisp Perl, PHP JavaScript
Algol – algorithmic language John Backus, Peter Naur – specyfikacja przy współpracy międzynarodowej (Algol 60) Uniwersalny język algorytmiczny oparty na ściśle zdefiniowanej gramatyce (notacja BNF) Instrukcje blokowe (begin end) Tablice dynamiczne (rozmiar definiowane w trakcji obliczeń a nie podczas translacji) Rekurencja – wywoływanie procedur przez siebie Przekazywanie parametrów do procedur przez wartość
Język C Opracowany dla własnych potrzeb do realizacji jądra systemu operacyjnego Unix 1969-73 w Laboratoriach Bell’a W 1978 Brian Kernighan i Dennis Ritchie opublikowali jego dokumentację Zwarty zapis np. { } zamiast begin end, i++ zamiast i = i + 1 Standardowa biblioteka funkcji (funkcje matematyczne, operacje we-wy, współpraca z systemem operacyjnym) Użycie zmiennych wskaźnikowych
Simula Rozszerzenie Algolu Opracowany w 1967 w Oslo jako uniwersalny język dla potrzeb symulacji Wprowadzono koncepcje klasy i obiektu Obiekty należące do tej samej klasy są opisywane przez te same parametry i funkcje Obiekty mogą być tworzone i usuwane
Smalltalk Powstał w latach 70-tych w firmie Xerox Pierwszy czysto obiektowy język programowania Wszystkie dane (nawet stałe) są obiektami Koncepcja maszyny wirtualnej – implementacja na różnych platformach Garbage collection – odzyskiwanie nieużywanej pamięci Zgrabny język o dużych możliwościach definiowania nowych funkcjonalności
C++ Powstał w latach 80-tych, Bjarne Stroustrup Rozszerzenie obiektowe języka C Klasy, dziedziczenie Konstruktory i destruktory – metody wywoływane podczas tworzenia i usuwania obiektów Bezpośrednie zarządzanie dostępną pamięcią. Operatory new i delete do alokacji pamięci dla danych, struktur i klas Przestrzenie nazw … Bogaty ale dość złożony język, którym łatwo można zrobić wszystko włącznie z błędami.
Java Opracowany w Sun Microsystems w latach 1991-94, James Gosling Podstawowe koncepcje przejęte z języka Smalltalk, składnia wzorowana na C++ ale starano się usunąć te elementy, które były przyczyną błędów programistycznych w C++ Kompilowany do kodu bajtowego – implementacja na wielu platformach Garbage collection Dziedziczenie tylko od jednej klasy Bogate biblioteki klas Nacisk na zastosowania sieciowe i programowanie rozproszone Uruchamianie programów – NetBeans, JBuilder
C# - C Sharp Odpowiedź Microsoftu na język Java Powstał w 2000 w zespole kierowanym przez Andersa Hejlsberga Kod kompilowany do języka CIL, wymaga środowiska uruchomieniowego .NET lub Mono DotGNU Garbage collection – odzyskiwanie pamięci Dziedziczenie tylko z jednej klasy Możliwość dynamicznego tworzenia kodu w trakcie działania programu Bogate biblioteki klas .NET firmy Microsoft Silne wsparcie przy uruchamianiu programów w Visual Studio