Motody- Naczeln膮 zasad膮 poprawnego pisania program贸w, jest dzielenie kodu na funkcjonalne fragmenty. Podzia艂 na funkcjonalne cz臋艣ci pozwala na ich 艂atwiejsze rozumienie oraz daje mo偶liwo艣膰 ponownego u偶ycia.
Te funkcjonalne bloki nazywamy metodami. Przyk艂adowo metoda WriteLine znajduje si臋 w klasie Console, ma zamkni臋t膮 funkcjonalno艣膰 pozwalaj膮c膮 na wy艣wietlanie informacji na ekranie. Wszystkie metody posiadaj膮 tzw. parametry. Definiuj膮c metod臋 nale偶y pami臋ta膰 o tym, 偶e je偶eli nie zdefiniujemy 偶adnego modyfikatora dost臋pu, domy艣lnie metoda przyjmie modyfikator private. Metody czyni膮 klasy, dzi臋ki swym funkcjom sk艂adowym pasywne zb. Danych kt贸rym s膮 struktury staja si臋 aktywnymi obiektami.
Konstruktor- Konstruktor jest specjaln膮 metod膮 klasy, kt贸ra jest zawsze wywo艂ywana jako pierwsza w czasie powo艂ywania obiektu tej klasy. Ka偶dy konstruktor musi mie膰 tak膮 sam膮 nazw臋 co klasa w kt贸rej si臋 znajduje i nie mo偶e zwraca膰, 偶adnej warto艣ci (w przeciwie艅stwie do standardowych metod). Klasa mo偶e zawiera膰 wiele konstruktor贸w musz膮 jednak r贸偶ni膰 si臋 sob膮 liczb膮 argument贸w. Je偶eli nie zdefiniujemy 偶adnego konstruktora, kompilator zrobi to za nas. Konstruktor utworzony przez kompilator nazywa si臋 konstruktorem domy艣lnym.
Pole- jest w艂a艣ciw膮 tre艣ci膮 ka偶dego obiektu klasy . Stanowi膮 jego reprezentacje w pami臋ci operacyjnej.
W艂a艣ciwo艣膰- to wydzielony blok kody realizuj膮cy jakie艣 zadanie.
Dziedziczenie klas - dziedziczenie jest konstrukcj膮 programistyczn膮 wspomagaj膮c膮 oddanie w strukturze kodu zwi膮zk贸w typu og贸lny - szczeg贸lny, na poziomie poj臋ciowym. Bardzo wa偶ne w programowaniu obiektowym jest wyodr臋bnienie cech wsp贸lnych r贸偶nych klas. Klas臋, kt贸ra modeluje cechy wsp贸lne dla pewnych klas nazywamy klas膮 bazow膮 tych klas. Klasy te nazywamy klasami pochodnymi po klasie bazowej. Dziedziczenie polega na umieszczeniu klasy bazowej po znaku dwukropka. Klasa pochodna dziedziczy po klasie bazowej jej metody, (czyli interfejs klasy bazowej) i pewne jej atrybuty. Dziedziczenie jest u偶ywane do modelowania zwi膮zku: og贸lne poj臋cie - szczeg贸lne poj臋cie. Ka偶dy obiekt kwalifikowany jako obiekt klasy pochodnej mo偶e by膰 u偶yty jako obiekt klasy bazowej! Dziedziczenie klas przekazuje typ i implementacj臋
Dziedziczenie w C++
class A
{public:
int a;
protected:
int b;
private:
int c;
};
class B : public A
{ public :
int d;
private:
int e;
};
Klasa abstrakcyjna- aby wymusi膰 utworzenie nowej wersji metody klasy bazowej, nale偶y t臋 metod臋 oznaczy膰 jako metod臋 abstrakcyjn膮. Metoda taka nie zawiera kodu, a jedynie w swej definicji ma: nazw臋 oraz sygnaturk臋. Dopiero w klasach pochodnych nale偶y doda膰 do takiej metody kod. Je偶eli klasa posiada co najmniej jedn膮 metod臋 abstrakcyjn膮, to tak膮 klas臋 nazywamy klas膮 abstrakcyjn膮. klasa abstrakcyjna stanowi jak gdyby baz臋 metod dla wszystkich jej klas pochodnych, ale - co bardzo wa偶ne - w programie nie wolno nam tworzy膰 instancji tej klasy. Pr贸ba zdefiniowania obiektu klasy abstrakcyjnej zako艅czy si臋 niepowodzeniem, dlatego te偶, je艣li jaka艣 klasa zawiera cho膰 jedn膮 metod臋 abstrakcyj膮, to ju偶 nie b臋dziemy mogli si臋 do niej odwo艂ywa膰 przez obiekt tej klasy a jedynie poprzez mechanizm dziedziczenia oraz polimorfizmu.
Wyj膮tek- jest w wbudowany mechanizm do wykrywania i obs艂ugi b艂臋d贸w w okresie czasu. C# zawiera wiele standardowych wyj膮tk贸w. Wyj膮tkami s膮 nieprawid艂owo艣ci wyst臋puj膮ce w trakcie realizacji programu. Mog膮 one by膰 spowodowane przez u偶ytkownika, system logiki lub b艂臋d贸w. Je艣li u偶ytkownik (programista) nie przewiduj膮 mechanizmu do obs艂ugi tych anomalii. C# tworzy mechanizm domy艣lny, kt贸ry zaprzestaje wykonywania programu. W C # s艂owa kluczowe to try, Catach, handle.
Kolekcje- C# dostarcza wyspecjalizowane klasy do przechowywania danych i wyszukiwanie. Te klasy dostarczaj膮 wsparcia dla stosy, kolejki, listy i tabele hash. Wi臋kszo艣膰 klas kolekcji implementuje ten sam interfejs, a te interfejsy mog膮 by膰 dziedziczone, aby utworzy膰 nowe klasy kolekcji, kt贸re pasuj膮 do bardziej wyspecjalizowanych potrzeb przechowywania danych. Kolekcja klasy s膮 zdefiniowane jako cz臋艣膰 System.Collections lub nazw System.Collections.Generic.
Parametryzacja(przekazywanie) przez:
Warto艣膰 - przekazywanie parametr贸w przez warto艣膰 r贸wna si臋 utworzeniu kopii zmiennych w danej metodzie. Oryginalna warto艣膰 zmiennej przekazanej do metody nie zostaje naruszona
Referencje- przekazanie parametr贸w przez referencj臋 umo偶liwia metodzie modyfikacj臋 warto艣ci jaka zosta艂a do niej przekazana oryginalnie. S艂owo kluczowe w wykorzystaniu przez referencje to out.
class Punkt {
protected:
float X, Y;
public:
Punkt(float x, float y) : X(x), Y(y) {} // konstruktor
float getX() { return X; }
float getY() { return Y; }
};
class Punkt3D : public Punkt {
protected:
float Z;
public:
Punkt3D(float x, float y, float z) : Punkt(x, y), Z(z) {} // konstruktor
float getZ() { return Z; }
};
Punkt3D p(1.5, 7.4, 3.0);
cout << "Punkt p ma wsp贸艂rz臋dne: " << p.getX() << ", " << p.getY() << ", " << p.getZ() << endl;