webForumDet fria alternativet

Retunera array

Javaur Java

5 svar · 934 visningar · startad av Blårand

Medlem sedan jan. 20032 356 inlägg
Frågan#1

Har försökt lösa problemet på egen hand, och sökt både på wf och nätet, utan att hitta något bra förklarande exempel. Hittade nedanstående tråd, men jag förstod inte riktigt exemplet.
http://forum.java.sun.com/thread.jspa?threadID=575969&tstart=45

I koden nedan skapar jag i klassen "kortlek" en array som innehåller 52 platser. I varje plats skapar jag ett objekt av klassen "kort", så att jag i arrayen får 52 stycken olika spelkort.

I en tredje klass där jag provar kortleken, skapar jag ett objekt i klassen "kortlek" som då lagrar 52 spelkort/kortobjekt i arrayen.

Vill nu i klassen "kortlek" ha en funktion som retunerar den skapade och blandade kortleken till den testklass som jag skapar kortleken ifrån. Det vill säga retunerar arrayen i klassen "kortlek" och som innehåller de 52 objekten av klassen "kort".

Är nybörjare på java och mixtrar med en del småprogram för att prova mig på lite, så ni får gärna hjälpa mig att förklara hur jag skapar en metod för att retunerar arrayen arrKortlek i exemplet nedan.

import java.io.*;

class Kortlek
{
	final int ANTAL = 51;
	Kort[] arrKortlek = new Kort[ANTAL];

	Kortlek()
		{
			SkapaKortlek();
			BlandaKortlek()
		}

	public void SkapaKortlek()
		{
			arrKortlek[0]= new Kort("Hjarter",2,"1.gif");
			arrKortlek[1]= new Kort("Hjarter",3,"2.gif");
			arrKortlek[2]= new Kort("Hjarter",4,"3.gif");
			arrKortlek[3]= new Kort("Hjarter",5,"4.gif");
                        // osv, osv.....
		}

	public void BlandaKortlek()
		{
                        // Blandar kortleken
		}

         public...ReturneraKortlek()
		{
                        // Returnera kortlek
		}

}
Medlem sedan maj 20012 237 inlägg
#2

Du returnerar en array så här:

public Kort[] returneraKortlek()
{
return arrKortlek;
}

Medlem sedan maj 20012 237 inlägg
#3

Måste bara få lägga till:

Du bör använda små bokstäver som först bokstav i objektnamn och i metodnamn. Konstanta värden skrivs helt med stora bokstäver.

Klassnamn börjar alltid med storbokstav.

Klass klass = new Klass();

Klass Klass = new Klass(); // inte bra

Medlem sedan jan. 20032 356 inlägg
#4

Tack för ditt exempel, det fungerade fint!

En liten följdfråga som kom upp när jag mekade. Om jag exempelvis enbart vill retunera ett specifikt värde ur arrayen (ett kortobjekt), borde då inte nedanstående ha fungerat?

public Kort[] delaUtEttKort(int kortnummer)
	{
		return arrKortlek[kortnummer];
	}
Medlem sedan sep. 20011 086 inlägg
#5

Nej, men däremot

public Kort delaUtEttKort(int kortnummer)
	{
		return arrKortlek[kortnummer];
	}

Eftersom det du returnerar är ett Kort, inte en array med Kort.

Medlem sedan jan. 20032 356 inlägg
#6

Tack för hjälpen, då är jag med.

Klasstänket är nytt för mig och jag är inte helt hemma i det ännu. Men snart är jag nog över den tröskel som man alltid måste försöka ta sig över när man börjar med något nytt. Men sen ska det förhoppningsvis rulla på...för kul är det :)

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