webForumDet fria alternativet

modifieraren static

2 svar · 375 visningar · startad av kemwater

kemwaterMedlem sedan aug. 20013 inlägg
#1

Jag förstår inte modifieraren static.

se här:

class Klass1
{
private static String name;

I testklassen skapas objekten
Klass1 v1 = new Klass1 ( "Första");
Klass1 v2 = new Klass1 ("Andra");
//sen anropas metoderna
v1.print();
v2.print();
VARFÖR ? skrivs bara "Andra" ut från både v1.print() och v2.print()? Om jag tar bort static från klassvariabeln skriver den ut både "Första" och "Andra". Jag har svårt att förstå vad som händer.

------------------
Carina

sgtpepperMedlem sedan apr. 20007 588 inlägg
#2

Du ger inte hela koden men jag antar att du i konstruktorn till Klass1 sätter name.

Eftersom name är statisk så innebär det att det bara finns i ett exemplar för klassen, oberoende av hur många objekt du skapar så existerar det ett och bara ett exemplar av name.

Alltså kommer name först att sättas till "Första" för att sedan ändras till "Andra". När du anropar print() på de två olika objekten så kommer de att skriva ut samma sak eftersom name är samma fält..

Hoppas att du förstår :).

------------------
"To iterate is human, to recurse, divine" - L. Peter Deutch

kemwaterMedlem sedan aug. 20013 inlägg
#3

Tack, sgtpepper. Nu förstår jag modifieraren static.

------------------
Carina

126 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)