3 w6m programowanie obiektowe delphi

background image

PROGRAMOWANIE

PROGRAMOWANIE

OBIEKTOWE.

OBIEKTOWE.

PAKIET

PAKIET

DELPHI

DELPHI

background image

Programowanie

Programowanie

obiektowe

obiektowe

IV

najnowsza

generacja

IV

najnowsza

generacja

metodologii programowania, w

metodologii programowania, w

której program komputerowy jest

której program komputerowy jest

tworzony

tworzony

za

pomocą

„obiektów

za

pomocą

„obiektów

programowych"

stanowiących

programowych"

stanowiących

fragmenty programu zawierające

fragmenty programu zawierające

dane i procedury na tych danych.

dane i procedury na tych danych.

background image

W programowaniu obiektowym

W programowaniu obiektowym

PROGRAM

STANOWI

ZBIÓR

PROGRAM

STANOWI

ZBIÓR

WZAJEMNIE

KOMUNIKUJĄCYCH

WZAJEMNIE

KOMUNIKUJĄCYCH

SIĘ

OBIEKTÓW,

SIĘ

OBIEKTÓW,

WYKONYWUJĄCYCH

ZADANIA

WYKONYWUJĄCYCH

ZADANIA

ZGODNE Z ALGORYTMEM

ZGODNE Z ALGORYTMEM

ROZWIĄZYWANEGO PROBLEMU

ROZWIĄZYWANEGO PROBLEMU

.

.

background image

Podstawowym

celem

Podstawowym

celem

wprowadzenia

programowania

wprowadzenia

programowania

obiektowego -ułatwienie pisania

obiektowego -ułatwienie pisania

programów

przez

programów

przez

wykorzystywanie już wcześniej

wykorzystywanie już wcześniej

napisanych

fragmentów

napisanych

fragmentów

programów, które się powtarzają

programów, które się powtarzają

bądź jako fragmenty obiektów,

bądź jako fragmenty obiektów,

bądź jako całe obiekty.

bądź jako całe obiekty.

background image

POJĘCIA

POJĘCIA

PODSTAWOWE (1)

PODSTAWOWE (1)

Obiekt

Obiekt

- zbiór zadeklarowanych

- zbiór zadeklarowanych

danych

danych

oraz

oraz

metod

metod

:

:

procedur

procedur

i

i

funkcji

funkcji

wykonywanych na danych. Obiekt jest

wykonywanych na danych. Obiekt jest

niepodzielny, mogą być używane

niepodzielny, mogą być używane

wyłącznie

wyłącznie

metody

użytkownika

metody

użytkownika

.

.

Zmienne

obiektu

Zmienne

obiektu

-

właściwości

-

właściwości

statyczne,

statyczne,

metody

metody

- właściwości

- właściwości

dynamiczne.

dynamiczne.

background image

Obiekty - bloki funkcji i danych

Obiekty - bloki funkcji i danych

, na

, na

których wykonywane są operacje.

których wykonywane są operacje.

Sposoby komunikacji obiektów :

Sposoby komunikacji obiektów :

wzajemna komunikacja,

wzajemna komunikacja,

komunikacja

z

systemem

i

z

komunikacja

z

systemem

i

z

programem

programem

,

wykorzystująca

,

wykorzystująca

zdarzenia

zdarzenia

, na które dany obiekt

, na które dany obiekt

reaguje.

reaguje.

background image

Powiązania obiektów

Powiązania obiektów

oraz

oraz

atrybuty

atrybuty

obiektów

obiektów

stanowią

stanowią

cechy rozwiązywanego

cechy rozwiązywanego

problemu.

problemu.

background image

Charakterystyka procedur

Charakterystyka procedur

hermetyzacja danych

hermetyzacja danych

- wzajemna

- wzajemna

niezależność danych w różnych obiektach

niezależność danych w różnych obiektach

,

,

prezentacja podejścia

prezentacja podejścia

: obiekt-atrybut,

: obiekt-atrybut,

całość-fragment programu, klasy

całość-fragment programu, klasy

obiektów

obiektów

i ich rozróżnienie,

i ich rozróżnienie,

wzajemne komunikowanie

wzajemne komunikowanie

się i

się i

powiązania tworzonych i

powiązania tworzonych i

wykorzystywanych obiektów

wykorzystywanych obiektów

.

.

Przykłady

Przykłady

pakietów programowania obiektowego

pakietów programowania obiektowego

narzędzia programowania

narzędzia programowania

DELPHI

DELPHI

,

,

JAVA

JAVA

,

,

VISUAL BASIC

VISUAL BASIC

background image

CECHY OBIEKTÓW

CECHY OBIEKTÓW

( 1 )

( 1 )

Obiekty grupowane są w klasy.

Obiekty grupowane są w klasy.

Klasa jest zbiorem obiektów o jednakowych

Klasa jest zbiorem obiektów o jednakowych

zmiennych

zmiennych

i metodach.

i metodach.

Klasa jest deklaracją typu obiektowego, w której

Klasa jest deklaracją typu obiektowego, w której

obiekt jest zmienną tego typu.

obiekt jest zmienną tego typu.

Stworzenie klasy obiektów wymaga

Stworzenie klasy obiektów wymaga

podania

podania

definicji typu obiektowego

definicji typu obiektowego

implementacji metod obiektu

implementacji metod obiektu

.

.

Przy deklaracji klasy zwykle występuje lista

Przy deklaracji klasy zwykle występuje lista

przodków

przodków

danego obiektu wiążąca się z

danego obiektu wiążąca się z

dziedziczeniem cech

dziedziczeniem cech

.

.

background image

CECHY OBIEKTÓW ( 2 )

CECHY OBIEKTÓW ( 2 )

Dziedziczenie

Dziedziczenie

- cecha pozwalająca na

- cecha pozwalająca na

budowanie

nowych

typów

budowanie

nowych

typów

obiektowych

na

bazie

już

obiektowych

na

bazie

już

istniejących.

istniejących.

Typ

pochodny

Typ

pochodny

(potomek)

(potomek)

dziedziczy

zawsze

dziedziczy

zawsze

wszystkie dane i metody

wszystkie dane i metody

typu

typu

bazowego

bazowego

(rodzica),

(rodzica),

ale metody

ale metody

rodzica

mogą

zostać

dowolnie

rodzica

mogą

zostać

dowolnie

przedefiniowane.

przedefiniowane.

background image

CECHY OBIEKTÓW ( 3 )

CECHY OBIEKTÓW ( 3 )

Hermetyczność

Hermetyczność

- własność

- własność

programowania obiektowego

programowania obiektowego

odseparowywująca zmienne obiektów

odseparowywująca zmienne obiektów

od bezpośredniego oddziaływania na

od bezpośredniego oddziaływania na

nie z zewnątrz.

nie z zewnątrz.

Zaletą hermetyczności jest, że modyfikacje

Zaletą hermetyczności jest, że modyfikacje

w strukturze obiektu oraz implementacji

w strukturze obiektu oraz implementacji

jego metod mają charakter lokalny, są

jego metod mają charakter lokalny, są

ograniczone do samego obiektu.

ograniczone do samego obiektu.

background image

Polimorfizm

Polimorfizm

- operowanie na różnych

- operowanie na różnych

obiektach poprzez

obiektach poprzez

wielokrotne

wielokrotne

używanie kodu programu.

używanie kodu programu.

Polimorfizm wiąże się z dziedziczeniem

Polimorfizm wiąże się z dziedziczeniem

klas:

klas:

ta sama metoda może być

ta sama metoda może być

zastosowana zarówno do danej klasy,

zastosowana zarówno do danej klasy,

jak i do podklas, które ją dziedziczą.

jak i do podklas, które ją dziedziczą.

background image

Sposoby dziedziczenia :

Sposoby dziedziczenia :

klasa może dziedziczyć z :

klasa może dziedziczyć z :

jednej klasy -

jednej klasy -

dziedziczenie jednokrotne

dziedziczenie jednokrotne

jednocześnie z wielu klas -

jednocześnie z wielu klas -

dziedziczenie

dziedziczenie

wielokrotne

wielokrotne

,

,

zbiór własności klas podlegających

zbiór własności klas podlegających

dziedziczeniu stanowią

dziedziczeniu stanowią

metody

metody

i

i

wartości

wartości

zmiennych

zmiennych

.

.

dziedziczenie

może

być

dziedziczenie

może

być

statyczne

statyczne

lub

lub

dynamiczne

dynamiczne

w czasie

w czasie

wykonywania programu

wykonywania programu

.

.

klasy mogą wielokrotnie zmieniać swoje

klasy mogą wielokrotnie zmieniać swoje

zachowanie w trakcie pojedynczego wykonania

zachowanie w trakcie pojedynczego wykonania

programu.

programu.

background image

MECHANIZM

MECHANIZM

PROGRAMOWANIA

PROGRAMOWANIA

OBIEKTOWEGO

OBIEKTOWEGO

wprowadzenie klas i obiektów na

wprowadzenie klas i obiektów na

zadanym poziomie abstrakcji,

zadanym poziomie abstrakcji,

znalezienie relacji klas i obiektów,

znalezienie relacji klas i obiektów,

implementacje klas i obiektów do

implementacje klas i obiektów do

rozwiązywanego zagadnienia,

rozwiązywanego zagadnienia,

uszczegółowienie mechanizmów

uszczegółowienie mechanizmów

dziedziczenia i polimorfizmu :

dziedziczenia i polimorfizmu :

kolejne

kolejne

klasy i obiekty przejmują część atrybutów

klasy i obiekty przejmują część atrybutów

i mechanizmów prostszych z

i mechanizmów prostszych z

zachowaniem

zachowaniem

hierarchicznego porządku

hierarchicznego porządku

.

.

background image

Klasa

Klasa

- struktura łącząca pola (

- struktura łącząca pola (

fields

fields

), metody

), metody

(

(

methods

methods

) oraz właściwości (

) oraz właściwości (

properties

properties

).

).

Pole -

Pole -

zmienna

zmienna

, będąca elementem obiektu.

, będąca elementem obiektu.

Jest to pojęcie analogiczne do pola rekordu.

Jest to pojęcie analogiczne do pola rekordu.

Metoda

Metoda

- procedura lub funkcja związana z

- procedura lub funkcja związana z

klasą

klasą

.

.

Właściwość

Właściwość

- wielkość definiująca jeden

- wielkość definiująca jeden

z atrybutów obiektu, jej wartość jest zwykle

z atrybutów obiektu, jej wartość jest zwykle

przechowywana w jednym z pól obiektu.

przechowywana w jednym z pól obiektu.

Właściwość posiada klauzule dostępu (

Właściwość posiada klauzule dostępu (

access

access

specifiers

specifiers

),

które

określają

jak

dana

),

które

określają

jak

dana

właściwość

jest

odczytywana

i/lub

właściwość

jest

odczytywana

i/lub

modyfikowana.

modyfikowana.

background image

Deklaracja klasy

Deklaracja klasy

type

type

ClassName =

ClassName =

class

class

(AncestorClass)

(AncestorClass)

.............................................

.............................................

MemberList

MemberList

.............................................

.............................................

end

end

;

;

gdzie:

gdzie:

ClassName

ClassName

- nazwa klasy;

- nazwa klasy;

AncestorClass

AncestorClass

- nazwa klasy - przodka w stosunku do

- nazwa klasy - przodka w stosunku do

danej klasy;

danej klasy;

MemberList

MemberList

- lista członów klasy.

- lista członów klasy.

background image

Elementy deklaracji klasy

Elementy deklaracji klasy

AncestorClass

AncestorClass

- element opcjonalny.

- element opcjonalny.

Jeśli nie zostanie podany, to przyjmuje

Jeśli nie zostanie podany, to przyjmuje

się, że przodkiem danej klasy jest klasa

się, że przodkiem danej klasy jest klasa

TObject

TObject

, będący najstarszym

, będący najstarszym

przodkiem wszystkich klas

przodkiem wszystkich klas

w

w

Delphi

Delphi

.

.

MemberList

MemberList

- lista wszystkich członów

- lista wszystkich członów

danej klasy. Pod pojęciem członów

danej klasy. Pod pojęciem członów

rozumie się pola, metody i właściwości.

rozumie się pola, metody i właściwości.

background image

Klasy w

Klasy w

Delphi

Delphi

Klasy w

Klasy w

Delphi

Delphi

stanowią rozbudowane drzewo

stanowią rozbudowane drzewo

dziedziczenia. Każdy komponent w

dziedziczenia. Każdy komponent w

Delphi

Delphi

jest klasą

jest klasą

.

.

Przykładowo: komponent

Przykładowo: komponent

MainMenu

MainMenu

(główne menu aplikacji)

(główne menu aplikacji)

w Delphi 7 jest klasą o nazwie

w Delphi 7 jest klasą o nazwie

TMainMenu

TMainMenu

, która dziedziczy

, która dziedziczy

pola, metody i właściwości w ciągu dziedziczenia klas:

pola, metody i właściwości w ciągu dziedziczenia klas:

TObject - TPersistent - TComponent - TMenu -

TObject - TPersistent - TComponent - TMenu -

TMainMenu

TMainMenu

Szczegóły można odczytywać zaznaczając dany komponent,

Szczegóły można odczytywać zaznaczając dany komponent,

wywołując

wywołując

Help

Help

poprzez

poprzez

Ctrl-F1

Ctrl-F1

oraz wybierając opcję

oraz wybierając opcję

Hierarchy

Hierarchy

,

,

a następnie nazwy poszczególnych klas.

a następnie nazwy poszczególnych klas.

Nie jest to jednak konieczne, można bowiem wykorzystywać

Nie jest to jednak konieczne, można bowiem wykorzystywać

każdy komponent, nie interesując się jego miejscem w

każdy komponent, nie interesując się jego miejscem w

strukturze klas środowiska.

strukturze klas środowiska.

background image

Ważniejsze typy w

Ważniejsze typy w

hierarchii klas

hierarchii klas

TObject

Exception

TStream

Tpesistent

TPrinter

TList

TGraphicsObject

TGraphics

TComponent

TCanvas TPicture Tstrings

TTimer

TScreen

TMenuItem

TMenu

TControl TCommonDialogTGlobalComponent

TGraphicsControl

TWinCintrol

TApplication

TCostomComboBox TCostomControl TCostomEdit TCostomListBox

TScrollingWinControl

TForm

background image

Dziedziczenie i po

Dziedziczenie i po

wtarzanie

wtarzanie

się członów klas

się członów klas

Deklarując klasę, możliwe jest wskazanie jej

Deklarując klasę, możliwe jest wskazanie jej

przodka

przodka

(

(

ancestor

ancestor

). Dana klasa stanie się wówczas

). Dana klasa stanie się wówczas

potomkiem

potomkiem

(

(

descendant

descendant

), który będzie

), który będzie

dziedziczyć od przodka

dziedziczyć od przodka

wszystkie człony tj.

wszystkie człony tj.

pola, metody i właściwości

pola, metody i właściwości

. Można

. Można

zadeklarować nowe dodatkowe człony. Ich zasięg

zadeklarować nowe dodatkowe człony. Ich zasięg

ważności będzie sięgał od miejsca deklaracji i

ważności będzie sięgał od miejsca deklaracji i

rozciągać się na bloki wszystkich metod danej klasy i

rozciągać się na bloki wszystkich metod danej klasy i

na wszystkich potomków danej klasy.

na wszystkich potomków danej klasy.

Jeśli zadeklaruje się u potomka nowe człony o tych

Jeśli zadeklaruje się u potomka nowe człony o tych

samych nazwach jak u przodka, to nowe człony pokryją

samych nazwach jak u przodka, to nowe człony pokryją

(przysłonią) analogiczne człony przodka, jednak nie

(przysłonią) analogiczne człony przodka, jednak nie

zlikwidują ich. Będą one nadal dostępne, ale pod

zlikwidują ich. Będą one nadal dostępne, ale pod

warunkiem ich jawnego wywołania, to znaczy wraz z

warunkiem ich jawnego wywołania, to znaczy wraz z

poprzedzającą nazwą przodka.

poprzedzającą nazwą przodka.

background image

Widoczność - dostęp

Widoczność - dostęp

W

W

Delphi

Delphi

każdy człon klasy cechuje jego

każdy człon klasy cechuje jego

widoczności

przez

inne

elementy

widoczności

przez

inne

elementy

aplikacji (

aplikacji (

visibility

visibility

). Istnieją następujące

). Istnieją następujące

klauzule widoczności – dostępu członów

klauzule widoczności – dostępu członów

klas:

klas:

private

private

(prywatne)

(prywatne)

protected

protected

(chronione)

(chronione)

public

public

published

published

(publikowane)

(publikowane)

automated

automated

(automatyczne)

(automatyczne)

background image

private

private

(prywatne)

(prywatne)

Człony tego typu są widoczne jedynie

Człony tego typu są widoczne jedynie

wewnątrz modułu, w którym

wewnątrz modułu, w którym

znajduje się deklaracja klasy

znajduje się deklaracja klasy

background image

protected

protected

(chronione)

(chronione)

Człony tego typu są widoczne

Człony tego typu są widoczne

jedynie wewnątrz modułu, w

jedynie wewnątrz modułu, w

którym znajduje się deklaracja

którym znajduje się deklaracja

klasy, a także przez wszystkich

klasy, a także przez wszystkich

potomków danej klasy

potomków danej klasy

;

;

background image

public

public

(publiczne)

(publiczne)

Człony tego typu są widoczne przez

Człony tego typu są widoczne przez

wszystkie moduły aplikacji, które

wszystkie moduły aplikacji, które

widzą deklarację danej klasy;

widzą deklarację danej klasy;

background image

published

published

(publikowane)

(publikowane)

Człony tego typu są widoczne przez

Człony tego typu są widoczne przez

wszystkie moduły aplikacji, które widzą

wszystkie moduły aplikacji, które widzą

deklarację

danej

klasy.

deklarację

danej

klasy.

Informacje te nazywają się

Informacje te nazywają się

RTTI - Runtime

RTTI - Runtime

Type Information

Type Information

. Są one dostępne w

. Są one dostępne w

czasie wykonywania aplikacji, a także

czasie wykonywania aplikacji, a także

wykorzystywane

przez

wykorzystywane

przez

inspektora

inspektora

obiektów (Object Inspector);

obiektów (Object Inspector);

background image

automated

automated

(automatyczne)

(automatyczne)

Człony tego typu są widoczne przez

Człony tego typu są widoczne przez

wszystkie moduły aplikacji, które

wszystkie moduły aplikacji, które

widzą deklarację danej klasy.

widzą deklarację danej klasy.

Dodatkowo kompilator wydaje i

Dodatkowo kompilator wydaje i

udostępnia specjalną informację o

udostępnia specjalną informację o

tych członach wymaganą przez

tych członach wymaganą przez

serwery automatyzacji COM.

serwery automatyzacji COM.

background image

Brak jawnej klauzuli

Brak jawnej klauzuli

widoczności

widoczności

Człony zadeklarowane w początkowej

Człony zadeklarowane w początkowej

części deklaracji klasy, dla których

części deklaracji klasy, dla których

nie podano w sposób jawny klauzuli

nie podano w sposób jawny klauzuli

widoczności są standardowo

widoczności są standardowo

traktowane jako

traktowane jako

published

published

, pod

, pod

dodatkowym warunkiem, że aplikacja

dodatkowym warunkiem, że aplikacja

jest skompilowana z dyrektywą

jest skompilowana z dyrektywą

kompilatora {$M+}. W przeciwnym

kompilatora {$M+}. W przeciwnym

razie są traktowane jako

razie są traktowane jako

public

public

.

.

background image

Pole

Pole

Pole jest podobne do zmiennej

Pole jest podobne do zmiennej

należącej do danego obiektu. Pole

należącej do danego obiektu. Pole

może być dowolnego typu, włączając tu

może być dowolnego typu, włączając tu

także klasę (to znaczy, że klasa może

także klasę (to znaczy, że klasa może

być zagnieżdżona w klasie). Pola mają

być zagnieżdżona w klasie). Pola mają

zazwyczaj przypisaną klauzulę

zazwyczaj przypisaną klauzulę

private

private

widoczności.

widoczności.

Deklaracje pól muszą poprzedzać

Deklaracje pól muszą poprzedzać

deklaracje metod i właściwości.

deklaracje metod i właściwości.

background image

Przykład deklaracji pola

Przykład deklaracji pola

type

type

TNumber =

TNumber =

class

class

{klasa TNumber dziedziczy

{klasa TNumber dziedziczy

człony od TObject}

człony od TObject}

Int: integer;

Int: integer;

end

end

;

;

background image

Metody

Metody

Wewnątrz

deklaracji

klasy

umieszcza

się

Wewnątrz

deklaracji

klasy

umieszcza

się

deklarację metody, to znaczy funkcji lub

deklarację metody, to znaczy funkcji lub

procedury.

procedury.

Deklarację klasy wraz z deklaracją metod

Deklarację klasy wraz z deklaracją metod

umieszcza zwykle w części publicznej modułu za

umieszcza zwykle w części publicznej modułu za

słowem kluczowym

słowem kluczowym

interface

interface

(choć można to

(choć można to

zrobić

też

zrobić

też

w części implementacyjnej modułu za słowem

w części implementacyjnej modułu za słowem

kluczowym

kluczowym

implementation

implementation

).

).

Definicje metod muszą być umieszczone wyłącznie

Definicje metod muszą być umieszczone wyłącznie

w części implementacyjnej modułu.

w części implementacyjnej modułu.

background image

Przykład

Przykład

interface

interface

.............................................

.............................................

type

type

TMyClass =

TMyClass =

class

class

.......................................

.......................................

procedure

procedure

DoSomething;

DoSomething;

.......................................

.......................................

end

end

;

;

...............................................

...............................................

...............................................

...............................................

implementation

implementation

...............................................

...............................................

procedure

procedure

TMyClass.DoSomething;

TMyClass.DoSomething;

begin

begin

...................

...................

...................

...................

end

end

;

;

...............................................

...............................................

background image

Deklaracja metod

Deklaracja metod

W deklaracji metody

W deklaracji metody

umieszcza się pełny nagłówek

umieszcza się pełny nagłówek

metody wraz z listą parametrów formalnych i typem

metody wraz z listą parametrów formalnych i typem

zwrotnym, natomiast

zwrotnym, natomiast

w definicji metody

w definicji metody

wystarczy podać nazwę metody, ale

wystarczy podać nazwę metody, ale

z poprzedzającą nazwą klasy oddzieloną kropką bez listy

z poprzedzającą nazwą klasy oddzieloną kropką bez listy

parametrów. Jeśli jednak listę parametrów formalnych

parametrów. Jeśli jednak listę parametrów formalnych

metody i typ zwrotny się powtarza, to muszą być one

metody i typ zwrotny się powtarza, to muszą być one

identyczne jak w deklaracji.

identyczne jak w deklaracji.

Deklaracje metod

Deklaracje metod

mogą być zaopatrzone w

mogą być zaopatrzone w

specjalne

specjalne

dyrektywy

dyrektywy

funkcji lub procedury:

funkcji lub procedury:

reintroduce

reintroduce

,

,

overload

overload

,

,

binding

binding

(w tym:

(w tym:

virtual

virtual

,

,

dynamic

dynamic

,

,

override

override

),

),

calling

calling

convention

convention

(w tym:

(w tym:

register

register

,

,

pascal

pascal

,

,

cdecl

cdecl

,

,

stdcall

stdcall

,

,

safecall

safecall

),

),

abstract

abstract

oraz

oraz

warning

warning

(w tym:

(w tym:

platform

platform

,

,

deprecated

deprecated

,

,

library

library

). Nazwy wyprowadzone kursywą są

). Nazwy wyprowadzone kursywą są

to nazwy grup dyrektyw a nie samych dyrektyw.

to nazwy grup dyrektyw a nie samych dyrektyw.


Document Outline


Wyszukiwarka

Podobne podstrony:
Programowanie obiektowe i zdarzeniowe w Delphi
Programowanie obiektowe i zdarzeniowe w Delphi
Programowanie wizualno obiektowe w Delphi
Programowanie obiektowe(ćw) 1
Zadanie projekt przychodnia lekarska, Programowanie obiektowe
Programowanie obiektowe w PHP4 i PHP5 11 2005
Programowanie Obiektowe ZadTest Nieznany
Egzamin Programowanie Obiektowe Głowacki, Programowanie Obiektowe
Jezyk C Efektywne programowanie obiektowe cpefpo
Programowanie Obiektowe Ćwiczenia 5
Programowanie obiektowe(cw) 2 i Nieznany
programowanie obiektowe 05, c c++, c#
Intuicyjne podstawy programowania obiektowego0
Programowanie obiektowe, CPP program, 1
wyklad5.cpp, JAVA jest językiem programowania obiektowego
projekt01, wisisz, wydzial informatyki, studia zaoczne inzynierskie, programowanie obiektowe, projek
przeciazanie metod i operatorow, Programowanie obiektowe

więcej podobnych podstron