Początkujący są uczeni używania klas i technik programowania zorientowanego obiektowo bardzo wcześnie. Ale nigdy nie mówi się im dlaczego.
Zamiast mówić nam dlaczego, wyjaśnienia zawsze zaczynają się od opisywania ogólnych obiektów z życia – samochody są popularnym przykładem… a studenci zaczynają dyskutować o markach i modelach.
Ale DLACZEGO? Do czego służą klasy?
Prosta odpowiedź,
Programiści używają klas zawsze, gdy potrzebują więcej niż jednego elementu.
Patrz ten przykład z popularnej gry, Candy Crush.
Widzisz siedem niebieskich cukierków na ekranie? Twórca gry nie zakodowałby niebieskiego cukierka siedem razy. Tworzysz jedną klasę Blue Candy i mnożysz ją siedem razy.
Klasy to po prostu fabryki cukierków. Albo fabryki samochodów. Albo fabryki dzieci. Albo fabryki koali. Definiujesz rzecz raz i pozwalasz swojemu kodowi tworzyć ich tyle, ile chcesz!
OOP = Używanie klas w programowaniu
Kilka oficjalnych definicji, o których musimy najpierw porozmawiać.
Co to jest obiekt?
W kodzie, łączymy grupę powiązanych zmiennych i metod (funkcji) w jednostkę, nazywamy tę jednostkę obiektem.
Czym są klasy?
Klasy są planami, które definiują zachowanie i informacje, jakie będą zawierać nasze obiekty. Pozwalają nam produkować i instancjonować nowe instancje.
3. Co to jest metoda instancji?
Metoda instancji jest zachowaniem obiektów.
Wiemy, że klasy działają jak fabryka dla naszych obiektów, zdolna do instancjonowania nowych instancji. Co jeśli chcemy poprosić ten obiekt, aby coś zrobił?
W tym miejscu użyjemy przykładu, aby lepiej pokazać tę abstrakcyjną koncepcję:
Powiedzmy, że pomagamy australijskiemu rządowi zbudować aplikację do adopcji koali. Wszystkie koale będą miały imię, wiek, wagę itd. Wyobraźmy sobie, że mamy 50 koali do adopcji i opisujemy każdego z 5 cechami. Bez OOP, zajęłoby ci to 50×5 = 250 zmiennych i skomplikowanych odwołań. Z OOP, możemy opisać to łatwo z mniejszą ilością kodu – jedna klasa koala x 50 instancji. Aby zachować prostotę, nie chcemy powtarzać tego samego kodu w kółko.
class Koala attr_accessor :name, :weight, :age @@all =
def initialize(name) @name = name @weight = weight @age = age Koala.all << self end
def self.all @@all end def donation
puts " Thank you for helping me! " endend
Więc robiąc to, możemy stworzyć tyle koali, ile chcemy (wystarczy wywołać metodę koala.new), i możemy sprawić, że wszystkie z nich powiedzą „Dziękuję, że mi pomogłeś” ( wystarczy wywołać metodę donation na instancji koala)
.