Obiekty dynamiczne Tworzenie klas 3 MPDI Programowanie obiektowe W4.

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

Programowanie obiektowe
Programowanie Wizualne WYKŁAD 4
Programowanie obiektowe
Programowanie obiektowe
Static, const, volatile.
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
Programowanie w środowisku sieciowym
PROGRAMOWANIE STRUKTURALNE
Obiekty i zdarzenia w środowisku Delphi
Jan Aleksander Wierzbicki
Jednostki dynamiczne W trakcie obliczeń powstają (... i giną) jednostki dynamiczne: " rekordy aktywacji (procedur, funkcji, bloków,...) " obiekty (klas,
Programowanie obiektowe w Javie
OOP - programowanie zorientowane obiektowo w VB.NET
27/09/ Języki programowania 1 Piotr Górczyński Procedury i funkcje.
Tworzenie ASP.NET Web Form
Kurs Pascala – spis treści
C++ wykład 2 ( ) Klasy i obiekty.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Wykład 8 Wojciech Pieprzyca
Wykład 2 struktura programu elementy języka typy zmienne
Języki programowania obiektowego
1 Języki i techniki programowania prowadzący dr Grzegorz Filipczyk.
1 Języki i techniki programowania prowadzący dr Grzegorz Filipczyk.
Podprogramy.
Podstawy programowania
C# Windows Forms Zastosowania Informatyki Wykład 3
Klasy w C++. Deklaracja klasy class NazwaTwojejKlasy { //w tym miejscu piszemy definicje typów, //zmienne i funkcje jakie mają należeć do klasy. }; //tutaj.
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Struktura programu w Turbo Pascalu.
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Delphi i Acad cd.. l_poz := MSpace.Count; Label3.Caption:=IntToStr(l_poz); ent:=Mspace.Item(0); for l_poz := 0 to MSpace.Count-1 do begin; ent:=Mspace.Item(l_poz);
Procedury i funkcje.
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Wykład 5 – typy – stałe – tablice – elementy grafiki.
1. Język ObjectPascal - typ tablicowy (array)
Programowanie w środowisku DELPHI
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Programowanie obiektowe III rok EiT
Programowanie obiektowe – zastosowanie języka Java SE
Java – coś na temat Klas Piotr Rosik
Inicjalizacja i sprzątanie
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Programowanie obiektowe 2013/2014
Informatyka PDF Wykład 12.
Wykład 1 Języki programowania Środowisko Delphi Komponenty
Wykład 3 przykłady operacje na tekstach wyrażenia logiczne
1 Wykład 7 sortowanie BitButton format tekstu rysunki typ rekordowy.
Programowanie w języku C++
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5 Programowanie komponentowe 1.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Kurs języka C++ – wykład 4 ( )
Podstawy programowania (4)
K URS JĘZYKA C++ – WYKŁAD 2 ( ) Klasy i obiekty.
Klasy ( uzupełnienie ). Definicja klasy Klasa jest zbiorem logicznie powiązanych danych i funkcji, przeznaczonych do realizacji konkretnego zadania; Zamknięcie.
Programowanie Zaawansowane
Dziedziczenie Wykład 7 Dziedziczenie sekwencyjne
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Wykład 4 Programowanie obiektowe. Tworzenie własnych obiektów Słowo kluczowe this W JavaScript można tworzyć własne obiekty. Wykorzystuje się tu zapis.
Partnerstwo dla Przyszłości 1 Lekcja 27 Klasy i obiekty.
Wykład 2 Programowanie obiektowe. Programowanie obiektowe wymaga dobrego zrozumienia działania funkcji definiowanych przez użytkownika, w ten sposób będziemy.
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
Programowanie Obiektowe – Wykład 6
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
Programowanie Obiektowe – Wykład 2
Programowanie obiektowe – zastosowanie języka Java SE
Object vs. class (rozdzial 13 The NEURON book)
Zapis prezentacji:

Obiekty dynamiczne Tworzenie klas 3 MPDI Programowanie obiektowe W4

implementation var etykieta:TLabel; Generowanie instancji zdefiniowanych klas Mamy przykładowo wbudowaną klasę TLabel Utwórzmy obiekt dynamiczny - jako odpowiedź na zdarzenie w czasie biegu uruchomionego programu. Definiujemy zmienną – globalnie lub lokalnie:

procedure TForm1.Button1Click(Sender: TObject); begin etykieta:=TLabel.create(self); //utworzenie etykieta.Parent:=self; //rodzic etykieta.Left:=10; etykieta.Top:=100; etykieta.Caption:='Jakis napis'; end; procedure TForm1.Button2Click(Sender: TObject); begin etykieta.Destroy;// zniszczenie end; Przyciski i obsługa zdarzeń

procedure TForm1.FormCreate(Sender: TObject); var przycisk: TButton; begin przycisk:=TButton.Create(self); przycisk.Left:=10; // pozycja X przycisk.Top:=10; // pozycja Y przycisk.Width:=140; // szerokość przycisku przycisk.Height:=40; // wysokość przycisku przycisk.Caption:='Przycisk dynamiczny'; // podpis przycisku przycisk.Parent:=self; // rodzic przycisku - formularz przycisk.Visible:=True; // czy widoczny end;

var i:1..10; begin for i:=1 to 5 do begin tab[i]:=TButton.create(self); tab[i].Parent:=self; tab[i].left:=100+50*i; tab[i].top:=100; tab[i].Width:=40; tab[i].Caption:=inttostr(i); end end; implementation var tab:array[1..10] of TButton; Na kliknięcie przycisku: Wiele instancji obiektu

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var tutaj:TShape; begin tutaj:=TShape.create(self); tutaj.Parent:=self; tutaj.Left:=x; tutaj.Top:=y; tutaj.Style end; implementation var tutaj:TShape; Na naciśnięcie klawisza myszki dla Form tworzymy kod: Sterowanie lokalizacją obiektu

Tworzenie nowej klasy TPunkt = class(TObject) public x:Integer; y:Integer; procedure przesun(dx,dy:Integer); constructor Create; destructor Destroy;override; end; //koniec definicji

dla TObject override - słowo kluczowe języka Delphi - dyrektywa służącą do przedefiniowywania (nadpisywania) metod. Przedefiniowywane mogą być tylko metody klas, oznaczone jako wirtualne i dynamiczne (virtual, dynamic): Create – to metoda statyczna – nie wolno przedefiniowywać, metody opatrzone słowem kluczowym static zapewniają dostęp do klasy bez konieczności wywoływania konstruktora czy odwoływania się do instancji klasy – wrócimy do tematu w Javie Destroy – metoda wirtualna – może być przedefiniowana

//konstruktor constructor TPunkt.create; begin inherited create;//dziedziczona od TObject //i tu ewentualne zmiany end; //destruktor destructor TPunkt.destroy; begin inherited destroy; //dziedziczona od TObject end; procedure TPunkt.przesun(dx, dy: Integer); begin x:=x+dx; y:=y+dy; end; W sekcji Implementation dopisujemy opis metod:

Można pominąć definiowanie konstruktora i destruktora – wtedy są dziedziczone z klasy macierzystej

procedure TForm1.Button1Click(Sender: TObject); begin p:=TPunkt.create; p.x:=30; //nadanie wartości polu p.y:=40; edit1.Text:=IntToStr(p.x); edit2.Text:=IntToStr( p.y); end; zdarzenie var Form1: TForm1; p: TPunkt; Tworzymy zmienną:

procedure TForm1.Button1Click(Sender: TObject); begin p.przesun(4,4);//wykorzystanie metody edit1.Text:=IntToStr(p.x); edit2.Text:=IntToStr( p.y); Form1.Canvas.Pixels[p.x,p,y]:=clRed; end; inne zdarzenie

constructor TPunkt.create; begin inherited create; x:=0; y:=0; end; W procedurze create możemy dopisać inicjację wartości pól – można je wtedy usunąć z obsługi przycisku: