Wprowadzanie do programowania obiektowego w C#. Co to są obiekty, klasy, struktury, pola, właściwości, metody.
W dzisiejszych czasach programy stają się coraz bardziej skomplikowane i rozbudowane. Załóżmy przypadek że mamy w naszym programie 100 funkcji. Musimy pamiętać każdą z nich i napisać je tak żeby były uniwersalne dla każdego wywołania. Aby ułatwić nam życie wprowadzono klasy, obiekty..
Programowanie obiektowe upodabnia świat programowania do świata zewnętrznego. Np tworzymy obiekt człowiek i możemy mu nadać jakieś właściwości. Może to być wzrost, waga, wiek. Możemy także określić jego zachowania. W jaki sposób śpi, spożywa posiłki itp.
Klasa jest to pewien typ danych zdefiniowany przez nas. Możemy powoływać do życia instancje takiej klasy.
Co może posiadać klasa?
Konstruktory |
public klasa(){}; |
Destruktor |
~klasa(){} |
Stałe |
const int liczba=8; |
Pola |
int liczba; |
Właściwości |
string nazwa{get; set;} |
Indexery |
int this[int i]{} |
Operatory |
int ilosc= 100+2; |
Zdarzenia |
event zrob_cos idz; |
Delegaty |
delegate void zrob_cos{object sender, EventArgs e); |
Interfejsy |
interface intefejs{} |
Struktury |
struct struktura{} |
Metody |
int policz() {}; |
Inne klasy |
class klasa_2{} |
- Klasa musi mieć nazwę.
- Nie może być dwóch klas o takich samych nazwach w tej samej przestrzeni nazw.
- Klasa może być pusta ale musi zawierać {}
Obiekt jest to powołana do życia instancja danej klasy. Jeśli stworzyliśmy klasę Człowiek to teraz powołuje do życia człowieka (np. Janusza). Możemy powołać wiele obiektów danej klasy. Każdy będzie miał takie same zachowania ale różne parametry.
Np. powołujemy do życia Janusza i przypisujemy mu parametry;
Modyfikatory dostępu służą do zwiększenia bezpieczeństwa oraz do określenia kto może mieć dostęp do danej klasy lub jej składowych.
public |
Każdy ma dostęp do elementu |
private |
Dostęp mają tylko elementy tej samej klasy lub struktury |
protected |
Dostęp mają elementy tej samej klasy oraz tych klas co dziedziczą |
internal |
Dostęp publiczny wewnątrz tego samego assembly |
protected internal |
Połączenie protected i internal |
Domyślnym modyfikatorem dostępu dla klas jest internal.
Domyślnym modyfikatorem dostępu dla pozostałych składowych jest private;
Jeśli wiesz co to jest zmienna to bez problemu zrozumiesz co to jest pole w danej klasie. Pole po prostu przechowuje jakąś wartość.