Podstawy Programowania 04 Programowanie Obiektowe

background image

1

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/

background image

Pytania powtarzające

x & y

?

x | y

?

~ x

?

x ^ y

?

o

Definicje:

bit, bajt, słowo, little/big endian

background image

Pytania powtarzające -
maskowanie

o

Rejestr R

o

Jak sprawdzić co siedzi w R

4

?

o

Jak przestawić R

4

na 1?

o

Jak przestawić R

4

na 0?

R

7

R

6

R

5

R

4

R

3

R

2

R

1

R

0

?

?

?

?

?

?

?

?

background image

Pytania powtarzające:
złożone typy danych

Definicje:

o

Tablice/Sekwencje

o

Zbiory/słowniki

o

Struktury/Rekordy

o

Klasy/obiekty

4

background image

Programowanie Obiektowe

o

Paradygmaty programowania

o

Imperatywny (strukturalny/proceduralny)

background image

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”

Global Data and Main

Procedure

method

method

method

method

background image

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

data

method

method

method

data

method

method

method

data

method

background image

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)

background image

Przykład – klasa „boxer”

Dane:

-

imię

-

zdrowie

-

siła

Metody:

-

walnij

-

oberwij

-

podaj imię/zdrowie/siłę
(get)

-

ustaw imię/zdrowie/siłę
(set)

walnij

oberwij

podaj imię/zdrowie/siłę

ustaw imię/zdrowie/siłę

imie: .....

zdrowie:....

siła:....

background image

OBIEKT

Obiekt to „byt programistyczny” posiadający

zmienne i metody opisane w klasie

background image

Przykładowy obiekt:

Gołota klasy Bokser

Obiekt Gołota:
Dane:

-

imię = „Gołota”

-

zdrowie = 100

-

siła = 95

Metody:

-

walnij

-

oberwij

-

podaj imię/zdrowie/siłę
(get)

-

ustaw imię/zdrowie/siłę
(set)

walnij

oberwij

podaj imię/zdrowie/siłę

ustaw imię/zdrowie/siłę

imię: Gołota

zdrowie: 100

siła: 95

background image

Komunikaty

W programowaniu obiektowym instrukcje polegają

na wysyłaniu przez obiekty komunikatów
(message).

background image

Elementy komunikatu

nazwa obiektu . nazwa metody (parametry metody)

Gołota.Oberwij(Tyson.Walnij())

walnij

oberwij

podaj imię/zdrowie/siłę

ustaw imię/zdrowie/siłę

imię: Tyson

zdrowie: 100

siła: 120

walnij

oberwij

podaj imię/zdrowie/siłę

ustaw imię/zdrowie/siłę

imię: Gołota

zdrowie: 100

siła: 95

background image

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).

background image

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.

background image

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

background image

Programowanie proceduralne
vs programowanie obiektowe

Proceduralne

dane i funkcjonalność

rozdzielne

program to ciąg

instrukcji operujących na
danych lub wywołujących
metody

Obiektowe

połączenie danych i

funkcjonalności

każdy obiekt

przechowuje jakieś dane
(stan/atrybuty) i posiada
funkcjonalność

klasy opisują obiekty

program to tworzenie

obiektów i wywoływanie
ich metod

background image

Wady i zalety

Proceduralne (imperatywne)
+ bardziej zbliżone do
maszynowego (więc szybsze
i wydajniejsze)

+

dobre to tworzenia krótkich

programów przez jednego
programistę
- gorsze do tworzenia
złożonych programów przez
wielu programistów
- trudne w modyfikacji i
rozbudowie

Obiektowe

+ dobre dla tworzenia
rozbudowanych programów
przez wielu programistów
+ naturalnie modeluje
interfejsy graficzne

+

łatwe w modyfikacji,

rozbudowie

- mniej wydajne

-

dużo zbędnego kodu dla

małych programów

background image

Nowe słownictwo OOP

A

bstraction (abstrakcja)

P

olymorphism (polimorfizm)

I

nheritance (dziedziczenie)

E

ncapsulation (enkapsulacja/hermetyzacja)

background image

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)

background image

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.

background image

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.

metho
d

met
hod

da
ta

met
hod

metho
d

met
hod

da
ta

met
hod

metho
d

met
hod

da
ta

met
hod

background image

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

Woof!

Meow

!

Hello!

speak()

speak()

speak()


Wyszukiwarka

Podobne podstrony:
Intuicyjne podstawy programowania obiektowego0
Podstawy programowania obiektowego cw3 cpp
Podstawy programowania obiektowego, cw2 cpp
Podstawy programowania obiektowego, cw3 cpp
Podstawy programowania obiektowego Dariusz Rataj
informatyka-programowanie obiektowe, podstawy
PROZE 3 Podstawy języka, cd programowanie obiektowe
programowanie obiektowe 04
piasecki,podstawy programowania, Definicja klasy, tworzenie obiektów
Podstawa programowa mechanik poj sam 723 04
Nowa podstawa programowa WF (1)
1 Podstawy programowania dialogowego
Programowanie obiektowe(ćw) 1
nowa podstawa programowa sp
11-nkb~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l2
2-eukl~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l2
Zmiany w podstawie programowej w zakresie edukcji matematycznej, Wczesna edukacja, Materiały do prac
1-algo~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l2

więcej podobnych podstron