Skillnad mellan versioner av "Array av referenser"
Taifun (Diskussion | bidrag) m |
Taifun (Diskussion | bidrag) m |
||
(9 mellanliggande versioner av samma användare visas inte) | |||
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</span> referenser <span style="color:red">av typ Fisk</span></b>. |
− | + | 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 referenserna <b>f[i]</b>. | |
− | + | Varje referens <b>f[i]</b> pekar nu på ett Fisk-objekt: <b>i = 0, 1, ... , 4</b> eftersom <b>for</b>-loopen har <b>5</b> varv. | |
− | Tanken om att | + | Tanken om att skapa en "array av objekt" måste förkastas. Lösningen är en <b>tvåstegsmetod</b>: |
<b>Steg 1:</b> <b><span style="color:red">Skapa en array av referenser</span></b>. | <b>Steg 1:</b> <b><span style="color:red">Skapa en array av referenser</span></b>. | ||
− | <b>Steg 2:</b> <b><span style="color:red">Låta varje | + | <b>Steg 2:</b> <b><span style="color:red">Låta varje referens i arrayen peka på ett objekt</span></b>. |
</big> | </big> | ||
</div> | </div> | ||
Rad 63: | Rad 63: | ||
− | = <b><span style="color:#931136">Läs om Referensvariabler på sid | + | = <b><span style="color:#931136">Läs om Referensvariabler på sid 100-103 och om Array av referenser på sid 199-202.</span></b> = |
Rad 89: | Rad 89: | ||
− | [[Matte:Copyrights|Copyright]] © | + | [[Matte:Copyrights|Copyright]] © 2022 [https://www.techpages.se <b><span style="color:blue">TechPages AB</span></b>]. All Rights Reserved. |
Nuvarande version från 28 januari 2022 kl. 08.47
Lektion 20 | Genomgång | Övningar |
Referensvariabler
Referensen "pekar" på objektet
Klassen Fisk
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.
På rad 26 överskrids arrayens övre indexgräns, eftersom no[4] är arrayens 5:te element som är odefinierat.
Programmet ArrayOfRef
På 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 referenser av typ Fisk.
Fisk-objekten skapas på rad 10 i for-loopen av koden new Fisk(). I samma sats tilldelas de till referenserna f[i].
Varje referens f[i] pekar nu på ett Fisk-objekt: i = 0, 1, ... , 4 eftersom for-loopen har 5 varv.
Tanken om att 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 referens i arrayen peka på ett objekt.
Ett körexempel
Läs om Referensvariabler på sid 100-103 och om Array av referenser på sid 199-202.
Copyright © 2022 TechPages AB. All Rights Reserved.