class Dice - fråga
Hur vet man att B är rätt? Jag är ny till programmering så det är lite svårt. Varför ska man skriva d1.sides? och om man skriver d1.roll() då eftersom "d1 går igenom i klassen för 6" så anropas den till roll? Jag är lite lost, sorry.
Om du inte ser att A, C och D är felaktiga så behöver du sätta dig in i grunderna. Ett sätt att sätta sig in i detta är förstås att gå någon kurs, läsa någon bok, läsa några webbsidor och/eller titta på några videor.
Det viktigaste är att du själv provar. Om du provar alternativen A-D, läser de felmeddelanden du får och sedan rättar koden så kommer du att lära dig en hel del. Alternativen A, C och D kommer att ge dig flest möjligheter till den typen av inlärning.
d1=Dice(6)
innebär att objektet d1
skapas från klassen Dice
och att instansvariabeln sides
tilldelas värdet 6
.
d1.sides
innebär att värdet för instansvariabeln sides
hämtas från objektet d1
.
d1.roll()
anropar metoden roll()
i objektet d1
som då kommer att slumpa fram ett tal mellan 1
och 6
.
I alternativ B så kommer dock d2.roll()
att anropas, inte d1.roll()
...
ok, ska sätta mig in i grunderna.
De kluriga är att konceptuellt så är det inget fel på A (även om man inte ofta vill ge tillgång till ett attribut på det sättet) eller C osv.
Det stora problemet är att både A, C och D gör något fel syntaxvis.
Ex: C försöker kalla på klassens konstruktor utan argument, vilket kommer smälla direkt eftersom klassen har ingen konstruktor som inte tar emot några argument.
Hittar du felen med A och D?