Anbegyndere lærer meget tidligt at bruge klasser og objektorienterede programmeringsteknikker. Men de får aldrig at vide hvorfor.
I stedet for at fortælle os hvorfor, begynder forklaringerne altid med at beskrive generiske objekter fra det virkelige liv – biler er et populært eksempel … og eleverne begynder at diskutere mærker og modeller.
Men HVORFOR? Hvad er klasser til?
Det enkle svar,
Programmører bruger klasser, når de har brug for mere end ét objekt.
Tag dette eksempel fra et populært spil, Candy Crush.
Ser du syv blå slik på skærmen? En spiludvikler ville ikke kode et blåt slik syv gange. Du opretter en klasse med et blåt slik og multiplicerer den syv gange.
Klasser er bare slikfabrikker. Eller bilfabrikker. Eller babyfabrikker. Eller koala-fabrikker. Du definerer tingen én gang, og lader din kode skabe så mange, som du vil!
OOP = Brug af klasser i din programmering
Et par officielle definitioner, som vi skal tale om først.
Hvad er et objekt?
I kode kombinerer vi en gruppe relaterede variabler og metoder (funktioner) til en enhed, vi kalder denne enhed for et objekt.
Hvad er klasser?
Klasser er de blueprints, der definerer den adfærd og de oplysninger, som vores objekter vil indeholde. De giver os mulighed for at fremstille og instantiere nye instanser.
3. Hvad er en instansmetode?
En instansmetode er objekters adfærd.
Vi ved, at klasser fungerer som en fabrik for vores objekter, der er i stand til at instantiere nye instanser. Hvad nu, hvis vi vil bede dette objekt om at gøre noget?
Her vil vi bruge et eksempel for bedre at vise dette abstrakte begreb:
Lad os sige, at vi hjælper den australske regering med at bygge en app til at adoptere koalaer. Koalaerne vil alle have et navn, alder, vægt osv. Forestil dig, at vi har 50 koalaer til adoption, og vi beskriver hver enkelt med 5 karakteristika. Uden OOP ville det tage dig 50×5 = 250 variabler og komplekse referencer. Med OOP kan vi beskrive det nemt med mindre kode – én koala-klasse x 50 instanser. For at holde det enkelt ønsker vi ikke at gentage den samme kode igen og igen.
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
Så ved at gøre dette kan vi oprette så mange koalaer, som du vil (bare kald Koala.new-metoden), og kan få dem alle til at sige “Tak fordi du hjælper mig” .( bare kald donationsmetoden på koala-instansen)