Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2020-09-28, 19:49
  #13
Medlem
När du skapar en variabel som static säger du att den ska tillhöra klassen (en s.k. class variable). Det innebär att varje gång du ändrar värdet på variablen reflekteras den ändringen i alla instanser av den klassen. Om du istället skapat variabeln utan static blir den unik per instans (en s.k. instance variable).

Du har fått bra lösningsförslag tidigare i tråden, men tänkte att jag skulle förtydliga lite angående static.
Citera
2020-11-07, 09:16
  #14
Medlem
Citat:
Ursprungligen postat av erkki17
När du skapar en variabel som static säger du att den ska tillhöra klassen (en s.k. class variable). Det innebär att varje gång du ändrar värdet på variablen reflekteras den ändringen i alla instanser av den klassen. Om du istället skapat variabeln utan static blir den unik per instans (en s.k. instance variable).

Du har fått bra lösningsförslag tidigare i tråden, men tänkte att jag skulle förtydliga lite angående static.

Ok, så om en sk. klass variabel ändras (static) så ändras variabeln även i redan skapta instanser eller berör ändringen bara nästkommande skapade objekt?
Citera
2020-11-08, 13:54
  #15
Medlem
kjellbrels avatar
Citat:
Ursprungligen postat av bosscs2
Ok, så om en sk. klass variabel ändras (static) så ändras variabeln även i redan skapta instanser eller berör ändringen bara nästkommande skapade objekt?
Det berör alla objekt, men ändringen sker endast på ett ställe. En klassvariabel lagras inte i objekten. Det svar du fick förklarar det bra, men jag tror du misstolkar det.

Ett test du kan göra som kanske är nyttigt för dig för att få grepp om detta:

Skapa en klass med endast en static-variabel, ex en int med namnet s, och sen en main-metod. Skapa inte några objekt (än). Skriv ut värdet på s, ändra värdet, skriv ut igen. Verkar det fungera bra att använda den här variabeln trots avsaknaden av objekt av din nya klass? Var lagras s? Om du lägger till kod i main och skapar objekt (av din testklass), hur många s finns det då? Ändras antalet? Titta tillbaka på Erkkis svar och fundera.
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback