Co to jest programowanie obiektowe?
Programowanie obiektowe, często też nazywane w skrócie OOP (Object Oriented Programming), jest głównie skupione na obiektach, czyli instancjach klasy, oraz relacjach między nimi. Programy definiowane są właśnie przy użyciu obiektów, które mają różne stany i zachowania. Programowanie obiektowe ułatwia pracę nad kodem, rozszerzanie aplikacji, ponieważ klasy mogą być wielokrotnie używane. Mają także lepszą organizację kodu. Dzięki obiektom możemy modularyzować kod, to znaczy dzielić go na małe kawałki, takie klocki, które możemy ze sobą układać. Obecnie najpopularniejsze języki obiektowe to C#, Java, C++, Python.
Klasa i obiekt
Klasa jest to definicja obiektu, opisuje stany oraz zachowania obiektu. Obiekt jest to instancja klasy, jego zachowanie zostały zdefiniowane w klasie. Myślę, że najlepiej będzie Ci to zrozumieć na przykładzie.
Przykład klasy w C#
public class Employee
{
private string _name;
public string Position { get; set; }
public Employee(string name)
{
_name = name;
}
public void Work()
{
//logika
}
}
public class Program
{
static void Main(string[] args)
{
var employee = new Employee("Jan Kowalski");
employee.Position = "Młodszy Programista C#";
employee.Work();
}
}
W powyższym przykładzie zdefiniowana została klasa Employee. W metodzie Main, klasy Program został utworzony obiekt, nowa instancja tej klasy, to znaczy konkretny egzemplarz, którego zachowania zostały zdefiniowane w klasie. Zachowania, to znaczy metody, w naszym przykładzie jest to metoda Work. Może mieć również różne stany, to znaczy pola, czy właściwości. W tym przypadku nazwa oraz stanowisko. Także został stworzony nowy pracownik o nazwie Jan Kowalski, który pracuje na stanowisku Młodszy Programista C#, a następnie wykonuje pracę, czyli logikę zawartą w metodzie Work. Czyli klasa jest to taki jakby szablon, na podstawie którego możemy tworzyć nowe obiekty. Gdy już mamy klasę, to na jej podstawie możemy tworzyć wiele obiektów.
Konstruktor
W klasie oprócz pola _name, właściwości Position oraz metody Work, mamy również konstruktor, który przyjmuje w tym przypadku jeden parametr - nazwę pracownika. Konstruktor jest to specjalna metoda, o takiej samej nazwie co klasa. Nie zawiera w sygnaturze typu zwracanego. Konstruktor jest wywoływany przy utworzeniu obiektu. Konstruktorów może być wiele, jeżeli mają inne sygnatury, ale może też nie być żadnego, w takim przypadku uruchomiony zostaje domyślnie pusty konstruktor.
Filary programowania obiektowego
Istnieją 4 filary, na których opiera się całe programowanie obiektowe, są one dość istotne, dlatego dla każdego z nich napisałem w ostatnim czasie dedykowany artykuł na moim blogu. Koniecznie się z nimi zapoznaj:
- Dziedziczenie, czyli rodzaj relacji pomiędzy dwoma klasami, która pozwala jednemu z nich dziedziczyć kod drugiego.
- Polimorfizm, możliwość zapisywania jednej metody pod różnymi postaciami.
- Abstrakcja, operowanie na obiektach bez znajomości szczegółów ich implementacji.
- Hermetyzacja (enkapsulacja), czyli ukrywanie pewnych danych, tak aby zabezpieczyć się przed nieprawidłowym działaniem.
PODSUMOWANIE:
W dzisiejszym krótkim artykule starałem się podsumować cykl ostatnich artykułów na temat 4 filarów programowania obiektowego w C#. Przedstawiłem Ci jeszcze, czym dokładnie jest samo programowanie obiektowe. Mam nadzieje, że po tych artykułach, znasz już podstawowe zagadnienia, często używane w programowaniu. Jeżeli masz jeszcze jakieś pytania lub uważasz, że temat nie został wystarczająco rozwinięty, to poinformuj proszę mnie o tym mailowo, lub w komentarzu. Pamiętaj, że tematy związane z OOP musisz znać, jeżeli chcesz zostać młodszym programistą .NET.
Poprzedni artykuł - 7 Najlepszych Blogów o Programowaniu w 2020.
Następny artykuł - Jaki Język Programowania Wybrać? Konkretna Odpowiedź.