Programowanie w środowiskach RAD QtCreator, Qt i C++
|
|
- Kornelia Lewicka
- 8 lat temu
- Przeglądów:
Transkrypt
1 Programowanie w środowiskach RAD QtCreator, Qt i C++ Roman Simiński roman.siminski@us.edu.pl Wprowadzenie do programowania w C++ z wykorzystaniem biblioteki Qt Sygnały i sloty
2 Sygnały i sloty motywacja Programowanie sterowane zdarzeniami wymaga określenia powiązania pomiędzy elementem generującym zdarzenie a elementem to zdarzenie obsługującym. W obrębie pojedynczej aplikacji GUI polega to zwykle na powiązaniu informacji o zdarzeniu związanym z elementem interfejsu, a podprogramem realizującym obsługę tego zdarzenia. W różnych środowiskach i bibliotekach GUI stosuje się różne metody realizacji takich powiązań. Najpopularniejsze jest przypisywanie podprogramów do dedykowanych handler'ów obsługi zdarzeń, co mniej lub bardzie bezpośrednio stanowi realizację mechanizmu wywołań zwrotnych (ang. call back). W Qt zastosowano mechanizm dynamicznego wiązania sygnałów (ang. signals) generowanych przez nadawcę z podprogramami obsługi, zwanymi slotami (ang. slots). Sloty i sygnały stanowią niestandardowe rozszerzenie języka C++ w Qt, są obsługiwane przez MOC. 2
3 Sygnały i sloty koncepcja Sloty i sygnały stanowią podstawę działania GUI, jednak ich zastosowanie nie ogranicza się tylko do zadań związanych z interfejsem. Sygnały mogą być emitowane przez elementy interfejsu (obiekty Qt), każdy element może emitować wiele sygnałów o różnych nazwach. 3
4 Sygnały i sloty koncepcja Każdy sygnał ma swoją nazwę, nazwy sygnałów mogą się powtarzać w różnych elementach. Przykładowy sygnał dla klasy QPushButton: clicked clicked clicked Sygnał emitowany przez element interfejsu 4
5 Sygnały i sloty koncepcja Sygnały wyemitowane przez elementy interfejsu powinny dotrzeć do odpowiednich podprogramów obsługi. Aby tak się stało, należy powiązać sygnały z podprogramami obsługi. clicked Void?calculate() } clicked void?clear() } Sygnał emitowany przez element interfejsu Podprogram obsługi 5
6 Sygnały i sloty koncepcja Powiązanie sygnał-podprogram obsługi realizuje funkcja connect. Aby takie powiązanie zadziałało, podprogram obsługi musi slotem specjalnie zdefiniowaną funkcją składową pewnej klasy. clicked connect void?calculate() } clicked connect void?clear() } Sygnał emitowany przez element interfejsu Podprogram obsługi 6
7 Sygnały i sloty koncepcja Sloty i sygnały są zgodne z koncepcją programowania obiektowego. Sygnał jest emitowany przez pewien obiekt Qt najczęściej jest to obiekt klasy interfejsowej, np. klasy QPushButton. Slot jest funkcją składową pewnego obiektu Qt często klasy interfejsowej, np. klasy reprezentującej okno, ale również klasy niezwiązanej z GUI. Obiekty klasy QPushButton class FuelWin : public QDialog Q_OBJECT private slots: void calculate(); void clear(); }; 7
8 Sygnały i sloty elementy Nadawca sygnału obiekt klasy Qt, emituje sygnał o określonej nazwie. Odbiorca sygnału obiekt klasy Qt, odbiera sygnał poprzez aktywowanie odpowiedniego slotu. Powiązanie para sygnał-slot, kojarząca sygnał nadawcy z odbiorcą. Nadawca Sygnał Emisja Powiązanie Nadawca Sygnał Odbiorca Slot Wywołanie slotu Slot Odbiorca 8
9 Czym jest slot? Jest funkcją składową pewnej klasy, zwykle jej rezultatem jest void. Jest implementowany i może być wywoływany jak zwykła funkcja składowa. Jest deklarowany w odmienny sposób w sekcji slots klasy: class JakasKlasa : public QObject Q_OBJECT public slots: void publicznyslot(); Mechanizm slotów i sygnałów działa dla obiektów klas pochodnych względem QObject protected slots: void zabezpieczonyslot(); private slots: void prywatnyslot(); }; 9
10 Dlaczego używamy slotów? Slot jest normalną funkcją C++, i może być wywoływany jak każda inna funkcja. Slot tym różni się od zwykłej funkcji, że może być wiązany z sygnałem (sygnałami), a wywołanie slota jest wynikiem emisji sygnału (sygnałów). Aby mechanizm slotów i sygnałów działał, konieczne jest wykorzystanie klasy bazowej QObject lub jej pochodnej. Program qmake aktywuje moc i realizuje odpowiednie przetworzenie slotów i sygnałów do postaci standardowych konstrukcji C++. 10
11 Czym jest sygnał? Sygnał jest komunikatem reprezentowanym w definicji klasy jak deklaracja funkcji o rezultacie void. Sygnał ma tylko deklarację, programista nie definiuje sygnału. Programista pisze nagłówek funkcji-sygnału nazwa sygnału oraz listę parametrów sygnału. Programista nie pisze ciała funkcji-sygnału ciało jest generowane automatycznie przez moc. Sygnały definiuje się w sekcji signals: class JakasKlasa : public QObject Q_OBJECT signals: void sygnalbezparametrow(); void sygnalzparametrami( int p ); }; Mechanizm slotów i sygnałów działa dla obiektów klas pochodnych względem QObject 11
12 Emisja sygnałów Emisja sygnału realizowana jest przez słowo kluczowe emit, stanowiące rozszerzenie Qt obsługiwane przez moc. Nadawca emitujący sygnał zazwyczaj nie wie, kto jest jego odbiorą. Emisja sygnału jest pewnego rodzaju rozgłoszeniem (ang. broadcast) informacji o zaistniałym zdarzeniu. Emisja sygnału ma konsekwencje powoduje uaktywnienie slota, o ile jakiś został do sygnału przywiązany. } emit clicked(); } emit clicked(); 12
13 Powiązanie sygnał-slot Powiązanie sygnał-slot realizowane poprzez wywołanie funkcji connect. Ta funkcja zdefiniowana jest w klasie QObject. Dla elementów GUI projektowanych w systemie QtDesigner, powiązania zapisywane są w odpowiednim pliku opisu unterfejsu *.ui. Powiązania mogą być ustanawiane i zrywane dynamicznie w czasie działania programu. QObject::connect( nadawca, SIGNAL( sygnatura ), odbiorca, SLOT( sygnatura ) ); Ponieważ syntaktycznie sygnały i sloty deklarowane są jak funkcje, ich sygnatury mają postać: nazwasygnalulubslotu( <lista argumentow> ) 13
14 Powiązanie sygnał-slot connect( ui->pushbuttoncalculate, SIGNAL( clicked() ), this, SLOT( calculate() ) ); connect( ui->pushbuttonclear, SIGNAL( clicked() ), this, SLOT( clear() ) ); class FuelWin : public QDialog Q_OBJECT private slots: void calculate(); void clear(); }; clicked() connect Sloty void FuelWin::calculate() } clicked() connect void FuelWin::clear() } ui->pushbuttoncalculate ui->pushbuttonclear Sygnały 14
15 Powiązanie sygnał-slot, parametry bool QObject::connect ( ); senderqobjectptr, SIGNAL( signalname(argumentlist)), receiverqobjectpointer, SLOT(slotName(argumentList)) OptionalConnectionType Powiązanie sygnał-slot mogą zawierać parametry: QLabel *label = new QLabel; QScrollBar *scrollbar = new QScrollBar; QObject::connect( scrollbar, SIGNAL( valuechanged( int ) ), label, SLOT( setnum( int ) ) ); Parametry mogą tylko zawierać typy argumentów, nie mogą zawierać nazw: QLabel *label = new QLabel; QScrollBar *scrollbar = new QScrollBar; Błędny zapis QObject::connect( scrollbar, SIGNAL( valuechanged( int n ) ), label, SLOT( setnum( int n ) ) ); 15
16 Powiązanie sygnał-slot, parametry Listy parametrów sygnału i slotu powinny sobie odpowiadać liczbą i typami. Dozwolone jest, gdy sygnał ma więcej parametrów, są one przy aktywowaniu slotu ignorowane. Sytuacja odwrotna jest niedozwolona jak mówi dokumentacja: Qt can ignore arguments, but not create values from nothing. Signals rangechanged(int,int) rangechanged(int,int) rangechanged(int,int) valuechanged(int) valuechanged(int) valuechanged(int) textchanged(qstring) clicked() clicked() Slots setrange(int,int) setvalue(int) updatedialog() setrange(int,int) setvalue(int) updatedialog() setvalue(int) setvalue(int) updatedialog() 16
17 Rozłączanie powiązania funkcja disconnect bool QObject::disconnect ( ); senderqobjectptr, SIGNAL( signalname(argumentlist)), receiverqobjectpointer, SLOT(slotName(argumentList)) OptionalConnectionType Szczególne przypadki: Odłączenie odłączenie powiązań od wszystkich sygnałów: disconnect( senderqobjectptr, 0, 0, 0 ); Odłączenie odłączenie powiązań od pewnego sygnału: disconnect( senderqobjectptr, SIGNAL( mysignal() ), 0, 0); Odłączenie konkretnego odbiorcy od nadawcy sygnału: Disconnect( senderqobjectptr, 0, receiverqobjectpointer, 0); 17
18 Przykład wykorzystania standardowych sygnałów i slotów Wykorzystanie standardowych sygnałów i slotów do powiązania elementu QSlider, QSpinBox jako elementów sterujących przeźroczystością okna. QSpinBox *spinbox QSlider *horizontalslider 18
19 Przykład wykorzystania standardowych sygnałów i slotów Zmiana wartości w obiekcie QSpinBox ma spowodować zmianę pozycji QSlider, zmiana pozycji obiektu QSlider ma spowodować zmianę wartości QSpinBox. connect ustaw wartość zmiana wartości connect zmiana wartości zmiana przeźroczystości ustaw wartość 19
20 Przykład wykorzystania standardowych sygnałów i slotów Zmiana wartości w obiekcie QSpinBox lub pozycji QSlider ma spowodować zmianę przeźroczystości okna (funkcja setwindowopacity). connect ustaw wartość zmiana wartości connect zmiana wartości zmiana przeźroczystości ustaw wartość connect 20
21 Przykład wykorzystania standardowych sygnałów i slotów Zmiana wartości w obiekcie QSpinBox lub pozycji QSlider ma spowodować zmianę przeźroczystości okna (funkcja setwindowopacity). connect setvalue( int ) valuechanged( int ) connect valuechanged( int ) setwindowopacity( qreal ) setvalue( int )? connect? 21
22 Przykład wykorzystania standardowych sygnałów i slotów Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) ui->setupui(this); // Powiazanie: zmiana pozycji suwaka zmiana wartosci spinbox'a connect( ui->horizontalslider, SIGNAL( valuechanged( int ) ), ui->spinbox, SLOT( setvalue( int ) ) ); // Powiazanie: zmiana wartosci spinbox'a zmiana pozycji suwaka connect( ui->spinbox, SIGNAL( valuechanged( int ) ), ui->horizontalslider, SLOT( setvalue( int ) ) ); } //??? Powiazanie: zmiana wartosci spinbox'a zmiana przezroczystosci connect( ui->spinbox, SIGNAL( valuechanged( int ) ), this, SLOT( setwindowopacity( qreal ) ) ); Niezgodność typów 22
23 Przykład wykorzystania standardowych sygnałów i slotów class Dialog : public QDialog Q_OBJECT public: explicit Dialog( QWidget *parent = 0 ); ~Dialog(); public slots: void settransparency( int val ); private: Ui::Dialog *ui; }; void Dialog::setTransparency( int val ) setwindowopacity( ( qreal )val / 100 ); } 23
24 Przykład wykorzystania standardowych sygnałów i slotów Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) ui->setupui(this); // Powiazanie: zmiana pozycji suwaka zmiana wartosci spinbox'a connect( ui->horizontalslider, SIGNAL( valuechanged( int ) ), ui->spinbox, SLOT( setvalue( int ) ) ); // Powiazanie: zmiana wartosci spinbox'a zmiana pozycji suwaka connect( ui->spinbox, SIGNAL( valuechanged( int ) ), ui->horizontalslider, SLOT( setvalue( int ) ) ); } // Powiazanie: zmiana wartosci spinbox'a zmiana przezroczystosci connect( ui->spinbox, SIGNAL( valuechanged( int ) ), this, SLOT( settransparency( int ) ) ); 24
25 Dziękuję za uwagę Pytania? Polemiki? Teraz, albo:
Programowanie w środowiskach RAD Qt i C++
Programowanie w środowiskach RAD Qt i C++ Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wprowadzenie do programowania w języku C++ z wykorzystaniem biblioteki Qt Qt i QtCreator Aktualnie
Qt - dialogi. Bogdan Kreczmer. ZPCiR ICT PWR pokój 307 budynek C3
Qt - dialogi Bogdan Kreczmer ZPCiR ICT PWR pokój 307 budynek C3 kreczmer@ict.pwr.wroc.pl Copyright c 2003 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Qt sygnały i designer
Qt sygnały i designer Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2015 Bogdan
Qt - podstawowe cechy
Qt - podstawowe cechy Bogdan Kreczmer ZPCiR ICT PWR pokój 307 budynek C3 kreczmer@ict.pwr.wroc.pl Copyright c 2003 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania
Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt
Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt 1. Wprowadzenie Wymagania wstępne: wykonanie ćwiczeń Adresacja IP oraz Implementacja aplikacji sieciowych z wykorzystaniem interfejsu gniazd
Signals + Threads: Qt vs. Boost
Signals + Threads: Qt vs. Boost Adam Bujalski 2014-04-01 Adam Bujalski Signals + Threads: Qt vs. Boost 2014-04-01 1 / 22 Spis Treści 1 2 Wątki 3 Qt::QueuedConnection w boost Adam Bujalski Signals + Threads:
Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4
Wykład 4 p. 1/1 Oprogramowanie i wykorzystanie stacji roboczych Wykład 4 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Obsługa sieci Wykład
Podstawy programowania w Qt4
Podstawy programowania w Qt4 Rafał Rawicki 21 kwietnia 2007 Co to jest Qt? Zestaw bibliotek dla języka C++ oraz narzędzia roszerzające jego możliwości Ponad 400 klas Introspekcja oraz mechanizm sygnałów
Qt sygnały i sloty. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska
Qt sygnały i sloty Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera
Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Praca z aplikacją designer
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2014 Bogdan Kreczmer Niniejszy dokument
Projektowanie obiektowe. Roman Simiński Polimorfizm
Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Polimorfizm Koncepcja polimorfizmu Słowo polimorfizm pochodzi od dwóch greckich słów: poly czyli wiele, morphos czyli
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne
Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
Dziedziczenie jednobazowe, poliformizm
Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Mechanizm sygnałów i slotów. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4. Sygnały i sloty - definicja klasy
Mechanizm sygnałów i slotów Oprogramowanie i wykorzystanie stacji roboczych Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Mechanizm sygnałów
Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.
Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.
Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.
UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami
Wprowadzenie do tworzenia zaawansowanych interfejsów graficznych: QGraphics View Framework vs. QML. Jakub Bogacz. Patryk Górniak
Wprowadzenie do tworzenia zaawansowanych interfejsów graficznych: QGraphics View Framework vs. QML Jakub Bogacz Software Engineer Tieto, Jakub.Bogacz@tieto.com Patryk Górniak Software Engineer Tieto, Patryk.Górniak@tieto.com
Wykład 5 Okna MDI i SDI, dziedziczenie
Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Klasy abstrakcyjne, interfejsy i polimorfizm
Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z
Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium
Wstęp do Programowania 2
Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 5 W programowaniu obiektowym programista koncentruje się na obiektach. Zadaje sobie pytania typu:
The Graphics View Framework. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5. he Graphics View Framework - architektura
The Graphics View Framework Oprogramowanie i wykorzystanie stacji roboczych Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska The Graphics View
Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton
Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu
Mechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
TEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Zaawansowane programowanie obiektowe - wykład 5
Zaawansowane programowanie obiektowe - wykład 5 dr Piotr Jastrzębski (czynnościowe) opisują zachowanie obiektów, komunikację pomiędzy nimi i ich odpowiedzialność. Interpreter Iterator (kursor) Łańcuch
Polimorfizm, metody wirtualne i klasy abstrakcyjne
Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,
Multimedia JAVA. Historia
Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania
2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
Wykład 5: Klasy cz. 3
Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu
Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
Aplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY
Różne właściwości Funkcje tak samo jak zmienne mają swoje miejsce w pamięci, gdzie są zapisane. Można więc uzyskać ich adres. Podobnie jak adres tablicy jest zwracany przez jej nazwę, podaną bez nawiasu
Klasy abstrakcyjne i interfejsy
Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie
Programowanie obiektowe i zdarzeniowe
Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie
Definicje klas i obiektów. Tomasz Borzyszkowski
Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy
Szablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
Programowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki
Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas
Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/
Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Języki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
Materiały do zajęć VII
Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja
PARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz
Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty
X Window System (I) Oprogramowanie i wykorzystanie stacji roboczych. Wykład 1. X Window System (III) X Window System (II)
X Window System (I) Oprogramowanie i wykorzystanie stacji roboczych Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska X Window System można
- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy
Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla
Wyjątki (exceptions)
Instrukcja laboratoryjna nr 6 Programowanie w języku C 2 (C++ poziom zaawansowany) Wyjątki (exceptions) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp Wyjątki (ang.
Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.
Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Konstruktory Konstruktory w językach obiektowych są to specjalne metody wywoływane podczas tworzenia nowego obiektu i służące do
Język C++ Programowanie obiektowe
Język C++ Programowanie obiektowe Cechy programowania obiektowego abstrakcyjne typy danych hermetyczność obiektów (kapsułkowanie) dziedziczenie polimorfizm Programowanie proceduralne vs. programowanie
Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
System X Window (I) Oprogramowanie i wykorzystanie stacji roboczych. Wykład 3. System X Window (III) System X Window (II)
System X Window (I) Oprogramowanie i wykorzystanie stacji roboczych Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska X Window można określić
10. Programowanie obiektowe w PHP5
Ogólnie definicja klasy wygląda jak w C++. Oczywiście elementy składowe klasy są zmiennymi PHP, stąd nieśmiertelne $. Warto zauważyć, że mogą one mieć wartość HHH mgr inż. Grzegorz Kraszewski TECHNOLOGIE
Oprogramowanie i wykorzystanie stacji roboczych. Wykład 3
Wykład 3 p. 1/4 Oprogramowanie i wykorzystanie stacji roboczych Wykład 3 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska System X Window (I)
Podstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Programowanie obiektowe
Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.
Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Rok akademicki: 2014/2015 Kod: MIO s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: -
Nazwa modułu: Interfejs użytkownika Rok akademicki: 2014/2015 Kod: MIO-1-613-s Punkty ECTS: 4 Wydział: Inżynierii Metali i Informatyki Przemysłowej Kierunek: Inżynieria Obliczeniowa Specjalność: - Poziom
Programowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Enkapsulacja, dziedziczenie, polimorfizm
17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Wprowadzenie do programowanie obiektowego w języku C++
Wprowadzenie do programowanie obiektowego w języku C++ Część czwarta Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura
Programowanie w Internecie. Java
Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java
UML a kod. C++, Java i C#
UML a kod C++, Java i C# UML a kod w C++ i Javie Projektowanie oprogramowania! Dokumentowanie oprogramowania Diagramy przypadków użycia Klasy użytkowników i wykorzystywane funkcje Mogą sugerować podział
Qt - edycja, obsługa zdarzeń, rozmieszczenie kontrolek
Qt - edycja, obsługa zdarzeń, rozmieszczenie kontrolek Bogdan Kreczmer ZPCiR ICT PWR pokój 307 budynek C3 kreczmer@ict.pwr.wroc.pl Copyright c 2003 Bogdan Kreczmer Niniejszy dokument zawiera materiały
PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.
PROGRAMOWANIE OBIEKTOWE W C++ cz. 2 Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów. Dziedziczenie Dziedziczenie jest to technika pozwalaj c na definiowanie nowej klasy przy wykorzystaniu
Programowanie w języku C++ Grażyna Koba
Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad
Wprowadzenie do platformy Qt
Wprowadzenie do platformy Qt Tłumaczenie i adaptacja materiałów: dr Tomasz Xięski. Na podstawie prezentacji udostępnionych przez Digia Plc. na licencji CC. 2012 Digia Plc. The enclosed Qt Materials are
Laboratorium nr 10. Temat: Funkcje cz.2.
Zakres laboratorium: Laboratorium nr 10 Temat: Funkcje cz.2. przeciążanie nazw funkcji argumenty domyślne funkcji przekazywanie danych do funkcji przez wartość, wskaźnik i referencję przekazywanie tablic
Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
Programowanie obiektowe
Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje
Programowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Technologie i usługi internetowe cz. 2
Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,
class Student Deklaracja klasy Osoba: Deklaracja klasy Student:
Osoba Student Będziemy mieli 2 klasy: Osoba, dla której zapamiętamy dane takie jak: imie, nazwisko i wiek Oraz klasę Student, w której będziemy też dodatkowo pamiętać kierunek studiów. Deklaracja klasy
PHP 5 język obiektowy
PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje
Mechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura
Programowanie komputerów Programowanie obiektowe. Typy zmiennych proste i złożone Typy zmiennych "wbudowane", tj. identyfikowane przez słowa kluczowe, są określane jako proste: int short long float double
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 12
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 12 1 KLASY ZAPRZYJAŹNIONE Jedna klasa (A) może zadeklarować przyjaźń z inną klasą (B). Oznacza to, że klasa B ma dostęp do wszystkich składników
Podstawy programowania w języku C++
Podstawy programowania w języku C++ Część ósma Zmienne wskaźnikowe koncepcja, podstawowe zastosowania Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski
Rozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet Blok 2 - PHP Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Podstawy podstaw, czyli małe wprowadzenie do PHP, Podstawy
Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com
Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,
76.Struktura oprogramowania rozproszonego.
76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie
Programowanie obiektowe
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania
Zaawansowane programowanie w języku C++ Klasy w C++
Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń
Instrukcja laboratoryjna cz.3
Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:
Szablony funkcji i klas (templates)
Instrukcja laboratoryjna nr 3 Programowanie w języku C 2 (C++ poziom zaawansowany) Szablony funkcji i klas (templates) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp
Programowanie w języku C++
Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi
Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,