Programowanie obiektowe Andrzej Ziółkowski Plan pracy 1. 2. 3. 4. 5. 6. 7. 8. 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 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 Fortran Algol 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