Część 1. Klasa i obiekt.
Klasy, Klasy, Klasy – czym są Klasy w C#? Jest to temat niezwykle ważny, ponieważ w C# klasy są pojęciem podstawowym, którego używać będziesz cały czas, więc warto zrozumieć dobrze ten temat 🙂
Pojęcie Klasy jest czymś trudnym do wytłumaczenia dla osoby, która dopiero zaczyna swoją przygodę z programowaniem, ale postaram się tutaj przedstawić zagadnienie Klasy jak najbardziej obrazowo i prosto tak, żeby było to maksymalnie zrozumiałe.
Istnieje wiele definicji Klasy w programowaniu. Myślę jednak, że najprostsza i najbardziej obrazowa mówi, że Klasa jest definicją (opisem) danego obiektu (np. samochodu, ołówka, książki, programu w telewizji, filmu), tego jakie ma cechy oraz co dany obiekt potrafi.
Użyjmy przykładu:
Naszym obiektem może być cokolwiek. Jak wyżej wymieniłem może być to np. samochód, ołówek, książka, program w telewizji, film.
Obiekt to coś konkretnego, to znaczy:
Innym obiektem jest inny samochód
Inny ołówek
Klasa jest czymś co opisuje obiekt, opisuje jego cechy.
Weźmy na tapetę ołówek. Jak widać na poniższym screenie mamy tutaj 2 obiekty ołówków.
Klasą ołówek jest opis jego właściwości i cech. Napiszmy więc naszą Klasę ołówek.
class Ołówek
{
}
Jego obiektami będzie.
Ołówek ołówekCzerwony = new Ołówek();
Ołówek ołówekŻółty = new Ołówek();
To podstawowy przykład, więc rozbudujmy go:
class Ołówek
{
public string Kolor;
public bool OłówekJestNaostrzony;
public int DługośćOłówkaWcm;
}
Widzimy, że opisaliśmy tutaj kilka cech, jakie może posiadać Klasa ołówek, takich jak kolor, czy ołówek jest naostrzony oraz długość ołówka.
Tutaj dochodzimy do kolejnego ważnego zagadnienia, czyli jaka jest różnica pomiędzy obiektem i Klasą.
Klasa, a obiekt
Jak widać obiekt jest czymś konkretnym, a Klasa to coś opisującego obiekt. Np. mamy Klasę samochód, ale obiektem jest konkretny fizyczny samochód, który stoi na ulicy. Myślę, że przykłady powyżej też pozwoliły na zrozumienie tych różnic :). Jest to ważne, aby wiedzieć, jaka jest różnica, ponieważ jest to jedno z podstawowych pytań na rozmowach kwalifikacyjnych. Do tego te pojęcia są używane praktycznie cały czas podczas programowania.
Mam nadzieję, że masz obraz tego, czym jest Klasa oraz jaka jest różnica pomiędzy Klasą i obiektem.
To be continued …