Programowania Obiektowego – Klasa i Tworzenie Obiektu w C#
Czym jest programowanie strukturalne?
Programowanie strukturalne to podejście do tworzenia programów, które opiera się na pisaniu funkcji/procedur i zmiennych, które są oddzielnie definiowane i przetwarzane. Każda funkcja pełni konkretną rolę, ale dane i logika są rozproszone po całym kodzie.
Przykład w programowaniu strukturalnym (C#):
Załóżmy, że mamy program, który zarządza informacjami o samochodach, takimi jak marka i model. Użyjemy zmiennych i funkcji do tego celu.
using System;
class Program
{
static void Main()
{
// Dane samochodów
string samochod1Marka = "Toyota";
string samochod1Model = "Corolla";
string samochod2Marka = "Ford";
string samochod2Model = "Focus";
// Wypisanie informacji o samochodach
WypiszSamochod(samochod1Marka, samochod1Model);
WypiszSamochod(samochod2Marka, samochod2Model);
}
static void WypiszSamochod(string marka, string model)
{
Console.WriteLine($"Samochód: {marka}, Model: {model}");
}
}
Każdy samochód ma swoje zmienne: samochod1Marka
, samochod1Model
itd. Aby wypisać informacje o samochodzie, wywołujemy funkcję WypiszSamochod()
, która przyjmuje dane jako argumenty. Problemem tego podejścia jest to, że dla każdego nowego samochodu musimy tworzyć nowe zmienne, co może prowadzić do nieczytelności kodu.
Przejście do Programowania Obiektowego (OOP)
W programowaniu obiektowym grupujemy dane (takie jak marka i model) oraz operacje na tych danych w jednej jednostce, zwanej klasą. Klasa to „przepis”, na podstawie którego tworzymy obiekty. Obiekt to przykład (instancja) tej klasy.
Czym jest klasa i obiekt?
- Klasa: To wzorzec lub plan, który definiuje właściwości (np. marka, model) oraz zachowania (np. wyświetlanie informacji) dla pewnych typów obiektów.
- Obiekt: To konkretny przykład (instancja) klasy, który ma swoje własne dane, ale dzieli zachowania z innymi obiektami tej samej klasy.
Zalety programowania obiektowego:
- Lepsza organizacja kodu.
- Łatwość w dodawaniu nowych funkcji i zmianie istniejących.
- Możliwość ponownego użycia kodu.
Tworzenie klasy i obiektu w C#
Teraz zamiast tworzyć wiele zmiennych dla każdego samochodu, stworzymy klasę Samochod
, która będzie opisywać wszystkie samochody.
Przykład w programowaniu obiektowym (C#):
using System;
class Samochod
{
// Właściwości (dane) samochodu
public string Marka;
public string Model;
// Konstruktor - tworzy nowy obiekt samochodu
public Samochod(string marka, string model)
{
Marka = marka;
Model = model;
}
// Metoda (funkcja) do wypisania informacji o samochodzie
public void WypiszInformacje()
{
Console.WriteLine($"Samochód: {Marka}, Model: {Model}");
}
}
class Program
{
static void Main()
{
// Tworzenie obiektów samochodów
Samochod samochod1 = new Samochod("Toyota", "Corolla");
Samochod samochod2 = new Samochod("Ford", "Focus");
// Wywołanie metody do wypisania informacji o samochodach
samochod1.WypiszInformacje();
samochod2.WypiszInformacje();
}
}
Klasa Samochod
:
- Właściwości:
Marka
iModel
– czyli dane, które każdy obiekt (samochód) będzie przechowywał. - Konstruktor: Funkcja, która pozwala na stworzenie nowego obiektu samochodu z określoną marką i modelem.
- Metoda
WypiszInformacje
: To funkcja, która działa na obiektach tej klasy. Wypisuje informacje o danym samochodzie.
Obiekty samochod1
i samochod2
:
- Każdy z tych obiektów to konkretny samochód.
samochod1
to Toyota Corolla, asamochod2
to Ford Focus.
Tworzenie obiektu: Używamy słowa kluczowego new
, aby stworzyć nowe instancje klasy (obiekty).
Porównanie programowania strukturalnego i obiektowego
Programowanie Strukturalne | Programowanie Obiektowe |
---|---|
Skupia się na funkcjach i danych oddzielnie. | Skupia się na obiektach, które łączą dane i funkcje. |
Dla każdego zestawu danych trzeba tworzyć nowe zmienne. | Używamy klasy, aby stworzyć wiele obiektów tego samego typu. |
Zmiany w danych mogą wymagać modyfikacji wielu funkcji. | Łatwo dodawać nowe funkcje lub zmieniać istniejące. |