01 podstawy


Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Podejście obiektowe  wprowadzenie
Bogdan Kreczmer
bogdan.kreczmer@pwr.wroc.pl
Zakład Podstaw Cybernetyki i Robotyki
Instytut Informatyki, Automatyki i Robotyki
Politechnika Wrocławska
Kurs: Programowanie obiektowe
Copyright©2010 Bogdan Kreczmer
Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania obiektowego. Jest on
udostępniony pod warunkiem wykorzystania wyłącznie do własnych prywatnych potrzeb i może on być kopiowany
wyłącznie w całości, razem z niniejszą stroną tytułową.
Programowanie obiektowe Podejście obiektowe  wprowadzenie
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Niniejsza prezentacja została wykonana przy użyciu sys-
A
temu składu LTEX oraz stylubeamer, którego autorem
jest Till Tantau.
Strona domowa projektuBeamer:
http://latex-beamer.sourceforge.net
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Moje dane
Bogdan Kreczmer, dr inż., pok. 307 bud C-3
Terminy konsultacji: śr. 11:00  13:00
cz. 9:00  11:00
Strona kursu:
http://sequoia.iiar.pwr.wroc.pl/<"kreczmer/po
http://rab.iiar.pwr.wroc.pl/<"kreczmer/po
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Organizacja kursu
Warunki udziału w kursie
Wykłady i materiały do wykładów
Laboratoria
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Organizacja kursu
Warunki udziału w kursie
Wykłady i materiały do wykładów
Laboratoria
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Organizacja kursu
Warunki udziału w kursie
Wykłady i materiały do wykładów
Laboratoria
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Warunki zaliczeń
Kurs kończy się egzaminem. Do egzaminu można przystąpić pod
warunkiem uzyskania zaliczenia z laboratorium
Istnieje możliwość zwolnienia z egzaminu na podstawie oceny z
laboratorium i wyniku z ekranówki. Przewidywana jest ona w 14
tygodniu zajęć.
Warunki zwolnienia:
ocena z laboratorium 5,0, ocena z ekranówki 4,0
ocena z laboratorium = 4,5, ocena z ekranówki 4,5
sposób liczenia oceny z egzaminu:
Ocena z kursu = 40% oceny laboratorium + 60% oceny z ekranówek
Ocena celująca ekranówka: 5,0; laboratorium: 5,5
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Warunki zaliczeń
Kurs kończy się egzaminem. Do egzaminu można przystąpić pod
warunkiem uzyskania zaliczenia z laboratorium
Istnieje możliwość zwolnienia z egzaminu na podstawie oceny z
laboratorium i wyniku z ekranówki. Przewidywana jest ona w 14
tygodniu zajęć.
Warunki zwolnienia:
ocena z laboratorium 5,0, ocena z ekranówki 4,0
ocena z laboratorium = 4,5, ocena z ekranówki 4,5
sposób liczenia oceny z egzaminu:
Ocena z kursu = 40% oceny laboratorium + 60% oceny z ekranówek
Ocena celująca ekranówka: 5,0; laboratorium: 5,5
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Warunki zaliczeń
Kurs kończy się egzaminem. Do egzaminu można przystąpić pod
warunkiem uzyskania zaliczenia z laboratorium
Istnieje możliwość zwolnienia z egzaminu na podstawie oceny z
laboratorium i wyniku z ekranówki. Przewidywana jest ona w 14
tygodniu zajęć.
Warunki zwolnienia:
ocena z laboratorium 5,0, ocena z ekranówki 4,0
ocena z laboratorium = 4,5, ocena z ekranówki 4,5
sposób liczenia oceny z egzaminu:
Ocena z kursu = 40% oceny laboratorium + 60% oceny z ekranówek
Ocena celująca ekranówka: 5,0; laboratorium: 5,5
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Warunki zaliczeń
Kurs kończy się egzaminem. Do egzaminu można przystąpić pod
warunkiem uzyskania zaliczenia z laboratorium
Istnieje możliwość zwolnienia z egzaminu na podstawie oceny z
laboratorium i wyniku z ekranówki. Przewidywana jest ona w 14
tygodniu zajęć.
Warunki zwolnienia:
ocena z laboratorium 5,0, ocena z ekranówki 4,0
ocena z laboratorium = 4,5, ocena z ekranówki 4,5
sposób liczenia oceny z egzaminu:
Ocena z kursu = 40% oceny laboratorium + 60% oceny z ekranówek
Ocena celująca ekranówka: 5,0; laboratorium: 5,5
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Warunki zaliczeń
Kurs kończy się egzaminem. Do egzaminu można przystąpić pod
warunkiem uzyskania zaliczenia z laboratorium
Istnieje możliwość zwolnienia z egzaminu na podstawie oceny z
laboratorium i wyniku z ekranówki. Przewidywana jest ona w 14
tygodniu zajęć.
Warunki zwolnienia:
ocena z laboratorium 5,0, ocena z ekranówki 4,0
ocena z laboratorium = 4,5, ocena z ekranówki 4,5
sposób liczenia oceny z egzaminu:
Ocena z kursu = 40% oceny laboratorium + 60% oceny z ekranówek
Ocena celująca ekranówka: 5,0; laboratorium: 5,5
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Warunki zaliczeń
Kurs kończy się egzaminem. Do egzaminu można przystąpić pod
warunkiem uzyskania zaliczenia z laboratorium
Istnieje możliwość zwolnienia z egzaminu na podstawie oceny z
laboratorium i wyniku z ekranówki. Przewidywana jest ona w 14
tygodniu zajęć.
Warunki zwolnienia:
ocena z laboratorium 5,0, ocena z ekranówki 4,0
ocena z laboratorium = 4,5, ocena z ekranówki 4,5
sposób liczenia oceny z egzaminu:
Ocena z kursu = 40% oceny laboratorium + 60% oceny z ekranówek
Ocena celująca ekranówka: 5,0; laboratorium: 5,5
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Warunki zaliczeń
Kurs kończy się egzaminem. Do egzaminu można przystąpić pod
warunkiem uzyskania zaliczenia z laboratorium
Istnieje możliwość zwolnienia z egzaminu na podstawie oceny z
laboratorium i wyniku z ekranówki. Przewidywana jest ona w 14
tygodniu zajęć.
Warunki zwolnienia:
ocena z laboratorium 5,0, ocena z ekranówki 4,0
ocena z laboratorium = 4,5, ocena z ekranówki 4,5
sposób liczenia oceny z egzaminu:
Ocena z kursu = 40% oceny laboratorium + 60% oceny z ekranówek
Ocena celująca ekranówka: 5,0; laboratorium: 5,5
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Egzamin
Propozycje daty egzaminu
17.06.2010  termin I
1.07.2010  termin II
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Literatura
Literatura podstawowa:
Bjarne Stroustrup, Język C++, WNT, 2002
J. Grębosz, Symfonia C ++ standard
J. Grębosz, Pasja C ++
J. Kisilewicz, Język C++. Programowanie obiektowe
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Literatura
Literatura pomocnicza:
B. Eckel, Thinking in C++, HELION, 2002
Nicolai M. Josuttis, C++ Biblioteka standardowa, Podręcznik pro-
gramisty
David Vandevoorde, Nicolai M. Josuttis, C++ szablony
Grady Booch, James Rumbaugh, Ivar Jacobson, UML przewodnik
użytkownika
James Martin, James J. Odell, Podstawy metod obiektowych
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Literatura
Literatura pomocnicza:
B. Eckel, Thinking in C++, HELION, 2002
Nicolai M. Josuttis, C++ Biblioteka standardowa, Podręcznik pro-
gramisty
David Vandevoorde, Nicolai M. Josuttis, C++ szablony
Grady Booch, James Rumbaugh, Ivar Jacobson, UML przewodnik
użytkownika
James Martin, James J. Odell, Podstawy metod obiektowych
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Literatura
Literatura pomocnicza:
B. Eckel, Thinking in C++, HELION, 2002
Nicolai M. Josuttis, C++ Biblioteka standardowa, Podręcznik pro-
gramisty
David Vandevoorde, Nicolai M. Josuttis, C++ szablony
Grady Booch, James Rumbaugh, Ivar Jacobson, UML przewodnik
użytkownika
James Martin, James J. Odell, Podstawy metod obiektowych
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Literatura
Literatura pomocnicza:
B. Eckel, Thinking in C++, HELION, 2002
Nicolai M. Josuttis, C++ Biblioteka standardowa, Podręcznik pro-
gramisty
David Vandevoorde, Nicolai M. Josuttis, C++ szablony
Grady Booch, James Rumbaugh, Ivar Jacobson, UML przewodnik
użytkownika
James Martin, James J. Odell, Podstawy metod obiektowych
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Literatura
Literatura pomocnicza:
B. Eckel, Thinking in C++, HELION, 2002
Nicolai M. Josuttis, C++ Biblioteka standardowa, Podręcznik pro-
gramisty
David Vandevoorde, Nicolai M. Josuttis, C++ szablony
Grady Booch, James Rumbaugh, Ivar Jacobson, UML przewodnik
użytkownika
James Martin, James J. Odell, Podstawy metod obiektowych
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
1
Podejście obiektowe
Rozumienie świata
Pojęcie
Obiekty
Typy obiektowe, hierarchie typów
2
Style programowania
Zestawienie stylów programowania
3
Rola języków programowania
Przestrzeń rozwiązania, a przestrzeń problemu
Bjarne Stroustrup
Język C++  krótka geneza
4
Język C i C++  najistotniejsze różnice
Kilka przykładowych różnic
Od C do C++
Operatory jako funkcje
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Programowanie obiektowe oparte jest na podejściu obiektowym do
analizy problemu oraz syntezy i implementacji jego rozwiÄ…zania.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Programowanie obiektowe oparte jest na podejściu obiektowym do
analizy problemu oraz syntezy i implementacji jego rozwiÄ…zania.
Podejście obiektowe bazuje na fundamentalnej cesze aktywności
intelektualnej, która pozwala ludziom (i nie tylko) wyróżniać odrębne
obiekty w swoim otoczeniu, przypisywać im własności oraz określać
sposób ich interakcji między sobą i otoczeniem.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Programowanie obiektowe oparte jest na podejściu obiektowym do
analizy problemu oraz syntezy i implementacji jego rozwiÄ…zania.
Podejście obiektowe bazuje na fundamentalnej cesze aktywności
intelektualnej, która pozwala ludziom (i nie tylko) wyróżniać odrębne
obiekty w swoim otoczeniu, przypisywać im własności oraz określać
sposób ich interakcji między sobą i otoczeniem.
Wyróżnianie obiektów może być dokonywane na różne sposoby.
Oparte jest ono na obserwacji i wcześniejszej wiedzy.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Postrzeganie
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Postrzeganie
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Postrzeganie
Obserwując otoczenie jesteśmy w stanie wyodrębnić przedmioty . . .
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Postrzeganie
Obserwując otoczenie jesteśmy w stanie wyodrębnić przedmioty . . .
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Postrzeganie
Obserwując otoczenie jesteśmy w stanie wyodrębnić przedmioty i przypisać im
pojęcia.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Postrzeganie
Obserwując otoczenie jesteśmy w stanie wyodrębnić przedmioty i przypisać im
pojęcia. Proces ten nazywamy postrzeganiem.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Postrzeganie
Wyodrębnieniu może podlegać zestaw elementów, jako osobna całość.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Postrzeganie
Pojęcie odnosi się wówczas do zbioru elementów między którymi zachodzą odpo-
wiednie relacje.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Postrzeganie
Każdemu z elementów może być osobno wyróżniony poprzez przypisanie mu indy-
widualnego pojęcia.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Postrzeganie
Znajdując cechy wspólne wszystkich elementów możemy również przyporządkować
pojęcie ich zbiorowi.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Istotnym elementem aktu wyróżnienia jakiegoś tworu lub wyobrażenia
abstrakcyjnego jest przypisanie mu pewnego pojęcia.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Istotnym elementem aktu wyróżnienia jakiegoś tworu lub wyobrażenia
abstrakcyjnego jest przypisanie mu pewnego pojęcia.
Pojęcie jest wyobrażeniem lub oznaczeniem, które stosujemy
do rzeczy lub wyobrażeń abstrakcyjnych.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Istotnym elementem aktu wyróżnienia jakiegoś tworu lub wyobrażenia
abstrakcyjnego jest przypisanie mu pewnego pojęcia.
Pojęcie jest wyobrażeniem lub oznaczeniem, które stosujemy
do rzeczy lub wyobrażeń abstrakcyjnych.
Przypisywanie pojęć jest możliwe dzięki rozpoznaniu własności wspól-
nych dla reprezentantów zbiorów, do których stosuje się dane pojęcie.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Przyswojenie sobie zbioru pojęć pozwala nadawać znaczenie obiektom
znajdujÄ…cym siÄ™ w naszym otoczeniu.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Przyswojenie sobie zbioru pojęć pozwala nadawać znaczenie obiektom
znajdujÄ…cym siÄ™ w naszym otoczeniu.
Przykłady pojęć:
materialne niematerialne relacyjne zdarzenia inne
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Przyswojenie sobie zbioru pojęć pozwala nadawać znaczenie obiektom
znajdujÄ…cym siÄ™ w naszym otoczeniu.
Przykłady pojęć:
materialne niematerialne relacyjne zdarzenia inne
pojazd
budynek
atom
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Przyswojenie sobie zbioru pojęć pozwala nadawać znaczenie obiektom
znajdujÄ…cym siÄ™ w naszym otoczeniu.
Przykłady pojęć:
materialne niematerialne relacyjne zdarzenia inne
czas
pojazd
poprawność
budynek
firma
atom
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Przyswojenie sobie zbioru pojęć pozwala nadawać znaczenie obiektom
znajdujÄ…cym siÄ™ w naszym otoczeniu.
Przykłady pojęć:
materialne niematerialne relacyjne zdarzenia inne
czas
pojazd posiadanie
poprawność
budynek przynależność
firma
atom małżeństwo
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Przyswojenie sobie zbioru pojęć pozwala nadawać znaczenie obiektom
znajdujÄ…cym siÄ™ w naszym otoczeniu.
Przykłady pojęć:
materialne niematerialne relacyjne zdarzenia inne
czas
pojazd posiadanie spotkanie
poprawność
budynek przynależność zakup
firma
atom małżeństwo wyjazd
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Przyswojenie sobie zbioru pojęć pozwala nadawać znaczenie obiektom
znajdujÄ…cym siÄ™ w naszym otoczeniu.
Przykłady pojęć:
materialne niematerialne relacyjne zdarzenia inne
czas wzorowy
pojazd posiadanie spotkanie
poprawność nietypowy
budynek przynależność zakup
firma ikona
atom małżeństwo wyjazd
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Termin pojęcie zawiera:
intensję  treść pojęcia
ekstensję  zakres pojęcia
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Termin pojęcie zawiera:
intensję  treść pojęcia
ekstensję  zakres pojęcia
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Termin pojęcie zawiera:
intensję  treść pojęcia
ekstensję  zakres pojęcia
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Termin pojęcie zawiera:
intensję  treść pojęcia
ekstensję  zakres pojęcia
Intensja jest pełną definicją pojęcia i testu określającego, czy dane
pojęcie odnosi się do danej rzeczy lub wyobrażenia abstrakcyjnego.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Termin pojęcie zawiera:
intensję  treść pojęcia
ekstensję  zakres pojęcia
Intensja jest pełną definicją pojęcia i testu określającego, czy dane
pojęcie odnosi się do danej rzeczy lub wyobrażenia abstrakcyjnego.
Ekstensja jest zbiorem wszystkich rzeczy i wyobrażeń abstrakcyj-
nych, do których stosuje się dane pojęcie.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Czym jest pojęcie
Termin pojęcie zawiera:
intensję  treść pojęcia
ekstensję  zakres pojęcia
Intensja jest pełną definicją pojęcia i testu określającego, czy dane
pojęcie odnosi się do danej rzeczy lub wyobrażenia abstrakcyjnego.
Ekstensja jest zbiorem wszystkich rzeczy i wyobrażeń abstrakcyjnych,
do których stosuje się dane pojęcie.
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Robot przemysłowy
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Robot przemysłowy
nazwa
intensja ekstensja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Robot przemysłowy
nazwa
Robot przemysłowy
intensja ekstensja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Robot przemysłowy
nazwa
Robot przemysłowy
intensja ekstensja
Maszyna manipulacyjna sterowana au-
tomatycznie za pomocą sygnałów ge-
nerowanych w programowalnym ukła-
dzie sterowania.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Robot przemysłowy
nazwa
Robot przemysłowy
intensja ekstensja
Maszyna manipulacyjna sterowana au- iRb-6, IRB1400,
tomatycznie za pomocą sygnałów ge- Puma 560, . . .
nerowanych w programowalnym ukła-
dzie sterowania.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Robot przemysłowy
nazwa
Robot przemysłowy
intensja ekstensja
Maszyna manipulacyjna sterowana au- iRb-6, IRB1400,
tomatycznie za pomocą sygnałów ge- Puma 560, . . .
nerowanych w programowalnym ukła-
dzie sterowania.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
nazwa
intensja ekstensja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Idealny człowiek
nazwa
intensja ekstensja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Idealny człowiek
nazwa
Idealny człowiek
intensja ekstensja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Idealny człowiek
nazwa
Idealny człowiek
intensja ekstensja
Uczciwy, rzetelny, . . .
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Idealny człowiek
nazwa
Idealny człowiek
intensja ekstensja
Uczciwy, rzetelny, . . .
×
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Idealny człowiek
nazwa
Idealny człowiek
intensja ekstensja
Uczciwy, rzetelny, . . .
×
Niektóre pojęcia mogą nie mieć swoich reprezentantów.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
nazwa
intensja ekstensja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
40S25
nazwa
intensja ekstensja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
40S25
nazwa
40S25
intensja ekstensja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
40S25
nazwa
40S25
intensja ekstensja
×
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
40S25
nazwa
40S25
intensja ekstensja
40S25, 40S25, . . .
×
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
40S25
nazwa
40S25
intensja ekstensja
40S25, 40S25, . . .
×
Pojęcie może nie mieć swojej definicji. Przykład układu scalonego, którego
dokumentacja i opis zostały zagubione.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
nazwa
intensja ekstensja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Klient
nazwa
intensja ekstensja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Klient
nazwa
Klient
intensja ekstensja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Klient
nazwa
Klient
intensja ekstensja
Osoba lub organizacja kupujÄ…ca dobra
lub usługi.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Klient
nazwa
Klient
intensja ekstensja
Osoba lub organizacja kupujÄ…ca dobra Jan Kowalski,
lub usługi. Firma Jana Kowalskiego
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Klient
nazwa
Klient
intensja ekstensja
Osoba lub organizacja kupujÄ…ca dobra Jan Kowalski,
lub usługi. Firma Jana Kowalskiego
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Klient, Interesant
nazwa
Klient, Interesant
intensja ekstensja
Osoba lub organizacja kupujÄ…ca dobra Jan Kowalski,
lub usługi. Firma Jana Kowalskiego
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Klient, Interesant
nazwa
Klient, Interesant
intensja ekstensja
Osoba lub organizacja kupujÄ…ca dobra Jan Kowalski,
lub usługi. Firma Jana Kowalskiego
Pojęcia mogą mieć synonimy.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Klient
nazwa
Klient
intensja ekstensja
Osoba lub organizacja kupujÄ…ca dobra Jan Kowalski,
lub usługi. Firma Jana Kowalskiego
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Klient
nazwa
Klient
intensja ekstensja
Osoba lub organizacja kupujÄ…ca dobra Jan Kowalski,
lub usługi. Firma Jana Kowalskiego
Aplikacja programowa, która żąda od xclock,xterm, . . .
innej aplikacji realizacji usług.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykłady trójek pojęciowych
Trójka pojęciowa = (nazwa, intensja, ekstensja)
Klient
nazwa
Klient
intensja ekstensja
Osoba lub organizacja kupujÄ…ca dobra Jan Kowalski,
lub usługi. Firma Jana Kowalskiego
Aplikacja programowa, która żąda od xclock,xterm, . . .
innej aplikacji realizacji usług.
Pojęcia mogą mieć homonimy.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Obiekt ?! Co to takiego ???
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Obiektem jest to coś, do czego da się zastosować ja-
kieś pojęcie. Tak więc obiekt jest egzemplarzem poję-
cia.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Obiektem jest to coś, do czego da się zastosować ja-
kieś pojęcie. Tak więc obiekt jest egzemplarzem poję-
cia.
PojÄ™cie =Ò! robot przemysÅ‚owy
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Obiektem jest to coś, do czego da się zastosować ja-
kieś pojęcie. Tak więc obiekt jest egzemplarzem poję-
cia.
PojÄ™cie =Ò! robot przemysÅ‚owy
Obiekt =Ò! konkretny egzemplarz robota, np. robota IRB1400
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Własności:
Obiekt może mieć cechy, którym przypisywane są nazwy,
np. kulistość.
Obiekt może mieć atrybuty, np. promień kuli.
Obiektowi możemy przyporządkować stan. Stan obiektu
jest kolekcją atrybutów i związków dotyczących danego
obiektu. Zmiana stanu jest zmianÄ… atrybutu i/lub
związków danego obiektu (np. położenie obiektu  x, y, z).
Obiekt może mieć pewien ograniczony czas życia.
Obiekt może być powiązany z innymi obiektami poprzez
odwzorowania lub relacje. Odwzorowania i relacje mogÄ…
także być modelowane jako obiekty.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Własności:
Obiekt może mieć cechy, którym przypisywane są nazwy,
np. kulistość.
Obiekt może mieć atrybuty, np. promień kuli.
Obiektowi możemy przyporządkować stan. Stan obiektu
jest kolekcją atrybutów i związków dotyczących danego
obiektu. Zmiana stanu jest zmianÄ… atrybutu i/lub
związków danego obiektu (np. położenie obiektu  x, y, z).
Obiekt może mieć pewien ograniczony czas życia.
Obiekt może być powiązany z innymi obiektami poprzez
odwzorowania lub relacje. Odwzorowania i relacje mogÄ…
także być modelowane jako obiekty.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Własności:
Obiekt może mieć cechy, którym przypisywane są nazwy,
np. kulistość.
Obiekt może mieć atrybuty, np. promień kuli.
Obiektowi możemy przyporządkować stan. Stan obiektu
jest kolekcją atrybutów i związków dotyczących danego
obiektu. Zmiana stanu jest zmianÄ… atrybutu i/lub
związków danego obiektu (np. położenie obiektu  x, y, z).
Obiekt może mieć pewien ograniczony czas życia.
Obiekt może być powiązany z innymi obiektami poprzez
odwzorowania lub relacje. Odwzorowania i relacje mogÄ…
także być modelowane jako obiekty.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Własności:
Obiekt może mieć cechy, którym przypisywane są nazwy,
np. kulistość.
Obiekt może mieć atrybuty, np. promień kuli.
Obiektowi możemy przyporządkować stan. Stan obiektu
jest kolekcją atrybutów i związków dotyczących danego
obiektu. Zmiana stanu jest zmianÄ… atrybutu i/lub
związków danego obiektu (np. położenie obiektu  x, y, z).
Obiekt może mieć pewien ograniczony czas życia.
Obiekt może być powiązany z innymi obiektami poprzez
odwzorowania lub relacje. Odwzorowania i relacje mogÄ…
także być modelowane jako obiekty.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Własności:
Obiekt może mieć cechy, którym przypisywane są nazwy,
np. kulistość.
Obiekt może mieć atrybuty, np. promień kuli.
Obiektowi możemy przyporządkować stan. Stan obiektu
jest kolekcją atrybutów i związków dotyczących danego
obiektu. Zmiana stanu jest zmianÄ… atrybutu i/lub
związków danego obiektu (np. położenie obiektu  x, y, z).
Obiekt może mieć pewien ograniczony czas życia.
Obiekt może być powiązany z innymi obiektami poprzez
odwzorowania lub relacje. Odwzorowania i relacje mogÄ…
także być modelowane jako obiekty.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Własności:
Obiekt może mieć cechy, którym przypisywane są nazwy,
np. kulistość.
Obiekt może mieć atrybuty, np. promień kuli.
Obiektowi możemy przyporządkować stan. Stan obiektu
jest kolekcją atrybutów i związków dotyczących danego
obiektu. Zmiana stanu jest zmianÄ… atrybutu i/lub
związków danego obiektu (np. położenie obiektu  x, y, z).
Obiekt może mieć pewien ograniczony czas życia.
Obiekt może być powiązany z innymi obiektami poprzez
odwzorowania lub relacje. Odwzorowania i relacje mogÄ…
także być modelowane jako obiekty.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Własności:
Obiekt może mieć cechy, którym przypisywane są nazwy,
np. kulistość.
Obiekt może mieć atrybuty, np. promień kuli.
Obiektowi możemy przyporządkować stan. Stan obiektu
jest kolekcją atrybutów i związków dotyczących danego
obiektu. Zmiana stanu jest zmianÄ… atrybutu i/lub
związków danego obiektu (np. położenie obiektu  x, y, z).
Obiekt może mieć pewien ograniczony czas życia.
Obiekt może być powiązany z innymi obiektami poprzez
odwzorowania lub relacje. Odwzorowania i relacje mogÄ…
także być modelowane jako obiekty.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Własności:
Obiekt może mieć cechy, którym przypisywane są nazwy,
np. kulistość.
Obiekt może mieć atrybuty, np. promień kuli.
Obiektowi możemy przyporządkować stan. Stan obiektu
jest kolekcją atrybutów i związków dotyczących danego
obiektu. Zmiana stanu jest zmianÄ… atrybutu i/lub
związków danego obiektu (np. położenie obiektu  x, y, z).
Obiekt może mieć pewien ograniczony czas życia.
Obiekt może być powiązany z innymi obiektami poprzez
odwzorowania lub relacje. Odwzorowania i relacje mogÄ…
także być modelowane jako obiekty.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Obiekty
Własności:
Obiekt może mieć cechy, którym przypisywane są nazwy,
np. kulistość.
Obiekt może mieć atrybuty, np. promień kuli.
Obiektowi możemy przyporządkować stan. Stan obiektu
jest kolekcją atrybutów i związków dotyczących danego
obiektu. Zmiana stanu jest zmianÄ… atrybutu i/lub
związków danego obiektu (np. położenie obiektu  x, y, z).
Obiekt może mieć pewien ograniczony czas życia.
Obiekt może być powiązany z innymi obiektami poprzez
odwzorowania lub relacje. Odwzorowania i relacje mogÄ…
także być modelowane jako obiekty.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Typ obiektowy
Typ obiektowy ???
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Typ obiektowy
Typ obiektowy jest pojęciem, tzn. jest koncepcją lub
ideą, którą stosujemy do obiektów występujących w
naszej świadomości.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Typ obiektowy
Typ obiektowy jest pojęciem, tzn. jest koncepcją lub
ideą, którą stosujemy do obiektów występujących w
naszej świadomości.
Typ obiektowy jest typem obiektu.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Typ obiektowy
Typ obiektowy jest pojęciem, tzn. jest koncepcją lub
ideą, którą stosujemy do obiektów występujących w
naszej świadomości.
Typ obiektowy jest typem obiektu.
Przykład typów obiektowych:
robot przemysłowy,
pojazd,
idealny człowiek,
wektor,
równanie liniowe.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Typ obiektowy
Własności:
Typ obiektowy jest też pojęciem.
Do pojedynczego obiektu może stosować się
wiele pojęć (typów obiektowych).
Typy obiektowe mogą tworzyć hierarchię od
bardzo ogólnych pojęć do pojęć szczegółowych.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Typ obiektowy
Własności:
Typ obiektowy jest też pojęciem.
Do pojedynczego obiektu może stosować się
wiele pojęć (typów obiektowych).
Typy obiektowe mogą tworzyć hierarchię od
bardzo ogólnych pojęć do pojęć szczegółowych.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Typ obiektowy
Własności:
Typ obiektowy jest też pojęciem.
Do pojedynczego obiektu może stosować się
wiele pojęć (typów obiektowych).
Typy obiektowe mogą tworzyć hierarchię od
bardzo ogólnych pojęć do pojęć szczegółowych.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Typ obiektowy
Własności:
Typ obiektowy jest też pojęciem.
Do pojedynczego obiektu może stosować się
wiele pojęć (typów obiektowych).
Typy obiektowe mogą tworzyć hierarchię od
bardzo ogólnych pojęć do pojęć szczegółowych.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Przykład hierarchii
maszyna
Ä™!
pojazd
Ä™!
samochód
Ä™!
Ferrante V Concept
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Hierarchie typów obiektowych możemy tworzyć po-
przez uogólnienie lub uszczegółowienie danego typu
obiektowego.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Hierarchie typów obiektowych możemy tworzyć po-
przez uogólnienie lub uszczegółowienie danego typu
obiektowego.
Przykład uogólnienia:
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Hierarchie typów obiektowych możemy tworzyć po-
przez uogólnienie lub uszczegółowienie danego typu
obiektowego.
Przykład uogólnienia:
Samochód
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Hierarchie typów obiektowych możemy tworzyć po-
przez uogólnienie lub uszczegółowienie danego typu
obiektowego.
Pojazd
Przykład uogólnienia:
Ä™!
Samochód
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Hierarchie typów obiektowych możemy tworzyć po-
przez uogólnienie lub uszczegółowienie danego typu
obiektowego.
Pojazd
Przykład uogólnienia:
Ä™!
Samochód
Uogólnienie jest aktem lub wynikiem wyróżnienia ty-
pu obiektowego, który całkowicie zawiera (obejmuje)
inny typ obiektowy.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Hierarchie typów obiektowych możemy tworzyć po-
przez uogólnienie lub uszczegółowienie danego typu
obiektowego.
Przykład uszczegółowienia:
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Hierarchie typów obiektowych możemy tworzyć po-
przez uogólnienie lub uszczegółowienie danego typu
obiektowego.
Pojazd
Przykład uszczegółowienia:
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Hierarchie typów obiektowych możemy tworzyć po-
przez uogólnienie lub uszczegółowienie danego typu
obiektowego.
Pojazd
Przykład uszczegółowienia:
Ä™!
Quad
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Hierarchie typów obiektowych możemy tworzyć po-
przez uogólnienie lub uszczegółowienie danego typu
obiektowego.
Pojazd
Przykład uszczegółowienia:
Ä™!
Quad
Specjalizowanie jest aktem lub wynikiem wyróżnie-
nia typu obiektowego, który całkowicie zawiera się w
innym typie obiektowym.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchia typów
Typ
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchia typów
Nadtyp
Ä™!
Typ
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchia typów
Nadtyp
Ä™!
Typ
Ä™!
Podtyp
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchia typów
Nadtyp  definicja jest ogólniejsza niż definicja
innego typu, którego elementy zawarte są
Ä™! w zbiorze danego typu obiektowego.
Typ
Ä™!
Podtyp
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchia typów
Nadtyp  definicja jest ogólniejsza niż definicja
innego typu, którego elementy zawarte są
Ä™! w zbiorze danego typu obiektowego.
Typ
Ä™!
Podtyp  definicja jest bardziej wyspecjalizowa-
na niż definicja innego typu zawierającego
między innymi również te same obiekty.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchia typów  przykład
Nadtyp
Ä™!
Typ
Ä™!
Podtyp
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchia typów  przykład
Nadtyp
Ä™!
Typ - Samochód
Ä™!
Podtyp
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchia typów  przykład
Nadtyp - Pojazd
Ä™!
Typ - Samochód
Ä™!
Podtyp
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchia typów  przykład
Nadtyp - Pojazd
Ä™!
Typ - Samochód
Ä™!
Podtyp - Kabriolet
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Uogólnienie i specjalizowanie pozwalają tworzyć hierarchię
abstrakcji. Pomagają one lepiej zrozumieć znaczenie danego
typu obiektowego w kontekście hierarchii typów. Tym samym
pomagają lepiej zamodelować rozwiązanie problemu.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Uogólnienie i specjalizowanie pozwalają tworzyć hierarchię
abstrakcji. Pomagają one lepiej zrozumieć znaczenie danego
typu obiektowego w kontekście hierarchii typów. Tym samym
pomagają lepiej zamodelować rozwiązanie problemu.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Uogólnienie i specjalizowanie pozwalają tworzyć hierarchię
abstrakcji. Pomagają one lepiej zrozumieć znaczenie danego
typu obiektowego w kontekście hierarchii typów. Tym samym
pomagają lepiej zamodelować rozwiązanie problemu.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Uogólnienie i specjalizowanie pozwalają tworzyć hierarchię
abstrakcji. Pomagają one lepiej zrozumieć znaczenie danego
typu obiektowego w kontekście hierarchii typów. Tym samym
pomagają lepiej zamodelować rozwiązanie problemu.
Jak w językach programowania wspierane jest tworzenie hierarchii
typów?
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Hierarchie typów obiektowych
Uogólnienie i specjalizowanie pozwalają tworzyć hierarchię
abstrakcji. Pomagają one lepiej zrozumieć znaczenie danego
typu obiektowego w kontekście hierarchii typów. Tym samym
pomagają lepiej zamodelować rozwiązanie problemu.
Do definiowania podtypów w językach programowania wspierają-
cych paradygmat obiektowy wykorzystywane jest dziedziczenie.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Dziedziczenie
IstniejÄ… dwa typy dziedziczenia:
jednobazowe
wielobazowe
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Dziedziczenie
IstniejÄ… dwa typy dziedziczenia:
jednobazowe
wielobazowe
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Dziedziczenie
IstniejÄ… dwa typy dziedziczenia:
jednobazowe
wielobazowe
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Dziedziczenie
IstniejÄ… dwa typy dziedziczenia:
jednobazowe  dany typ dziedziczy bezpośrednio
tylko jeden nadtyp,
wielobazowe
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Dziedziczenie
IstniejÄ… dwa typy dziedziczenia:
jednobazowe  dany typ dziedziczy bezpośrednio
tylko jeden nadtyp,
wielobazowe  dany typ może dziedziczyć
bezpośrednio wiele nadtypów.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Dziedziczenie
Przykład:
jednobazowe
wielobazowe
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Dziedziczenie
Przykład:
jednobazowe
Jabłko
wielobazowe
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Dziedziczenie
Przykład:
Owoc
Ä™!
jednobazowe
Jabłko
wielobazowe
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Dziedziczenie
Przykład:
Owoc
Ä™!
jednobazowe
Jabłko
wielobazowe
Dzwig samobieżny
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Dziedziczenie
Przykład:
Owoc
Ä™!
jednobazowe
Jabłko
wielobazowe
Dzwig Pojazd

Dzwig samobieżny
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Metody
Cechą charakterystyczną podejścia obiektowego i języków obiek-
towych jest ścisłe powiązanie operacji z danymi, na których są
one wykonywane.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Metody
Cechą charakterystyczną podejścia obiektowego i języków obiek-
towych jest ścisłe powiązanie operacji z danymi, na których są
one wykonywane. Przejawem tego jest to, że dla każdego typu
obiektowego można zdefiniować metody.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Metody
Cechą charakterystyczną podejścia obiektowego i języków obiek-
towych jest ścisłe powiązanie operacji z danymi, na których są
one wykonywane. Przejawem tego jest to, że dla każdego typu
obiektowego można zdefiniować metody.
Metoda jest specyfikacjÄ… sposobu wykonania sekwencji operacji.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Podsumowanie - najważniejsze terminy
Obiekt
Typ obiektowy
Metoda
Dziedziczenie
Polimorfizm
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Podsumowanie - najważniejsze terminy
Obiekt
Typ obiektowy
Metoda
Dziedziczenie
Polimorfizm
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Podsumowanie - najważniejsze terminy
Obiekt
Typ obiektowy
Metoda
Dziedziczenie
Polimorfizm
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Podsumowanie - najważniejsze terminy
Obiekt
Typ obiektowy
Metoda
Dziedziczenie
Polimorfizm
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Podsumowanie - najważniejsze terminy
Obiekt
Typ obiektowy
Metoda
Dziedziczenie
Polimorfizm
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
Podsumowanie - najważniejsze terminy
Obiekt
Typ obiektowy
Metoda
Dziedziczenie
Polimorfizm
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
SkÄ…d siÄ™ biorÄ… typy (ciemne?)
Przejściu od sformułowania problemu do jego rozwiązania w po-
staci działające systemu towarzyszą zwykle trzy fazy:
Analiza
Projektowanie
Konstrukcja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
SkÄ…d siÄ™ biorÄ… typy (ciemne?)
Przejściu od sformułowania problemu do jego rozwiązania w po-
staci działające systemu towarzyszą zwykle trzy fazy:
Analiza
Projektowanie
Konstrukcja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
SkÄ…d siÄ™ biorÄ… typy (ciemne?)
Przejściu od sformułowania problemu do jego rozwiązania w po-
staci działające systemu towarzyszą zwykle trzy fazy:
Analiza
Projektowanie
Konstrukcja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
SkÄ…d siÄ™ biorÄ… typy (ciemne?)
Przejściu od sformułowania problemu do jego rozwiązania w po-
staci działające systemu towarzyszą zwykle trzy fazy:
Analiza
Projektowanie
Konstrukcja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
SkÄ…d siÄ™ biorÄ… typy (ciemne?)
Przejściu od sformułowania problemu do jego rozwiązania w po-
staci działające systemu towarzyszą zwykle trzy fazy:
Analiza  jest odwzorowaniem rzeczywistego świata na
jego model koncepcyjny
Projektowanie
Konstrukcja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
SkÄ…d siÄ™ biorÄ… typy (ciemne?)
Przejściu od sformułowania problemu do jego rozwiązania w po-
staci działające systemu towarzyszą zwykle trzy fazy:
Analiza  jest odwzorowaniem rzeczywistego świata na
jego model koncepcyjny
Projektowanie  jest odwzorowaniem modelu
koncepcyjnego na model implementacji.
Konstrukcja
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
SkÄ…d siÄ™ biorÄ… typy (ciemne?)
Przejściu od sformułowania problemu do jego rozwiązania w po-
staci działające systemu towarzyszą zwykle trzy fazy:
Analiza  jest odwzorowaniem rzeczywistego świata na
jego model koncepcyjny
Projektowanie  jest odwzorowaniem modelu
koncepcyjnego na model implementacji.
Konstrukcja  jest odwzorowaniem modelu implementacji
na działający system.
Programowanie obiektowe
Podejście obiektowe Rozumienie świata
Style programowania Pojęcie
Rola języków programowania Obiekty
Język C i C++  najistotniejsze różnice Typy obiektowe, hierarchie typów
SkÄ…d siÄ™ biorÄ… typy (ciemne?)
Przejściu od sformułowania problemu do jego rozwiązania w po-
staci działające systemu towarzyszą zwykle trzy fazy:
Analiza  jest odwzorowaniem rzeczywistego świata na
jego model koncepcyjny
Projektowanie  jest odwzorowaniem modelu
koncepcyjnego na model implementacji.
Konstrukcja  jest odwzorowaniem modelu implementacji
na działający system.
Etapy te nie muszą przebiegać sekwencyjnie. Wszystko zależy od
przyjętych technik i strategii rozwiązywania danego problemu.
Programowanie obiektowe
Podejście obiektowe
Style programowania
Zestawienie stylów programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Ważniejsze style
Programowanie proceduralne
Programowanie modularne
Programowanie z abstrakcjÄ… danych
Programowanie obiektowe
Programowanie uogólnione
Programowanie obiektowe
Podejście obiektowe
Style programowania
Zestawienie stylów programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Ważniejsze style
Programowanie proceduralne
Programowanie modularne
Programowanie z abstrakcjÄ… danych
Programowanie obiektowe
Programowanie uogólnione
Programowanie obiektowe
Podejście obiektowe
Style programowania
Zestawienie stylów programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Ważniejsze style
Programowanie proceduralne
Programowanie modularne
Programowanie z abstrakcjÄ… danych
Programowanie obiektowe
Programowanie uogólnione
Programowanie obiektowe
Podejście obiektowe
Style programowania
Zestawienie stylów programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Ważniejsze style
Programowanie proceduralne
Programowanie modularne
Programowanie z abstrakcjÄ… danych
Programowanie obiektowe
Programowanie uogólnione
Programowanie obiektowe
Podejście obiektowe
Style programowania
Zestawienie stylów programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Ważniejsze style
Programowanie proceduralne
Programowanie modularne
Programowanie z abstrakcjÄ… danych
Programowanie obiektowe
Programowanie uogólnione
Programowanie obiektowe
Podejście obiektowe
Style programowania
Zestawienie stylów programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Ważniejsze style
Programowanie proceduralne
Nacisk kładzie się na przetwarzanie, tzn. zbudowania algo-
rytmu potrzebnego do wykonania wymaganych obliczeń.
Programowanie modularne
Programowanie z abstrakcjÄ… danych
Programowanie obiektowe
Programowanie uogólnione
Programowanie obiektowe
Podejście obiektowe
Style programowania
Zestawienie stylów programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Ważniejsze style
Programowanie proceduralne
Programowanie modularne
Uwypukla powiÄ…zanie danych z procedurami oraz ukrywa
dane, które wykorzystywane są tylko w pewnych blokach
obliczeniowych reprezentowanych przez moduły.
Programowanie z abstrakcjÄ… danych
Programowanie obiektowe
Programowanie uogólnione
Programowanie obiektowe
Podejście obiektowe
Style programowania
Zestawienie stylów programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Ważniejsze style
Programowanie proceduralne
Programowanie modularne
Programowanie z abstrakcjÄ… danych
Zakłada możliwość definiowania typów, które mają te same
własności jak typy wbudowane.
Programowanie obiektowe
Programowanie uogólnione
Programowanie obiektowe
Podejście obiektowe
Style programowania
Zestawienie stylów programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Ważniejsze style
Programowanie proceduralne
Programowanie modularne
Programowanie z abstrakcjÄ… danych
Programowanie obiektowe
Tworzenie struktur pochodnych poprzez dziedziczenie z
możliwością modyfikacji dzięki polimorfizmowi. Hermetyza-
cja wybranych struktur.
Programowanie uogólnione
Programowanie obiektowe
Podejście obiektowe
Style programowania
Zestawienie stylów programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
Ważniejsze style
Programowanie proceduralne
Programowanie modularne
Programowanie z abstrakcjÄ… danych
Programowanie obiektowe
Programowanie uogólnione
Umożliwia tworzenie parametryzowanych struktur i funk-
cji/procedur, dla których parametrami jest typ danych.
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Przestrzenie ...
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Przestrzenie ...
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Przestrzenie ...
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Przestrzenie ...
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Przestrzenie ...
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Bjarne Stroustrup
Bjarne Stroustrup  (ur. 30.12.1950  Århus, Dania) jest twórcÄ…
języka C++ i nadal aktywnie uczestniczy w jego dalszym rozwoju.
Inspiracją do stworzenia tego typu języka były problemy i spostrze-
żenia, których dokonał w trakcie swoich prac nad doktoratem w
Uniwersytecie Cambridge.
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Historia narodzin
TÅ‚o akcji:
Bezpośrednim przyczynkiem do powstania koncepcji języka C++ były prace
Stroustrupa w Cambridge nad doktoratem. W trakcie swoich prac miał zbadać
różne organizacje systemowego oprogramowania w systemach rozproszonych.
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Historia narodzin
TÅ‚o akcji:
Bezpośrednim przyczynkiem do powstania koncepcji języka C++ były prace
Stroustrupa w Cambridge nad doktoratem. W trakcie swoich prac miał zbadać
różne organizacje systemowego oprogramowania w systemach rozproszonych.
Zdarzenia:
Udana (w sensie konstrukcji aplikacji) realizacja symulatora systemu
rozproszonego z wykorzystaniem Simuli. Pojęcie klasy w Simuli było
bardzo pomocne na etapie projektu i implementacji.
Poważne problemy związane z wydajnością programów napisanego w
Simuli zmusza do poszukiwania bardziej wydajnego narzędzia.
Traumatycznie bolesne doświadczenia związane z koniecznością
implementacji symulatora w oparciu o język BCPL. Osiągnięta została
bardzo dobra wydajność kosztem wielu problemów przy realizacji
implementacji.
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Historia narodzin
Epilog:
Po zakończeniu prac nad doktoratem Stroustrup postanawia stworzyć język
programowania, który łączyłby koncepcje klas z Simuli oraz elastyczność
tego języka z efektywnością kodu języka BCPL.
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Niektóre spostrzeżenia cz. 1
Kompilator Simuli dobrze wychwytywał błędy typu. Błędy te
przeważnie były albo wynikiem  głupich pomyłek w trakcie
programowania albo też potknięć koncepcyjnych.
Ten drugi rodzaj błędów ma wręcz fundamentalne znaczenie dla
procesu projektowania i pisania oprogramowania (autor kursu pozwolił
sobie tę uwagę wzmocnić).
Żaden inny prosty system sprawdzania ścisłej zgodności typów nie
dostarczył tego rodzaju wsparcia.
Przykładem może być system Pascala. Sprawiał on więcej kłopotów
niż pozwalał ich uniknąć. Zmuszał do modyfikacji projektu, aby
dostosować go do warunków narzuconych przez implementację (co
nie zmienia faktu, że jest to bardzo dobry język dla początkowego kursu nauki
informatyki - uwaga autora kursu).
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Niektóre spostrzeżenia cz. 1
Kompilator Simuli dobrze wychwytywał błędy typu. Błędy te
przeważnie były albo wynikiem  głupich pomyłek w trakcie
programowania albo też potknięć koncepcyjnych.
Ten drugi rodzaj błędów ma wręcz fundamentalne znaczenie dla
procesu projektowania i pisania oprogramowania (autor kursu pozwolił
sobie tę uwagę wzmocnić).
Żaden inny prosty system sprawdzania ścisłej zgodności typów nie
dostarczył tego rodzaju wsparcia.
Przykładem może być system Pascala. Sprawiał on więcej kłopotów
niż pozwalał ich uniknąć. Zmuszał do modyfikacji projektu, aby
dostosować go do warunków narzuconych przez implementację (co
nie zmienia faktu, że jest to bardzo dobry język dla początkowego kursu nauki
informatyki - uwaga autora kursu).
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Niektóre spostrzeżenia cz. 2
Pojęcie klasy było zasadniczym elementem różniącym  sztywny
Pascal od  elastycznej Simuli.
Wyczerpujące sprawdzanie zgodności typów w Simuli sprawiało, że
liczba problemów i błędów nie wzrastała szybciej niż liniowo wraz ze
wzrostem programu.
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Niektóre spostrzeżenia cz. 2
Pojęcie klasy było zasadniczym elementem różniącym  sztywny
Pascal od  elastycznej Simuli.
Wyczerpujące sprawdzanie zgodności typów w Simuli sprawiało, że
liczba problemów i błędów nie wzrastała szybciej niż liniowo wraz ze
wzrostem programu.
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Genealogia
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Dlaczego C
C jest językiem elastycznym  nie ma wewnętrznych ograniczeń
wykluczających możliwość napisania jakiegoś rodzaju programu,
tzn. można korzystać w nim z większości technik programowania.
C jest językiem wydajnym  semantyka języka znajduje się na
 niskim poziomie , tzn. podstawowe pojęcia języka
odzwierciedlają podstawowe pojęcia tradycyjnego komputera.
C jest językiem szeroko dostępnym  implementacje tego języka
istnieją zarówno dla mikrokomputerów jak też dla dużych
superkomputerów.
C jest językiem przenośnym  programy napisane w C zazwyczaj
nie można automatycznie przenosić z jednego systemu
operacyjnego do drugiego. Jednak przenośność z uwzględnieniem
odpowiednich uwarunkowań jest możliwa.
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Dlaczego C
C jest językiem elastycznym  nie ma wewnętrznych ograniczeń
wykluczających możliwość napisania jakiegoś rodzaju programu,
tzn. można korzystać w nim z większości technik programowania.
C jest językiem wydajnym  semantyka języka znajduje się na
 niskim poziomie , tzn. podstawowe pojęcia języka
odzwierciedlają podstawowe pojęcia tradycyjnego komputera.
C jest językiem szeroko dostępnym  implementacje tego języka
istnieją zarówno dla mikrokomputerów jak też dla dużych
superkomputerów.
C jest językiem przenośnym  programy napisane w C zazwyczaj
nie można automatycznie przenosić z jednego systemu
operacyjnego do drugiego. Jednak przenośność z uwzględnieniem
odpowiednich uwarunkowań jest możliwa.
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Dlaczego C
C jest językiem elastycznym  nie ma wewnętrznych ograniczeń
wykluczających możliwość napisania jakiegoś rodzaju programu,
tzn. można korzystać w nim z większości technik programowania.
C jest językiem wydajnym  semantyka języka znajduje się na
 niskim poziomie , tzn. podstawowe pojęcia języka
odzwierciedlają podstawowe pojęcia tradycyjnego komputera.
C jest językiem szeroko dostępnym  implementacje tego języka
istnieją zarówno dla mikrokomputerów jak też dla dużych
superkomputerów.
C jest językiem przenośnym  programy napisane w C zazwyczaj
nie można automatycznie przenosić z jednego systemu
operacyjnego do drugiego. Jednak przenośność z uwzględnieniem
odpowiednich uwarunkowań jest możliwa.
Programowanie obiektowe
Podejście obiektowe
Przestrzeń rozwiązania, a przestrzeń problemu
Style programowania
Bjarne Stroustrup
Rola języków programowania
Język C++  krótka geneza
Język C i C++  najistotniejsze różnice
Dlaczego C
C jest językiem elastycznym  nie ma wewnętrznych ograniczeń
wykluczających możliwość napisania jakiegoś rodzaju programu,
tzn. można korzystać w nim z większości technik programowania.
C jest językiem wydajnym  semantyka języka znajduje się na
 niskim poziomie , tzn. podstawowe pojęcia języka
odzwierciedlają podstawowe pojęcia tradycyjnego komputera.
C jest językiem szeroko dostępnym  implementacje tego języka
istnieją zarówno dla mikrokomputerów jak też dla dużych
superkomputerów.
C jest językiem przenośnym  programy napisane w C zazwyczaj
nie można automatycznie przenosić z jednego systemu
operacyjnego do drugiego. Jednak przenośność z uwzględnieniem
odpowiednich uwarunkowań jest możliwa.
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
C++ nie jest nadzbiorem C
Deklaracja stałych. Zachowanie zgodności wymaga jawnego dowiązania.
ANSI C: const int Zm=23; a" extern const int Zm=23;
ANSI/ISO C++: const int Zm=23; a" static const int Zm=23;
Rozmiary stałych znakowych:
ANSI C: sizeof ( a ) a" sizeof (int)
ANSI/ISO C++: sizeof ( a ) a" sizeof (char)
Nie zadeklarowane funkcje:
ANSI C: przyjmowane jest automatycznie int fun(...).
ANSI/ISO C++: jest to niedopuszczalne.
Deklaracja extern int fun():
ANSI C: równoważna extern int fun(...).
ANSI/ISO C++: extern int fun(void).
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
C++ nie jest nadzbiorem C
Deklaracja stałych. Zachowanie zgodności wymaga jawnego dowiązania.
ANSI C: const int Zm=23; a" extern const int Zm=23;
ANSI/ISO C++: const int Zm=23; a" static const int Zm=23;
Rozmiary stałych znakowych:
ANSI C: sizeof ( a ) a" sizeof (int)
ANSI/ISO C++: sizeof ( a ) a" sizeof (char)
Nie zadeklarowane funkcje:
ANSI C: przyjmowane jest automatycznie int fun(...).
ANSI/ISO C++: jest to niedopuszczalne.
Deklaracja extern int fun():
ANSI C: równoważna extern int fun(...).
ANSI/ISO C++: extern int fun(void).
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
C++ nie jest nadzbiorem C
Deklaracja stałych. Zachowanie zgodności wymaga jawnego dowiązania.
ANSI C: const int Zm=23; a" extern const int Zm=23;
ANSI/ISO C++: const int Zm=23; a" static const int Zm=23;
Rozmiary stałych znakowych:
ANSI C: sizeof ( a ) a" sizeof (int)
ANSI/ISO C++: sizeof ( a ) a" sizeof (char)
Nie zadeklarowane funkcje:
ANSI C: przyjmowane jest automatycznie int fun(...).
ANSI/ISO C++: jest to niedopuszczalne.
Deklaracja extern int fun():
ANSI C: równoważna extern int fun(...).
ANSI/ISO C++: extern int fun(void).
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
C++ nie jest nadzbiorem C
Deklaracja stałych. Zachowanie zgodności wymaga jawnego dowiązania.
ANSI C: const int Zm=23; a" extern const int Zm=23;
ANSI/ISO C++: const int Zm=23; a" static const int Zm=23;
Rozmiary stałych znakowych:
ANSI C: sizeof ( a ) a" sizeof (int)
ANSI/ISO C++: sizeof ( a ) a" sizeof (char)
Nie zadeklarowane funkcje:
ANSI C: przyjmowane jest automatycznie int fun(...).
ANSI/ISO C++: jest to niedopuszczalne.
Deklaracja extern int fun():
ANSI C: równoważna extern int fun(...).
ANSI/ISO C++: extern int fun(void).
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Programowanie w C  prosty przykład
#include
typedef struct LZespolona { /" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."/
double re, im;
} LiczbaZespolona; /" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ."/
LiczbaZespolona Dodaj( LiczbaZespolona Z1, LiczbaZespolona Z2)
{ Z2.re += Z1.re; Z2.im += Z1.im; return Z2; }
int main()
{
struct LZespolona A, B;
A.im = 1; A.re = 2; B = A;
A = Dodaj(A,B);
printf( %g %gi\n ,A.re,A.im);
return 0;
}
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Rozszerzenie struktur do klas w C++
#include
struct LiczbaZespolona { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
double re, im;
LiczbaZespolona Dodaj( LiczbaZespolona Z );
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LiczbaZespolona LiczbaZespolona::Dodaj( LiczbaZespolona Z )
{ Z.re += re; Z.im += im; return Z; }
int main()
{
LiczbaZespolona A, B;
A.im = 1; A.re = 2; B = A;
A = A.Dodaj(B);
std::cout < A.re <   < A.im < std::endl;
< < < <
}
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Rozszerzenie struktur do klas w C++
#include
using namespace std;
struct LiczbaZespolona { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
double re, im;
LiczbaZespolona Dodaj( LiczbaZespolona Z );
}; // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LiczbaZespolona LiczbaZespolona::Dodaj( LiczbaZespolona Z )
{ Z.re += re; Z.im += im; return Z; }
int main()
{
LiczbaZespolona A, B;
A.im = 1; A.re = 2; B = A;
A = A.Dodaj(B);
cout < A.re <   < A.im < endl;
< < < <
}
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol Dodaj( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = Dodaj(x,y);
}
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol Dodaj( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = Dodaj(x,y);
}
a + b = ?
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol Dodaj( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = Dodaj(x,y);
}
a + b = ?
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol Dodaj( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = Dodaj(x,y);
}
a + b = ?
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol Dodaj( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = Dodaj(x,y);
}
a + b = e
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol Dodaj( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = Dodaj(x,y);
}
a + b = e
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol Dodaj( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = Dodaj(x,y);
}
a + b = e
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol Dodaj( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = Dodaj(x,y);
}
a + b = e
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol Dodaj( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = Dodaj(x,y);
}
a + b = e
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol Dodaj( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = Dodaj(x,y);
}
a + b = e
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol Dodaj( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = x + y;
}
a + b = e
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol operator + ( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = x + y;
}
a + b = e
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
Symbol TabliczkaDzialania[3][3] = { { e, a, b }, { a, b, e }, { b, e, a } };
Symbol operator + ( Symbol x, Symbol y )
{
return TabliczkaDzialania[x][y];
Tabliczka działania
}
+ e a b
e e a b
int main( )
a a b e
{
Symbol x = a, y = b, wynik;
b b e a
wynik = operator + (x, y);
}
a + b = e
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
. . .
Symbol Dodaj( Symbol x, Symbol y );
Symbol operator + ( Symbol x, Symbol y );
. . .
Tabliczka działania
int main( )
+ e a b
{
e e a b
Symbol x = a, y = b, wynik;
a a b e
b b e a
a + b = e
}
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
. . .
Symbol Dodaj( Symbol x, Symbol y );
Symbol operator + ( Symbol x, Symbol y );
. . .
Tabliczka działania
int main( )
+ e a b
{
e e a b
Symbol x = a, y = b, wynik;
a a b e
wynik = x + y;
b b e a
a + b = e
}
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
. . .
Symbol Dodaj( Symbol x, Symbol y );
Symbol operator + ( Symbol x, Symbol y );
. . .
Tabliczka działania
int main( )
+ e a b
{
e e a b
Symbol x = a, y = b, wynik;
a a b e
wynik = x + y;
b b e a
wynik = Dodaj(x, y);
a + b = e
}
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
. . .
Symbol Dodaj( Symbol x, Symbol y );
Symbol operator + ( Symbol x, Symbol y );
. . .
Tabliczka działania
int main( )
+ e a b
{
e e a b
Symbol x = a, y = b, wynik;
a a b e
wynik = x + y;
b b e a
wynik = Dodaj(x, y);
wynik = operator+ (x, y);
a + b = e
}
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
. . .
Symbol Dodaj( Symbol x, Symbol y );
Symbol operator + ( Symbol x, Symbol y );
. . .
Tabliczka działania
int main( )
+ e a b
{
e e a b
Symbol x = a, y = b, wynik;
a a b e
b b e a
a + (b + a) = ?
}
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
. . .
Symbol Dodaj( Symbol x, Symbol y );
Symbol operator + ( Symbol x, Symbol y );
. . .
Tabliczka działania
int main( )
+ e a b
{
e e a b
Symbol x = a, y = b, wynik;
a a b e
wynik = x + (y + x);
b b e a
a + (b + a) = ?
}
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
. . .
Symbol Dodaj( Symbol x, Symbol y );
Symbol operator + ( Symbol x, Symbol y );
. . .
Tabliczka działania
int main( )
+ e a b
{
e e a b
Symbol x = a, y = b, wynik;
a a b e
wynik = x + (y + x);
b b e a
wynik = Dodaj(x , Dodaj(y, x) );
a + (b + a) = ?
}
Programowanie obiektowe
Podejście obiektowe
Kilka przykładowych różnic
Style programowania
Od C do C++
Rola języków programowania
Operatory jako funkcje
Język C i C++  najistotniejsze różnice
Arytmetyka symboli
enum Symbol { e, a, b };
. . .
Symbol Dodaj( Symbol x, Symbol y );
Symbol operator + ( Symbol x, Symbol y );
. . .
Tabliczka działania
int main( )
+ e a b
{
e e a b
Symbol x = a, y = b, wynik;
a a b e
wynik = x + (y + x);
b b e a
wynik = Dodaj(x , Dodaj(y, x) );
wynik = operator+ (x, operator+ (y, x) );
a + (b + a) = ?
}
Programowanie obiektowe
Podejście obiektowe
Style programowania
Rola języków programowania
Język C i C++  najistotniejsze różnice
To już koniec :(.
Programowanie obiektowe Podejście obiektowe  wprowadzenie


Wyszukiwarka

Podobne podstrony:
01 Podstawy języka UML 2 0
01 podstawowe pojecia
01 Podstawy teoretyczne
2008 01 Podstawy terapii przeciwzastoinowej dla pacjentow w warunkach domowych
01 podstawowe pojęcia
GI W 01 podstawowe figury i aksonometria
Matematyka dyskretna 2004 01 Podstawowe pojęcia, oznaczenia
01 PODSTAWY RACHUNKU PRAWDOPODOBIENSTWA
01 Podstawy immunologii i funkcjonowania układu odpornościowego
01 Podstawy Marketingu 3 Students
01 Podstawy Logix

więcej podobnych podstron