2
svar
143
visningar
solaris behöver inte mer hjälp
klasser och constructor
Varför skrivs det ut :
1, 2, 6
4, 5, 6
Dels eftersom det bara är en konstruktor så tycker jag inte den ska skriva ut nått. Och varför blir c omvandlad till 6? Har det något med att z är static? Så jag har förstått static så tillhör z klassen och inte någott objekt.
Det har absolut att göra med att z är static, och därför hör till klassen AClass och inte objekten a och b. Det som händer när main() anropas är alltså följande:
- a skapas, och konstruktorn för AClass anropas med värdena 1,2,3
- a.x=1
- a.y=2
- AClass.z=3
- b skapas, och konstruktorn för AClass anropas med värdena 4,56
- b.x=4
- b.y=5
- AClass.z=6 (notera här att z skrivs över)
- a skrivs ut (toString anropas automatiskt)
- Medlemsvariablerna x och y har inte påverkats från 1 och 2, men den statiska variabeln z har skrivits över med 6
- b skrivs ut
- Varken medlemsvariablerna eller den statiska klassvariabeln har ändrats sedan b konstruerades
Konstruktorn skriver inte ut något, men i 'main' står det ju println.