webForumDet fria alternativet

Retunera array

5 svar · 934 visningar · startad av Blårand

BlårandMedlem sedan jan. 20031 504 inlägg
#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
		}

}
jmeMedlem sedan maj 20011 967 inlägg
#2

Du returnerar en array så här:

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

jmeMedlem sedan maj 20011 967 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

BlårandMedlem sedan jan. 20031 504 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];
	}
pimmeMedlem sedan sep. 2001553 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.

BlårandMedlem sedan jan. 20031 504 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 :)

125 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
122 ms — hämta tråd, inlägg och bilagor (db)