Skillnad mellan versioner av "Array av referenser"

Från Mathonline
Hoppa till: navigering, sök
m
m
Rad 42: Rad 42:
 
På <b><span style="color:green">rad 7</span></b> skapas en array av 5 referenser: <b>f[0], f[1], ... , f[4]</b> av koden <b><span style="color:red">new Fisk[5]</span></b>.
 
På <b><span style="color:green">rad 7</span></b> skapas en array av 5 referenser: <b>f[0], f[1], ... , f[4]</b> av koden <b><span style="color:red">new Fisk[5]</span></b>.
  
<b>f</b> är ingen array av Fisk-objekt utan en <b><span style="color:red">array av referenser av typ Fisk</span></b>.
+
<b>f</b> är ingen array av Fisk-objekt utan en <b><span style="color:red">array av <b>referenser</b> av typ Fisk</span></b>.
  
Själva Fisk-objekten skapas på <b><span style="color:green">rad 10</span></b> i <b>for</b>-loopen av koden <b><span style="color:red">new Fisk()</span></b>.
+
Själva Fisk-objekten skapas på <b><span style="color:green">rad 10</span></b> i <b>for</b>-loopen av koden <b><span style="color:red">new Fisk()</span></b>. I samma sats tilldelas de till referensarrayelementen <b>f[i]</b>.
  
På samma <b><span style="color:green">rad 10</span></b> (i samma sats) tilldelas varje element av referensarrayen ett Fisk-objekt.
+
Varje referens <b>f[i], i = 0, 1, ... , 4</b> pekar nu på ett Fisk-objekt.  
  
 
Tanken om att direkt skapa en "array av objekt" måste förkastas. Lösningen är en <b>tvåstegsmetod</b>:
 
Tanken om att direkt skapa en "array av objekt" måste förkastas. Lösningen är en <b>tvåstegsmetod</b>:

Versionen från 24 januari 2021 kl. 17.48

       Lektion 20          Genomgång          Övningar      


Referensvariabler

Referensvariabler.jpg


Referensen "pekar" på objektet

Ref pekar Obja.jpg


Klassen Fisk

Fish.jpg

För enkelhetens skull deklareras klassens alla medlemmar som public. Därför definieras inte heller någon konstruktor.

Typkonverteringen till int behövs däför att returtypen till metoderna är int.

rad 26 överskrids arrayens övre indexgräns, eftersom no[4] är arrayens 5:te element som är odefinierat.


Programmet ArrayOfRef

ArrayOfRefa.jpg

rad 7 skapas en array av 5 referenser: f[0], f[1], ... , f[4] av koden new Fisk[5].

f är ingen array av Fisk-objekt utan en array av <b>referenser</b> av typ Fisk.

Själva Fisk-objekten skapas på rad 10 i for-loopen av koden new Fisk(). I samma sats tilldelas de till referensarrayelementen f[i].

Varje referens f[i], i = 0, 1, ... , 4 pekar nu på ett Fisk-objekt.

Tanken om att direkt skapa en "array av objekt" måste förkastas. Lösningen är en tvåstegsmetod:

Steg 1:   Skapa en array av referenser.

Steg 2:   Låta varje element av referensarrayen peka på ett objekt.


Ett körexempel

ArrayOfRefKorex.jpg


Läs om Referensvariabler på sid 88-91 och om Array av referenser på sid 113-116.


 










Copyright © 2021 TechPages AB. All Rights Reserved.