Podstawy Programowania 04 Programowanie Obiektowe


Podstawy
Programowania
Programowanie Obiektowe
Michał Bujacz
bujaczm@p.lodz.pl
B9  Lodex 207
godziny przyjęć: środy i
czwartki 10:00-11:00
http://www.eletel.p.lodz.pl/bujacz/
1
Pytania powtarzajÄ…ce
x & y ?
x | y ?
~ x ?
x ^ y ?
o
Definicje:
bit, bajt, słowo, little/big endian
Pytania powtarzajÄ…ce -
maskowanie
o
Rejestr R
7 6 5 4 3 2 1 0
R R R R R R R R
? ? ? ? ? ? ? ?
o
4
Jak sprawdzić co siedzi w R ?
o
4
Jak przestawić R na 1?
o
4
Jak przestawić R na 0?
Pytania powtarzajÄ…ce:
złożone typy danych
Definicje:
o
Tablice/Sekwencje
o
Zbiory/słowniki
o
Struktury/Rekordy
o
Klasy/obiekty
4
Programowanie Obiektowe
o
Paradygmaty programowania
o
Imperatywny (strukturalny/proceduralny)
Programowanie Imperatywne
"
skupione na instrukcjach
"
dane przechowywane w głównej procedurze i
przekazywane do i z metod/funkcji/procedur
"
jasny rodział  funkcjonalności i  danych
method
method
method
method
Global Data and Main
Procedure
Programowanie obiektowe
"
obiekt jest połączeniem danych (stan/atrybuty
obiektu) i funkcjonalności (metod)
"
program polega na tworzeniu obiektów i wysyłania
między nimi komunikatów
method
method
method
method
data
data
method
method
method
method
data
method
Klasa
Klasa  definicja typu zmiennej którym są obiekty
stanowi opis/schemat (blueprint) jakie dane
będzie przechowywał obiekt i jaką
funkcjonalnością będzie dysponował (jakie ma
metody)
Przykład  klasa  boxer
Dane:
-
imiÄ™
-
zdrowie
-
siła
ustaw imię/zdrowie/siłę
Metody:
imie: .....
-
walnij
walnij
zdrowie:....
oberwij
-
oberwij
siła:....
-
podaj imię/zdrowie/siłę
(get)
podaj imię/zdrowie/siłę
-
ustaw imię/zdrowie/siłę
(set)
OBIEKT
Obiekt to  byt programistyczny posiadajÄ…cy
zmienne i metody opisane w klasie
Przykładowy obiekt:
Gołota klasy Bokser
Obiekt Gołota:
Dane:
-
imię =  Gołota
-
zdrowie = 100
ustaw imię/zdrowie/siłę
-
siła = 95
imię: Gołota
Metody:
walnij
zdrowie: 100
oberwij
-
walnij
siła: 95
-
oberwij
-
podaj imię/zdrowie/siłę
podaj imię/zdrowie/siłę
(get)
-
ustaw imię/zdrowie/siłę
(set)
Komunikaty
W programowaniu obiektowym instrukcje polegajÄ…
na wysyłaniu przez obiekty komunikatów
(message).
Elementy komunikatu
nazwa obiektu . nazwa metody (parametry metody)
Gołota.Oberwij(Tyson.Walnij())
ustaw imię/zdrowie/siłę
ustaw imię/zdrowie/siłę
imię: Gołota
imiÄ™: Tyson
zdrowie: 100
walnij
zdrowie: 100
walnij
oberwij
oberwij
siła: 95
siła: 120
podaj imię/zdrowie/siłę
podaj imię/zdrowie/siłę
Konstruktor
Metoda uruchamiana w momencie stworzenia
obiektu.
Zazwyczaj wykorzystywana do ustawienia wartości
poczÄ…tkowych zmiennych.
Czasami uruchamia też statyczne metody (np.
licznik obiektów).
Dynamiczne vs. Statyczne
Zmienne i metody dynamiczne  należą do
danego obiektu. Każdy obiekt ma własne.
Zmienne i metody statyczne  należą do klasy.
Są współdzielone przez obiekty. Mogą być
uruchamiane/modyfikowane bez tworzenia
obiektu.
Publiczne vs prywatne
o
Prywatne dane/metody  mogą być
modyfikowane/uruchamiane tylko przez
obiekty tej samej klasy
o
Publiczne dane/metody  dostępne dla
wszystkich innych klas
o
Chronione (protected)  dostępne dla danej
klasy i klas z niej dziedziczÄ…cych
Programowanie proceduralne
vs programowanie obiektowe
Proceduralne Obiektowe
lð lð
dane i funkcjonalność połączenie danych i
rozdzielne funkcjonalności
lð lð
program to ciąg każdy obiekt
instrukcji operujÄ…cych na przechowuje jakieÅ› dane
danych lub wywołujących (stan/atrybuty) i posiada
metody funkcjonalność

klasy opisujÄ… obiekty

program to tworzenie
obiektów i wywoływanie
ich metod
Wady i zalety
Proceduralne (imperatywne) Obiektowe
+ bardziej zbliżone do + dobre dla tworzenia
maszynowego (więc szybsze rozbudowanych programów
i wydajniejsze) przez wielu programistów
+ dobre to tworzenia krótkich + naturalnie modeluje
programów przez jednego interfejsy graficzne
programistÄ™
+ Å‚atwe w modyfikacji,
- gorsze do tworzenia rozbudowie
złożonych programów przez
- mniej wydajne
wielu programistów
- dużo zbędnego kodu dla
- trudne w modyfikacji i
małych programów
rozbudowie
Nowe słownictwo OOP
Abstraction (abstrakcja)
Polymorphism (polimorfizm)
Inheritance (dziedziczenie)
Encapsulation (enkapsulacja/hermetyzacja)
Abstrakcja
Bardziej  abstrakcyjne myślenie o programie:
mamy obiekty (agentów) wykonujących swoje
zadania i wymieniajÄ…cych komunikaty.
nie musimy skupiać się na wewnętrznym
działaniu/strukturze tych obiektów (chyba że to
my definiujemy klasÄ™)
Klasy i metody abstrakcyjne  to takie których
obiektów nie można tworzyć (służą tylko za
schemat do dziedziczenia)
Dziedziczenie
Klasy mogą dziedziczyć z innych. Przejmują
wtedy ich dane i metody. Mogą wtedy dodawać
swoje nowe dane i metody lub  przeciążać
(nadpisać) stare.
Rodzic/dziecko.
Superclass/Subclass.
Hermetyzacja
Dane ustawiane jako prywatne, metody jako
publiczne. Pozwala to uniknąć przypadkowego
edytowania danych lub błędów dostępu do
pamięci.
Interfejs  typ klasy składającej się tylko z
publicznych metod, bez danych.
met
met met
met
hod
hod hod
hod
da
da
ta
ta
metho
metho
d
d
met
met
hod
hod
da
ta
metho
d
Polimorfizm
Możliwość używania metod/zmiennych na kilka różnych
sposobów. Np. ta sama metoda zadziała inaczej w zależności
od typu danych który otrzyma, lub obiektu z którego została
uruchomiona.
override (zastąpić)  dziedzicząca klasa tworzy własną wersję
jakiejÅ› metody
overload (przeciążyć) tworzymy inną metodę o tej samej nazwie
ale przyjmujÄ…cÄ… inne parametry
Hello! Woof! Meow
!
speak() speak() speak()


Wyszukiwarka

Podobne podstrony:
[C ]Rataj Podstawy programowania obiektowego
Informatyka Programowanie Obiektowe podstawy
PROZE 3 Podstawy języka, cd programowanie obiektowe
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
Podstawy Programowania Wersja Rozszerzona
Visual C 6 0 Podstawy programowania
matlab podstawy programowania
JP SS 2 algorytmy i podstawy programowania
Podstawy programowania II 2
podstawy programowania 5
Podstawy programowania  11 2013
podstawa programowa
Programowanie Obiektowe Ćwiczenia 5
podstawa programowa
Podstawy Programowania

więcej podobnych podstron