Ruby klasser
I Ruby börjar en klass med nyckelordet class och slutar med en matchande end.
Detta är en simpel klass
class MinKlass
end
Så här skulle jag skapa ett användbart objekt från det:
objekt = MinKlass.new
För att göra MinKlass mer användbart måste jag ge det en metod eller två.
I detta exempel har jag lagt till en metod som kallas sag_hej:
class MinKlass
def sag_hej
puts "Hej"
end
end
Nu när jag skapar en MinKlass objekt kan jag kalla denna metod för att få det att säga “Hej”:
objekt = MinKlass.new
objekt.sag_hej
När vi kör programmet blir utskriften:
$> ruby minklass.rb
Hej
$>
Instans Variabler
Instans variabler skapas för varje klass instans och är bara tillgängliga i den instansen eller genom de metoder som föreskrivs i denna instans. Instans variabler nås med hjälp av @-operatorn.
class MinKlass
@ett = 1
def gor_nagot
@one = 2
end
def utskrift
puts @one
end
end
instans = MinKlass.new
instans.utskrift
instans.gor_nagot
instans.utskrift
När vi kör programmet blir utskriften:
$> ruby instans_var.rb
nil
2
$>
Klass variabler
En klassvariabel anges med @@-operatorn.Dessa variabler är förknippade med klassen snarare än ett objekt instans av klassen och är samma för alla objekt instanser.
class MinKlass
@@klass_variabel = 1
def lagg_till_ett
@@klass_variabel = @@klass_variabel + 1
end
def resultat
@@klass_variabel
end
end
instansEtt = MinKlass.new
instansTva = MinKlass.new
puts instansEtt.resultat
instansEtt.lagg_till_ett
puts instansEtt.resultat
puts instansTva.resultat
Utskrifen:
$> ruby klass_variabel.rb
1
2
2
$>
Klassmetoder
Klassmetoder definieras genom att ange klassnamnet och en punkt före metodnamnet.
class MinKlass
def MinKlass.min_metod
end
end
Ett annat sätt att skapa en klassmetod är att använda nyckelordet self.
class MinKlass
def self.min_metod
end
end
Nu kan du kalla min_metod via klassen antingen MinKlass.min_metod eller MinKlass::min_metod.
class MinKlass
def MinKlass.min_metod
puts 'Hej Hej'
end
end
MinKlass.min_metod
Utskriften blir:
$> ruby klassmetod.rb
Hej Hej
$>
Skriv ny kommentar



