Podstawy programowania obiektowego - Dariusz Rataj(1).pdf

(451 KB) Pobierz
www.pbtorrent.pl
Podstawy
programowania
obiektowego
Ćwiczenia laboratoryjne nr 1
Temat: Wstęp do programowania obiektowego
Prowadzący:
mgr inż. Dariusz Rataj
Koszalin 2001
Podstawy programowania obiektowego
Skrcony spis treści:
Część 1 - Programowanie obiektowe w języku C++
Część 2 - Programowanie obiektowe w środowisku Borland C++Builder
1. Programowanie obiektowe w języku C++
1.1. Cel programowania obiektowego
Programowanie obiektowe jest prbą "przeniesienia" rzeczywistości na platformę maszyn liczących zwanych
komputerami. Człowiek w życiu codziennym postrzega przedmioty (obiekty) rzeczywiste w sposb intuicyjny nie
zwracając uwagi na szczegły zachowania czy stanu przedmiotu. W programowaniu strukturalnym programista jest
zmuszony do znajomości wielu parametrw symulowanego obiektu. Celem programowania obiektowego jest
uzyskanie możliwości wydawania poleceń dla symulowanego obiektu rzeczywistego bez konieczności zagłębiania się
w szczegły jego konstrukcji czy stanu.
1.2. Przykład symulacji obiektu rzeczywistego
W tej części przedstawiony zostanie prosty przykład opisu obiektu rzeczywistego - samochodu. Widząc samochd
jadący ulicą przeciętny człowiek zwrci uwagę jedynie na oglne cechy pojazdu, np.: wielkość (duży, mały), kolor
itd. Jadąc samochodem "wydajemy polecenia": przyspiesz, zwolnij, zatrzymaj itd. Opis obiektu rzeczywistego na
poziomie języka programowania powinien umożliwić wydawanie tego typu poleceń. Każdy obiekt rzeczywisty
posiada trzy elementy: tożsamość (nazwa), stan lub cechy obiektu, zachowanie (działania na obiekcie).
Przykładowy samochd jest oczywiście obiektem rzeczywistym złożonym z wielu podzespołw, części i możemy
opisać go bardzo szczegłowo. W wielu zastosowaniach wystarczy nam jednak opis tylko niektrych cech obiektu.
Takie podejście do opisu (pewne cechy są istotne inne są bez znaczenia) określane są w teorii obiektowej mianem
abstrakcji . Programista operuje jedynie na pewnym poziomie abstrakcji niezbędnym do zrealizowania celu
oprogramowania, np. inaczej będzie wyglądał opis obiektu programisty piszącego grę "wyścigi samochodowe", a
inaczej opis do celw symulacji wypadkw wykonany dla firmy produkującej samochody. Poniżej przedstawiony
został prosty przykład opisu obiektowego (obiektu - samochodu) demonstrujący zasady tworzenia symulacji
obiektu rzeczywistego.
Obiekt rzeczywisty
Opis obiektu
rzeczywistego
Definicja typu
obiektowego
(Zgodnie ze składnią języka
programowania C++)
1. Tożsamość (nazwa) - samochd
2. Stan obiektu (cechy opisujące obiekt):
- Marka
- Model
- Kolor
- Pozycja (wspłrzędne x i y)
3. Zachowanie (działania na obiekcie):
- Nazwanie marki
- Nazwanie modelu
- Zmiana koloru
- Przesunięcie samochodu - zmiana
położenia (pozycji)
class samochod {
public :
char marka[ 20 ];
char model[ 20 ];
int kolor;
int pozX, pozY;
samochod();
void ustawMarke( char *s);
void ustawModel( char *s);
void ustawKolor( int k);
void przesun( int x, int y);
};
Prezentowany przykład ogranicza się tylko do elementarnych cech samochodu: marka, model, kolor, pozX (pozycja
X), pozY (pozycja Y) i czterech czynności: ustawMarke, ustawModel, ustawKolor, przesun operujących na cechach.
W terminologii programowania obiektowego cechy opisujące stan obiektu będziemy nazywać polami obiektu (lub
zmiennymi składowymi obiektu) natomiast czynności nazwiemy metodami (lub procedurami i funkcjami
składowymi obiektu).
Strona 2
8806921.004.png
Podstawy programowania obiektowego
Po zdefiniowaniu obiektu możemy wykorzystać obiekt w programie głwnym. Na początek należy zdefiniować
zmienną obiektową klasy samochod :
samochod car1; // deklaracja obiektu (utworzenie instancji obiektu)
Następnie w ciele programu głwnego możemy wywołać wcześniej zdefiniowane funkcje i procedury obiektu.
Przykładowy program głwny symuluje jazdę samochodu po ekranie monitora (kursory: gra, dł, prawo, lewo).
Pełny kod programu definiującego i wykorzystującego obiekt samochod :
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <string.h>
class samochod {
public :
// pola (zmienne)
char marka[ 20 ];
char model[ 20 ];
int kolor;
int pozX, pozY;
// metody (funkcje)
samochod(); // konstruktor
void ustawMarke( char *s); // ustawienie marki samochodu
void ustawModel( char *s); // ustawienie marki samochodu
void ustawKolor( int k); // ustawienie koloru samochodu
void przesun( int x, int y); // przesuniecie po ekranie
};
samochod::samochod()
{
pozX = 0 ; pozY = 0 ;
}
void samochod::ustawMarke( char *s)
{
strcpy(marka, s); // kopiowanie parametru do zmiennej marka
cout << "Marka:" << marka << endl;
}
void samochod::ustawModel( char *s)
{
strcpy(model, s); // kopiowanie parametru do zmiennej model
cout << "Model:" << model << endl;
}
void samochod::ustawKolor( int k)
{
kolor = k; // zmiana zmiennej kolor
textcolor(k); // zmiana koloru znaku na ekranie
cout << "Kolor(nr):" << kolor << endl;
}
void samochod::przesun( int x, int y)
{
pozX += x; pozY += y; // zmiana zmiennych pozX i pozY
if (pozX > 80 ) pozX= 1 ;
if (pozY > 25 ) pozY= 1 ;
Strona 3
8806921.005.png
Podstawy programowania obiektowego
if (pozX < 1 ) pozX= 80 ;
if (pozY < 1 ) pozY= 25 ;
gotoxy(pozX, pozY); // przesuniecie kursora
cprintf( "%c" , 'X' );
}
void main()
{
int key;
clrscr();
samochod car1; // utworzenie obiektu typu samochod
car1.ustawMarke( "Audi" );
car1.ustawModel( "A4" );
car1.ustawKolor(RED);
car1.przesun( 40 , 12 );
do {
key = getch(); // pobranie kodu klawisza
switch (key) {
case 72 : car1.przesun( 0 ,- 1 ); break ; // kody kursorow: gora
case 80 : car1.przesun( 0 , 1 ); break ; // dol
case 77 : car1.przesun( 1 , 0 ); break ; // prawo
case 75 : car1.przesun(- 1 , 0 ); break ; // lewo
}
} while (key != 27 ); // rozne od Esc
textcolor(WHITE);
clrscr();
}
2. Programowanie obiektowe w C++ Builder
2.1. Środowisko programowania pod Windows - C++ Builder
Nowoczesne środowiska programowania pod system Windows takie jak Borland C++ Builder
umożliwiają stworzenie programu okienkowego wykorzystującego gotowe obiekty zdefiniowane
w środowisku graficznym systemu operacyjnego lub w samym środowisku C++Builder. W większości
prostych zastosowań nie będzie konieczne "ręczne" definiowanie własnych obiektw tak jak ma to
miejsce w programowaniu strukturalnym. Większość mozolnej pracy (tworzenie plikw, okien,
obiektw kontrolnych itp.) wykonuje za nas środowisko programowania. Proces tworzenia aplikacji
Windows w tego typu środowiskach można ująć w kilku podstawowych etapach:
a) Utworzenie projektu (nazwanie projektu, wskazanie katalogu w ktrym przechowywane będą
wszystkie pliki składające się na projekt). Na tym etapie tworzone jest (automatycznie) głwne
okno aplikacji i głwne pliki źrdłowe aplikacji.
b) Dodanie obiektw kontrolnych do głwnego okna aplikacji (menu, napisy, pola tekstowe,
przyciski itp.).
c) Utworzenie okien dodatkowych posiadających rwnież obiekty kontrolne, ktre należy
zdefiniować (podobnie jak w głwnym oknie aplikacji: patrz pkt. 2 i 3). Okna dodatkowe
najczęściej są aktywowane przez okno głwne aplikacji (są aktywowane w metodach obsługi
zdarzeń obiektw kontrolnych), np.: zdarzenie "kliknięcie na przycisku" w głwnym oknie aplikacji
spowoduje uruchomienie (aktywowanie) okna dodatkowego.
d) Zdefiniowanie odpowiednich "zdarzeń" i przypisanie ich do obiektw kontrolnych, np.
zdefiniowanie metody (funkcji, procedury), ktra zostanie wykonana po kliknięciu na przycisku.
e) Skompilowanie i uruchomienie (jeżeli nie ma błędw) oraz przetestowanie działania aplikacji.
Strona 4
8806921.006.png
Podstawy programowania obiektowego
2.2. Przykład prostej aplikacji w CBuilder - "Ankieta"
Program "Ankieta" będzie umożliwiał przeprowadzenie prostej ankiety osobowej (np. ucznia, studenta)
zawierającej pytania o imię, nazwisko, wiek i klasa. Po wypełnieniu ankiety użytkownik może
wygenerować podsumowanie wykorzystujące dane z ankiety. Podsumowanie zostanie umieszczone w
dodatkowym oknie aplikacji a następnie zapisane do pliku o nazwie wybranej przez użytkownika. Do
zapisania pliku o wybranej nazwie i w wybranym katalogu na dysku można użyć standardowego
obiektu SaveDialog z grupy obiektw Dialogs.
Okno dodatkowe aplikacji
Okno głwne aplikacji
Okno zapisu do pliku (okno
standardowe z grupy Dialogs)
a) Utworzenie projektu
Z menu grnego wybieramy polecenie File - New Application . Następnie polecenie File - Save
Project as... . Otworzy się okno dialogowe w ktrym wybieramy katalog naszego projektu i nazwę
plikw (pliku źrdłowego Unit1.cpp - plik okna głwnego aplikacji; pliku projektu Project1.bpr). Po
wykonaniu tych czynności utworzy się puste okno głwne aplikacji gotowe do edycji o nazwie Form1 .
Strona 5
8806921.007.png 8806921.001.png 8806921.002.png 8806921.003.png
Zgłoś jeśli naruszono regulamin