Zaklinacz Żółwii

Start
Download
PJWSTK
ASD     
PRG     
SKO     
WPR     
GaduGadu
Humor
Alt Info

Co to jest klasa?

Klasa - jest to opis obiektu:)
czyli, żeby utwożyć obiekt "pies" potrzebujemy klasy "Pies", która będzie opisywać jak taki pies wygląda.

    Obiekt, podobnie jak w realu, to takie coś, co ma pewne właściwości oraz może wykonywać (lub można na nim wykonywać) pewne czynności.
    Np. klasa "Human" może zawierać właściwości takie jak: imie, nazwisko, wzrost, waga, wiek oraz pewne czynności jak np.: idzSpac(), zjedzSniadanie(), nauczSieDoKolokwium()...

    Właściwosci to tak naprawdę zmienne umieszcone w danej klasie. Takie zmienne nazywają się polami. Natomiast czynności jakie wykonujemy na obiekcie to funkcje (lub procedury) również umiszczone w klasie takiego obiektu. Nazywają się one wtedy metodami.

class Human {
public:
    char* imie;                    ////////////////////////////
    char* nazwisko;                // to są pola klasy
    int   wzrost,                  // (właściwości: imie, 
          waga,                    // nazwisko, wzrost...)
          wiek;                    //
    
    void idzSpac() {               ////////////////////////////
        cout << "śpię" << endl;    // to jest metoda idzSpac()
    }                              //
    
    void zjedzSniadanie() {        ////////////////////////////
        waga += 2;                 // to jest metoda jedzenia
    }                              // (jak zje to przytyje 2kg)
}
  Strony uczelniane:
   Str. Główna
   SerwisStudencki
   Poczta
   Sekret
   BSS-HOWTO
   Hasło
   Biblioteka
   Index stron
 

Ważnym pojeciem w przypadku klas jest "hermetyzacja". Polega ona na określeniu, które ze składników klasy - zarówno pola jak i metody - mają być widoczne z zewnątrz a do których ma nie być dostępu.

    Generalnie wyróżnia się 3 rodzaje praw dostępu:
publiczne:
każdy ma dostęp do publicznych składników klasy.
prywatne:
przeważnie tylko klasa ma dostęp do swoich prywatnych pól.
chronione:
dostęp do chronionych składników klasy ma oczywiście dana klasa, ale również klasy, które z niej dziedziczą
(dziedziczenie - patrz następny rozdział)

Wspomnę jeszcze o statycznych polach i metodach.
Są to bardziej składniki Klasy samej w sobie niż obiektów. Ganaralnie różnica jest taka, że np. pole 'wiek' w podanym wcześniej przykładzie jest indywidualnym elementem każdego obiektu typu Human (każdy obiekt ma własny wiek). Podobnie metoda 'idzSpac()' wywoływana jest przez jakiś konkretny obiekt (typu Human oczywiście).
Natomiast pole statyczne, jest jedno wspólne dla wszystkich obiektów danej klasy. Co więcej, pole takie jest dostępne nawet, jeśli nie stworzono jeszcze żadnych obiektów danej klasy.
Np.: można stworzyć w klasie 'Human' pole statyczne 'ileLudzi', które było by zwiększane przy tworzeniu każdego nowego obiektu klasy 'Human'.

Być może pominąłem jeszcze coś ważnego, ale jeżeli ktoś ma jakies pytania lub sugestie co do umieszcenia jakiś dodatkowych informacji, to chętnie je przyjmę pod @.