w1, szkola, matematyka dyskretna

Nie obrażaj więc mojej inteligencji poprzez czynione na pokaz zaniżanie własnej.
PODSTAWOWE POJĘCIA PROGRAMOWNIA OBIEKTOWEGO

Paradygmat
: nabyty sposb myślenia na jakiś temat, kształtujący świadomie i podświadomie rozumowanie
i działanie. W uproszczeniu można powiedzieć, że jest to styl programowania.

Paradygmaty programowania
:

programowanie proceduralne

programowanie modularne

abstrakcyjne typy danych

programowanie obiektowe

programowanie uoglnione

Język
wspiera
dany styl programowania, jeśli dostarcza mechanizmw dzięki ktrym programowania w tym
stylu jest wygodne (łatwe, bezpieczne, efektywne). Język taki ma dostatecznie dużo udogodnień,
przypadkowe odstępstwa są kontrolowane, posiada potrzebne biblioteki standardowe.

Język umożliwia dany styl programowania, jeśli dostarcza mechanizmw, ktre pozwalają programować
w tym stylu, ale wymagany jest pewien wysiłek lub umiejętności.

Język C++

bazuje na języku C

wspiera rżne style programowania.

nie jest czystym językiem obiektowym, jest językiem hybrydowym
1
Wykład 1
Programowanie proceduralne

Paradygmat
: Zadecyduj, jakie chcesz mieć procedury; stosuj najlepsze algorytmy jakie możesz znaleźć.

Procedura
:
wyodrębniona
z programu głwnego sekwencja instrukcji o nadanej nazwie, wskazująca
konkretne zadanie do wykonania.

Przykład
:
//
Funkcja obliczająca pierwiastek kwadratowy
double sqrt(double arg)
{
//
kod obliczania pierwiastka kwadratowego
}
//
Funkcja głwna
int main ()
{
double pierw;
//
Wywołanie funkcji obliczania pierwiastka
pierw=sqrt(2.0);
...
}
2
Wykład 1
Programowanie modularne

Paradygmat
: Zdecyduj, jakie chcesz mieć moduły; podziel program w taki sposb, aby ukryć dane
w modułach.

Moduł
: zbir powiązanych ze sobą procedur wraz z danymi, na ktrych działają.

Programowanie modularne: rozbicie programu na mniejsze składniki, ktre mogą być konstruowane
niezależnie, następnie łączenie ich w całość w celu uformowania kompletnego programu.

Przykład:
Moduł 1: interfejs stosu w pliku
stos.h
namespace Stos {
void wloz(char);
char zdejmij();
}
Moduł 2: implementacja stosu w pliku
stos.cpp
#include "stos.h"
// dołącz interfejs
namespace Stos {
const int max_rozmiar=200;
char v[max_rozmiar];
int wierzcholek=0;
}
void Stos::wloz(char c)
{
/* sprawdź czy stos nie jest
pełny i włż c */
}
char Stos::zdejmij()
{
/* sprawdź czy stos nie jest
pusty i zdejmij element */
}
Moduł 3: kod użytkownika korzystającego ze stosu w pliku
zadanie.cpp
#include "stos.h"
int main()
{
Stos::wloz('a');
...
}
3
Wykład 1
Abstrakcyjne typy danych czyli typy zdefiniowane przez użytkownika
(programowania w stylu obiektowym)

Paradygmat
: Zadecyduj jakie chcesz mieć typy; dla każdego typu dostarcz pełny zbir operacji.

Tradycyjny język:

ustalony zbir wbudowanych typw danych dla powszechnie stosowanych rodzajw zmiennych

typy definiowane były według sposobu przechowywania informacji w komputerze

programista musiał myśleć na poziomie przechowywania danych

Wspłczesny język:

pozwala na dodawanie nowych typw, łącząc na rżne sposoby typy istniejące,

nowy typ grupuje cechy i czynności związane z określonym bytem,

nowe typy traktowane są tak samo jak gdyby były wbudowane w język.

Klasa
: narzędzie do tworzenia nowych typw danych

Przykład:
class complex {
double re, in;
public:
complex()
//
domyślna liczba zespolona
{ re=im=0;}
complex(double r, double i
) //
tworzenie z dwch składnikw
{ re=r; im=i;}
complex(double r)
//
tworzenie ze skalara
{ re=r; im=0;}
//
definicje funkcji operacji
//
na liczbach zespolonych:
// +, -, *, / == !=
};
void f()
{
complex a(2), b=1/a, c;
c=a+b;
...
}
4
Wykład 1
Programowanie obiektowe

Paradygmat
: Zdecyduj, jakie chcesz mieć klasy; dla każdej klasy dostarcz pełny zbir operacji; korzystając
z mechanizmu dziedziczenia jawnie wskaż co jest wsplne.

Oprogramowanie konwencjonalne: rozwiązuje konkretne problemy

Oprogramowanie obiektowe: modeluje system

Efekty:

oprogramowanie konwencjonalne Î program rozwiązuje pierwotne zadanie, jest niedopasowany do
radzenia sobie z innymi zadaniami, nawet jeśli odnoszą się do tych samych rzeczywistych obiektw;
nowe programy budowane są od podstaw ,

oprogramowanie obiektowe - model może być użyty do rozwiązania całego szeregu zadań, w tym
zadania pierwotnego; nowe programy składane są z części już istniejących.

Cechy programowania obiektowego:

abstrakcyjne typy danych

hermetyzacja danych

dziedziczenie

polimorfizm

Hermetyzacja
(ang.
encapsulation
, kapsułkowanie, enkapsulacja) - ograniczenie dostępności danych
i funkcji wewnętrznych klas i obiektw, udostępnianie ich jedynie za pomocą specjalnych funkcji
nazywanych
metodami
lub
komunikatami

dane zabezpieczone są przed wpływem obcych obiektw,

obce obiekty uniezależniane są od danych,
ewentualne zmiany ograniczane są do pojedynczego obiektu.
Użytkownik klasy musi wiedzieć tylko jak nazywa się dana operacja, do czego służy, jak się ją wywołuje.

Dziedziczenie
:

jedna klasa obiektw może być zdefiniowana jako szczeglny przypadek innej oglniejszej klasy,
a definicje metod i pl danych klasy oglniejszej umieszczane są automatycznie w klasie szczeglnej,

klasa oglna nazywana jest klasą
bazową
a klasa szczeglna klasą
pochodną
,

klasy pochodne mogą definiować swoje własne metody i pola danych, ktre mogą przesłaniać
dziedziczone metody i pola danych,

klasa może dziedziczyć właściwości więcej niż jednej klasy
- dziedziczenie wielobazowe
.

Polimorfizm
: wielopostaciowość - możliwość istnienia wielu metod o tej samej nazwie, powiązana
z możliwością wyboru konkretnej metody podczas wykonywania. Polimorfizm związany jest
z dziedziczeniem Î pozwala w klasie pochodnej redefiniować funkcję składową zachowując tę samą nazwę,
typ i liczbę argumentw.
5
Wykład 1

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • alter.htw.pl
  • Powered by WordPress, © Nie obrażaj więc mojej inteligencji poprzez czynione na pokaz zaniżanie własnej.