Programowanie obiektowe

Podobne dokumenty
Modelowanie i Programowanie Obiektowe

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

Programowanie obiektowe W1 Wprowadzenie. Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Język programowania. Andrzej Bobyk

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Programowanie obiektowe - 1.

Informatyka II stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Programowanie obiektowe. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia 4. ROK/ SEMESTR STUDIÓW: II/4

Programowanie obiektowe 1 - opis przedmiotu

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20

Podstawy Programowania Obiektowego

Programowanie obiektowe

Języki Programowania Obiektowego

K_W04 K_W04 K_W04. Opis

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

KARTA KURSU (realizowanego w module specjalności)

KARTA PRZEDMIOTU. Programowanie wieloplatformowe, D1_1

PRZEWODNIK PO PRZEDMIOCIE

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

KARTA KURSU. Student zna podstawy analizy, projektowania i programowani obiektowego oraz podstawy języka C++.

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Specjalnościowy Obowiązkowy Polski Semestr 5

Programowanie Obiektowe i C++

Programowanie obiektowe

Programowanie I. Wprowadzenie. Proces programowania

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Technologie i usługi internetowe cz. 2

Programowanie 2. Język C++. Wykład 15.

Programowanie obiektowe Object-Oriented Programming. Automatyka i Robotyka II stopień ogólnoakademicki

Programowanie i projektowanie obiektowe

Język Java i technologie Web - opis przedmiotu

PRZEWODNIK PO PRZEDMIOCIE

Programowanie obiektowe. Wprowadzenie

KARTA KURSU. Programowanie obiektowe

Programowanie sieciowe Network programming PRZEWODNIK PO PRZEDMIOCIE

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Języki programowania II - opis przedmiotu

Historia modeli programowania

Wykład 1 Inżynieria Oprogramowania

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Podstawy Programowania

Wykład I. Wprowadzenie do baz danych

Ocenianie ciągłe (praca przy Formująca tablicy oraz przy komputerze) pisemne, końcowe zaliczenie pisemne

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

PRZEWODNIK PO PRZEDMIOCIE

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.

Dokument Detaliczny Projektu

Informatyka I stopień (I stopień / II stopień) ogólno akademicki (ogólno akademicki / praktyczny) niestacjonarne (stacjonarne / niestacjonarne)

Modelowanie Systemów informacyjnych (MSI)

Programowanie obiektowe

Wykład 0 Informacje Podstawowe

Programowanie Obiektowe i C++ Marcin Benke

E-2IZ1-03-s3. Informatyka I stopień (I stopień / II stopień) ogólno akademicki (ogólno akademicki / praktyczny)

Programowanie obiektowe

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

E5 potrafi zaprojektować i zaimplementować prosty model

Podstawy programowania. Programowanie obiektowe

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Dokumentacja aplikacji Szachy online

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Elektrotechnika I stopień (I stopień / II stopień) ogólno akademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie I C6

KARTA MODUŁU KSZTAŁCENIA

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2012/2013

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie II C16

Języki i paradygmaty programowania

E-1EZ1-03-s2. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Nazwa modułu kształcenia Programowanie 2 Nazwa jednostki prowadzącej moduł. Kod modułu

hierarchie klas i wielodziedziczenie

Relacyjne, a obiektowe bazy danych. Bazy rozproszone

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie II C10

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

KONCEPCJA WYKORZYSTANIA TECHNOLOGII APPLET- JAVA W TWORZENIU

Podstawy programowania III WYKŁAD 4

Podstawy Języka Java

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

Rok akademicki: 2012/2013 Kod: EAR s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

OPIS MODUŁU KSZTAŁCENIA (przedmiot lub grupa przedmiotów)

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Programowanie MorphX Ax

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/17

Podstawy modelowania programów Kod przedmiotu

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Analiza i projektowanie aplikacji Java

Historia i podstawowe koncepcje. Tomasz Borzyszkowski

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Transkrypt:

Programowanie obiektowe Wykład 1: Wprowadzenie do programowania obiektowego Dr hab. inż. Stanisław Deniziak, prof.pk, p.101, 410 sdeniziak@pk.edu.pl

Informacje organizacyjne Wykład 30h Zaliczenie: egzamin Laboratorium 30h Mgr inż. Sławomir Bąk Mgr inż. Anna Mroczek http://eclipse.elektron.pk.edu.pl/~sdeniziak/doku.php?id=d ydaktyka:informatyka:po Hasło: pobj2013 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 2

Literatura Bertrand Meyer, Programowanie zorientowane obiektowo, Helion, 2005. Bruce Eckel, Thinking in Java edycja polska, wydanie. 4, Helion, 2006. www.bruceeckel.com przykłady, wydania książki w j. ang. (wyd.3, również część edycji 4!) Cay S. Horstmann, Gary Cornell, Java 2. Podstawy, Helion, 2003. http://www.oracle.com/technetwork/java/index.html: Java Software Development Kit (J2SE, J2EE,J2ME), Dokumentacje The Java Tutorial. A practical guide for programmers 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 3

Paradygmaty programowania obiektowego Abstrakcja Enkapsulacja Dziedziczenie Polimorfizm 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 4

Programowanie obiektowe OOP(Object Oriented Programming) Programowanie Języki strukturalne np. C, Pascal Języki obiektowe np. C++, Java Asembler 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 5

Abstrakcja: programowanie obiektowe a programowanie strukturalne Program strukturalny Program obiektowy Struktury danych Algorytm 1 Algorytm n Dane 1 Metody 1 Dane n Metody n 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 6

Enkapsulacja (hermetyzacja, ochrona implementacji) Obiekt = dane + operacje pola metody Klasa = typ obiektu Operacja = interfejs + implementacja 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 7

Interfejs a implementacja Nazwa klasy: Interfejs: Żarówka włącz(), wyłącz, rozjaśnij(), ściemnij() Implementacja: jasność, czas, zasilanie, temperatura() 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 8

Ochrona implementacji Klasa Twórca klasy Inni użytkownicy klasy Interfejs 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 9

Wielokrotne wykorzystanie implementacji Składanie Wielokrotne wykorzystanie wcześniej napisanego kodu (np. funkcje, deklaracje struktur danych, moduły, klasy itp.) Powszechnie stosowane w programowaniu Dziedziczenie Tylko w programowaniu obiektowym Tworzenie nowych klas na bazie klas istniejących Klasy pochodne są kompatybilne w górę z klasami bazowymi 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 10

Dziedziczenie Kształt rysuj() usuń() przesuń() Klasa bazowa Koło rysuj() Kwadrat Trójkąt obróć() Klasy pochodne 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 11

Polimorfizm Edytor graficzny: rysowanie(kształt k) { rysuj (k) } rysowanie(koło) rysowanie(kwadrat) Koło.rysuj() Kwadrat.rysuj() = Kształt.rysuj() 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 12

Trochę historii Simula 67 - Ole-Johan Dahl i Kristen Nygaard z Norsk Regnesentral w Oslo Pojęcie klasy i obiektu SmallTalk - Alan Kay, Xerox Palo Alto Research Center dziedziczenie C++ - Bjarne Stroustrup Język wieloparadygmatowy Java James Gosling, Sun Microsystems Język czysto obiektowy 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 13

Technika obiektowa Analiza Badanie wymagań Klasyfikacja obiektów w świecie rzeczywistym (obiekty pojęciowe) Projektowanie Opracowanie rozwiązania spełniającego zadane wymagania Projektowanie obiektowe projektowanie obiektów programowych Wyznaczenie odpowiedzialności Określenie zasad współpracy pomiędzy obiektami 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 14

Przykład: Czat internetowy (1) Serwer Klienci 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 15

Funkcje serwera (2) Obsługa połączeń z aplikacjami klienckimi Zarządzanie użytkownikami Logowanie Rejestracja Hasła Baza danych zarejestrowanych użytkowników Baza danych stałych pokoi Obsługa komunikatów Wiadomości prywatne Wiadomości publiczne Informacje o statusie użytkowników Przetwarzanie poleceń Odebranie polecenia od aplikacji klienckiej Przetworzenie polecenia Wysłanie odpowiedzi 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 16

Funkcje aplikacji klienckiej (3) Obsługa użytkownika Użytkownicy stali (wymagana rejestracja i hasło) Użytkownicy tymczasowi (dowolna unikalna nazwa) Intrerfejs GUI Okno komunikatów (MessageWindow) Okno poleceń (CommandWindow) Okno z listą użytkowników (UsersWindow) Okno z listą pokoi (RoomWindow) Komunikacja z serwerem Wysyłanie komend do serwera Odbiór odpowiedzi Odbiór i przetwarzanie komend z serwera 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 17

Zalety programowania obiektowego Łatwiejsze tworzenie dużych programów Łatwiejsze programowanie zespołowe Ułatwia stosowanie techniki programowania przyrostowego Łatwiejsze wykorzystanie istniejącego kodu 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 18

Podsumowanie 1. Klasa a obiekt 2. Enkapsulacja, hermetyzacja, ukrywanie implementacji 3. Dziedziczenie 4. Polimorfizm 5. Abstrakcja 6. Najistotniejsze różnice programowania obiektowego i programowania strukturalnego/proceduralnego 7. Identyfikacja klas w problemie 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 19

Koniec 2/18/2013 S.Deniziak: Programowanie obiektowe - W1 20