TOC

This article has been localized into Polish by the community.

Klasy:

Wprowadzenie do klas w C#

Wiele kursów zostawia kwestię klas na sam koniec. Jednakże, skoro w C# wszystko kręci się wokół programowania obiektowego, a co za tym stoi, wokół klas, omówimy pokrótce ich podstawowe cechy oraz zastosowania.

Po pierwsze, powiedzmy sobie czym właściwie są klasy. Klasą nazywamy grupę powiązanych ze sobą metod i zmiennych. W większości przypadków, aby mieć z niej jakiś pożytek, tworzymy jej instancję, nazywaną obiektem. Za pomocą tego obiektu, możemy korzystać z wyżej wspomnianych metod i zmiennych. Oczywiście możemy stworzyć tyle instancji naszej klasy ile tylko zapragniemy. Na temat Klas, i ogólnie Programowania Obiektowego można by rozmawiać bez końca. Część z niego poznamy zarówno w tym rozdziale jak i w późniejszych.

W rozdziale "Hello world" po raz pierwszy spotkaliśmy się z klasą, skąd można zauważyć, że klasy są fundamentem programowania w C#. Poszerzmy nieco nasz przykładowy program "Hello world" dodając naszą własną klasę:

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Car car;

            car = new Car("Red");
            Console.WriteLine(car.Describe());

            car = new Car("Green");
            Console.WriteLine(car.Describe());

            Console.ReadLine();

        }
    }

    class Car
    {
        private string color;

        public Car(string color)
        {
            this.color = color;
        }

        public string Describe()
        {
            return "This car is " + Color;
        }

        public string Color
        {
            get { return color; }
            set { color = value; }
        }
    }
}

No dobrze, mamy ty sporo nowych rzeczy, ale większość z nich nie różni się tak mocno od rzeczy, których wcześniej już używaliśmy. Jak widać, zdefiniowaliśmy nową klasę "Car". Jest ona zadeklarowana w tym samym pliku co nasza główna aplikacja - dla przejrzystości, ale często lepiej tworzyć nowe klasy w oddzielnych plikach. Nasza klasa zawiera w sobie definicję jednej zmiennej "color", która oczywiście mówi nam o kolorze naszego samochodu. Zadeklarowaliśmy ją jako prywatną, co jest dobrą praktyką - dostęp do zmiennych z zewnątrz powinien odbywać się za pomocą właściwości. Właściwość o nazwie Color jest zdefiniowana na końcu klasy, dając dostęp do zmiennej "color".

Oprócz tego, klasa Car zawiera konstruktor, który przyjmuje jeden parametr, pozwalając na zainicjalizowanie obiektów typu Car z określonym kolorem. Ponieważ mamy tylko jeden konstruktor, obiekty typu Car mogą być stworzone tylko z jedną cechą - kolorem. Metoda Describe() pozwala na utworzenie ładnej wiadomości opisującej nasz samochód - a konkretniej jego kolor. Ta wiadomość jest zwracana jako ciąg znaków (string) przez naszą metodę.

Teraz, w naszej głównej aplikacji deklarujemy zmienną typu Car. Następnie tworzymy jej instancję, podając "Red" jako parametr. Według definicji naszej klasy, oznacza to, że czerwony kolor zostanie przypisany do koloru samochodu (zawartego w zmiennej "color"). Aby to sprawdzić, wywołujemy metodę Describe(), i żeby pokazać jak łatwo możemy stworzyć wiele instancji tej samej klasy, robimy to ponownie, jednak tym razem używając innego koloru. Właśnie stworzyliśmy naszą pierwszą funkcjonalną klasę oraz jej użyliśmy!

W kolejnych rozdziałach, nieco dokładniej wyjaśnimy pojęcia tj. właściwości, konstruktory i modyfikatory dostępu.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!