Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Podobne dokumenty
Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Wykład 8: klasy cz. 4

Wykład 5: Klasy cz. 3

Programowanie obiektowe. Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Rozdział 4 KLASY, OBIEKTY, METODY

Zaawansowane programowanie w języku C++ Klasy w C++

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Materiały do zajęć VII

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

Język C++ zajęcia nr 2

Programowanie obiektowe

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 12

Pola i metody statyczne

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

Konstruktor destruktor Programowanie obiektowe

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class).

Język C++ Programowanie obiektowe

Podstawy Programowania Obiektowego

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Programowanie obiektowe - 1.

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Programowanie Obiektowo Zorientowane w języku C++ Klasy, pola, metody

10. Programowanie obiektowe w PHP5

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wstęp do Programowania 2

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

Dziedziczenie. Ogólna postać dziedziczenia klas:

Programowanie obiektowe

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

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.

Wstęp do programowania

TEMAT : KLASY DZIEDZICZENIE

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

Wykład 4: Klasy i Metody

Pola i metody statyczne. Klasy zawierające pola i metody statyczne

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 11

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Dziedziczenie jednobazowe, poliformizm

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Szablony klas, zastosowanie szablonów w programach

Kurs WWW. Paweł Rajba.

PARADYGMATY PROGRAMOWANIA Wykład 4

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Zmienne, stałe i operatory

Programowanie obiektowe

Programowanie Obiektowe i C++

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Języki i metody programowania Java. Wykład 2 (część 2)

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.

Programowanie obiektowe

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Technologie obiektowe

Zapis programu z wykorzystaniem modułu (Podstawy Delphi 2.1, 2.2, 2.3 str11 )

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Języki Programowania z Programowaniem Obiektowym laboratorium (30 godzin/semestr)

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

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

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Przeciążanie operatorów

Czym są właściwości. Poprawne projektowanie klas

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Klasy abstrakcyjne, interfejsy i polimorfizm

Laboratorium nr 10. Temat: Funkcje cz.2.

Tablice, funkcje - wprowadzenie

Podstawy Programowania Obiektowego

Polimorfizm, metody wirtualne i klasy abstrakcyjne

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

Podstawy Programowania Obiektowego

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy

Wykład nr 5. Temat: Klasy i abstrakcja danych, cz. I. W.S. Gilbert

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

Podstawy programowania III

Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy KONSTRUKTORY

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Spis treści PROGRAMOWANIE OBIEKTOWE W JĘZYKU C++: KLASY I OBIEKTY, DANE I FUNKCJE SKŁADOWE, PRAWA DOSTĘPU, KONSTRUKTORY I DESTRUKTORY.

Tablice. Jones Stygar na tropie zmiennych

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.

Transkrypt:

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 12: Konstruktory i destruktory, składniki statyczne klasy. Opracowali: dr hab. inż. Witold Beluch witold.beluch@polsl.pl dr inż. Jacek Ptaszny jacek.ptaszny@polsl.pl Gliwice 2016

Języki programowania z programowaniem obiektowym. Laboratorium 12 1 1. Konstruktor Konstruktor to specjalna funkcja składowa klasy, która ma nazwę identyczną z nazwą klasy. Np. jeśli mamy następującą klasę: to konstruktor może mieć postać (tu: tylko deklaracja wewnątrz ciała klasy): a jego definicja (tu: na zewnątrz klasy): Konstruktor jest wywoływany automatycznie w momencie tworzenia obiektu. Przed nazwą konstruktora nie może być żadnego określenia typu zwracanego (zatem nie może być na końcu jego definicji słowa return). Konstruktor może służyć do nadania wartości początkowych danym składowym obiektu (wbrew swej nazwie jest raczej dekoratorem wnętrz...) Jeśli w klasie nie ma zdefiniowanego żadnego konstruktora, to kompilator wygeneruje tzw. konstruktor domniemany (jednakże konstruktor ten nie wykona żadnego przypisania). Konstruktor może wywołać inną funkcję składową swojej klasy. Przykład 1:

Języki programowania z programowaniem obiektowym. Laboratorium 12 2 1.1. Konstruktor z argumentami domyślnymi Konstruktory mogą posiadać argumenty domyślne (wszystkie bądź nie). Przypomnienie: argumenty domyślne umieszcza się najbardziej z prawej strony... Konstruktor domyślny to taki konstruktor w którym wszystkie argumenty mają określone wartości domyślne, np: W tym przypadku jest tak, jak gdyby istniały cztery konstruktory: Uwagi: W danej klasie może istnieć tylko jeden konstruktor domyślny. Konstruktor domyślny może być albo wywołany bez podania żadnych argumentów (wszystkie argumenty są wtedy domyślne) albo z ich podaniem. Domyślne argumenty deklaruje się wyłącznie w deklaracji konstruktora. Przykład 2: 1.2. Konstruktor - przeładowanie nazwy Konstruktor jest funkcją, przy której najczęściej spotyka się przeładowanie nazwy (patrz: instrukcja do laboratorium 10). Dzięki temu dane składowym klasy mogą być w różny sposób przypisywane wartości przy użyciu konstruktora (a w zasadzie: konstruktorów).

Języki programowania z programowaniem obiektowym. Laboratorium 12 3 Przykład 3: 2. Destruktor Destruktor to specjalna funkcja składowa klasy, która ma nazwę identyczną z nazwą klasy poprzedzoną znakiem tyldy ( ). I tak dla klasy Pojazd z punktu 1 deklaracja destruktora ma postać: Destruktor jest wywoływany automatycznie w momencie likwidowania obiektu. Uwagi: Przed nazwą destruktora nie może być żadnego określenia typu zwracanego. Destruktor może służyć do wykonania pewnych działań ( prac porządkowych ) na moment przed zlikwidowaniem obiektu. Destruktor jest wywoływany bez żadnych argumentów. W związku z tym jest funkcją, której nazwy nie można przeładować. Destruktor może wywołać inną funkcję składową swojej klasy. Jeśli w klasie nie ma zdefiniowanego destruktora, kompilator sam go wygeneruje.

Języki programowania z programowaniem obiektowym. Laboratorium 12 4 Definicja klasy Dane z przykładu 2 wzbogaconej o destruktor może wyglądać np. tak: 3. Składniki statyczne klasy Statyczna dana składowa klasy to dana składowa zadeklarowana jako static, np.: static int licznik; Dana taka jest tworzona w pamięci jednokrotnie i jest daną wspólną dla wszystkich obiektów klasy (niejako globalną daną klasy 1 ). Przykład 4: Czy wiesz, że... Studenckie Koło Naukowe Metod Komputerowych począwszy od 2007. roku organizuje coroczną studencką konferencję naukową, na której również i Ty możesz zaprezentować wyniki swoich projektów i nawiązać kontakty z przedstawicielami przemysłu. 1 Dla zainteresowanych: dlaczego nie zmienna globalna? Oto powody: (a) zmienne globalne są dostępnie nie tylko dla klasy (to jest najważniejszy powód); (b) zbyt wiele zmiennych globalnych nie świadczy o dobrym stylu programowania; (c) składnik statyczny klasy może być private (choć oczywiście ma to swe konsekwencje...).