2 svar
143 visningar
solaris behöver inte mer hjälp
solaris 238 – Fd. Medlem
Postad: 17 jan 2019 14:14

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. 

haraldfreij 1322
Postad: 17 jan 2019 16:01

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:

  1. a skapas, och konstruktorn för AClass anropas med värdena 1,2,3
    1. a.x=1
    2. a.y=2
    3. AClass.z=3
  2. b skapas, och konstruktorn för AClass anropas med värdena 4,56
    1. b.x=4
    2. b.y=5
    3. AClass.z=6 (notera här att z skrivs över)
  3. a skrivs ut (toString anropas automatiskt)
    1. Medlemsvariablerna x och y har inte påverkats från 1 och 2, men den statiska variabeln z har skrivits över med 6
  4. b skrivs ut
    1. Varken medlemsvariablerna eller den statiska klassvariabeln har ändrats sedan b konstruerades
Laguna Online 30484
Postad: 17 jan 2019 16:37

Konstruktorn skriver inte ut något, men i 'main' står det ju println.

Svara
Close