BETA
Aby się zalogować, najpiew wybierz portal.
Aby się zarejestrować, najpiew wybierz portal.
Podaj słowa kluczowe
Słowa kluczowe muszą mieć co najmniej 3 sąsiadujące znaki alfanumeryczne
Pole zawiera niedozwolone znaki

Aktualności


Podstawy klas

16-12-2013 16:17 Konrad Tomczyk
podstawy klas

Trudno jest podać jako taką definicję klasy, aby była ona zrozumiana dla początkujących programistów. Ale spróbuję wytłumaczyć tobie czym jest klasa posługując się prostym przykładem z życia wziętym. Najogólniej mówiąc klasa to zbiór wartości, metod i innych składników klas, których własną kopię przechowuje każdy utworzony obiekt. Jak to wytłumaczyć obrazowo? Spróbujmy. Załóżmy, że utworzyliśmy klasę o nazwie „Pojazd” klasa ta będzie posiadała takie pola wartości jak: liczba pasażerów, pojemność baku z paliwem, spalanie na 100 km i inne. Teraz tworząc obiekt typu Pojazd, np. Maluch nadajemy mu poszczególne wartości tych pól. Jest to pożyteczne i bardzo wydajne, ponieważ nie musimy za każdym razem pisać dla nowego utworzonego Pojazdu nowych wartości pól, ani ich deklarować oddzielnie. Przecież każdy pojazd posiada takie właściwości jak np. liczba pasażerów, tylko że wartość dla każdego pojazdu liczby pasażerów będzie inna, np. Autobus będzie miał 95, a Polonez 5 to samo się tyczy innych pól. Jak widzisz  klasa tworzy ogólny „zapis” obiektu. Spróbuj to przećwiczyć sposób tworzenia klas rozglądając się dookoła. Może klasa mebel? Jakie byś w niej dał pola wartości: materiał, waga… itp.

To na razie tyle wiedzy teoretycznej, teraz spróbujemy napisać program z klasą Pojazd.

Ogólna deklaracja klasy wygląda następująco:

class nazwa_klasy {

typ_dostępu typ nazwa_zmiennej1 ;

typ_dostępu typ nazwa_zmiennej2 ;

typ_dostępu typ_zwracany nazwa_metody1(parametry)

{

ciało metody…

}

}

A więc zaczynamy tworzyć:

class Pojazd
{
public int liczba_pasarzerow ;
public int pojemnosc ;
public int spalanie ;

 

}

Deklarujemy tutaj klasę o nazwie pojazd, potem deklarujemy kolejne zmienne. Słowo public to specyfikator dostępu, oznacza w tym wypadku że dostęp do tej zmiennej można mieć z zewnątrz klasy, a raczej obiektu. Są jeszcze inne specyfikatory dostępu takie jak: private, internal i protected , ale ich działanie omówimy w dalszych kursach. Teraz napiszmy program który wykorzystywał by naszą klasę Pojazd:
Początek kodu:
using System;

class Pojazd
{
public int liczba_pasazerow ;
public int pojemnosc ;
public double spalanie ;
}


class Pokaz
{
public static void Main()
{
double zasieg ;

Pojazd maluch = new Pojazd() ;

maluch.liczba_pasazerow =  5 ;
maluch.pojemnosc = 25 ;
maluch.spalanie = 3.5 ;

Pojazd polonez = new Pojazd() ;

polonez.liczba_pasazerow =  5 ;
polonez.pojemnosc = 47 ;
polonez.spalanie = 9.7 ;


Console.WriteLine(„Maluch pomieści ” + maluch.liczba_pasazerow + ” pasażerów”);
zasieg = (maluch.pojemnosc * 100) / maluch.spalanie ;
Console.WriteLine(„Zasięg malucha na pełnym baku wynosi: {0:#.##} km\n\n”,zasieg);

Console.WriteLine(„Polonez pomieści ” + polonez.liczba_pasazerow + ” pasażerów”);
zasieg = (polonez.pojemnosc * 100) / polonez.spalanie ;
Console.WriteLine(„Zasięg poloneza na pełnym baku wynosi: {0:#.##} km”,zasieg);
}

}
Koniec kodu:

Zapis: Pojazd maluch = new Pojazd(); oznacza deklarację nowego obiektu typu Pojazd. Od tego momentu jest tworzony obiekt maluch, a dokładnie od wywołania new. Aby mieć odstęp do składników klasy, musisz użyć operatora „.” Kropki. Bez tego nie miał byś dostępu do liczby pasażerów. Jeżeli w klasie pojazd byśmy nie użyli jako specyfikatora dostępu public przy którymkolwiek ze składników, to też nie mieli byś my do niego dostępu z poziomu innej klasy poprzez użycie operatora 

Komentarze 0

pkt.

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.