Definicja klasy:
modyfikator_dostępu class NazwaKlasy
{
deklaracje pól i metod
}
Modyfikatory dostępu - umożliwiają określenie dostępu do danego elementu z zewnątrz klasy. Rodzaje:
- publiczne (
public
) - elementy publiczne, dostępnymi na zewnętrz klasy, - chronione (
protected
) - elementy traktowane jako chronione, będą dostępne dla danej klasy oraz na potrzeby klas dziedziczonych, nie będą natomiast widoczne na zewnątrz klasy, - wewnętrzne (
internal
) - nie będą udostępniane na zewnątrz podzespołu/projektu, - wewnętrzne chronione (
protected internal
), - prywatne (
private
) - elementy prywatne, a dostęp do nich z poza klasy, będzie niemożliwy. - prywatne chronione (
private protected
) - nowość w wersji C# 7.2 (znajomość nie jest wymagana na ćw) - link
Inne modyfikatory:
- do odczytu(
readonly
) - tylko do odczytu, wartość do pola oznaczonego jako readonly możemy przypisać w chwili deklaracji takiego pola lub w konstruktorze klasy, - statyczne (
static
) - takie pole jest częścią stanu klasy.
Pola - zmienne przechowywane w danej klasie. Deklaracja:
modyfikator typ_danych nazwaPola;
np.
public int powierzchnia;
Metody - definiują zachowanie, umożliwiając im wykonywanie konkretnych zadań, nie można ich definiować poza ciałem klasy. Deklaracja zawiera:
- modyfikator
- typ zwracany przez metodę
- nazwa metody (NazwaMetody())
- lista typów i nazw parametrów metody
Modyfikatory metod (poza wcześniejszymi):
virtual
override
new
sealed
abstract
static
- może być wywoływana bez konieczności tworzenia obiektuextern
– implementacja zewn.
Przykłady:
public int PodajCene()
{
return powierzchnia*3000;
}
public int PoliczSume(int liczba1, int liczba2)
{
return liczba1 + liczba2;
}
public void WyswietlImie()
{
Console.WriteLine(imie);
}
Przeciążone metody to takie, które:
- mają taki sam typ zwracany,
- mają identyczną nazwę,
- różnią się tylko ilością lub typami przekazywanych parametrów.
Przykład:
string OpiszTyp()
{
return "Metoda bez argumentów";
}
string OpiszTyp(int x)
{
return "Liczba całkowita";
}
string OpiszTyp(string x)
{
return "Łańcuch znaków";
}
string OpiszTyp(double x, int y)
{
return "Liczba double i liczba całkowita";
}
Tworzenie obiektów - operator new
:
Deklaracja
typ nazwaObiektu = new NazwaKlasy()
Przykład:
Dom domBasi = new Dom();
Odwołanie się do pól klasy:
nazwaObiektu.nazwaPola
Przykład:
domBasi.powierzchnia = 200;
domBasi.garaz = true;
domBasi.iloscPokoi = 7;
domBasi.ogrod = false;
domBasi.iloscPieter = 1;