Gå til innhold

Å lage en "skrivUt metode" for arrays


Anbefalte innlegg

Dersom jeg skal lage en metode som skriver ut et sammendrag av en array (lottorekke) som opprettes i denne koden, hvordan skal jeg gå frem? Jeg har ikke skrevet slike som skriver ut fra arrays før. Skal jeg bruke "public static int[] printLottorekke" som metodekall?

 

package Uke44;
public class Lotto
{
public Lotto()
{
	genererLottorekke();
}

public static void genererLottorekke()
{
	int[] lottorekke = new int[7];
	for (int i = 0; i < lottorekke.length; i++)
	{
		int index = 1 + (int) (Math.random() * 34);
		int check = searchLottorekke(lottorekke, index);
		while (index == check)
		{
			index = 1 + (int) (Math.random() * 34);
		}
		lottorekke[i] = index;
	}
}

public static int searchLottorekke(int[] lottorekke, int index)
{
	for (int i = 0; i < lottorekke.length; i++)
	{
		if (lottorekke[i] == index)
		{
			return i;
		}
	}
	return -1;
}
}

Endret av jemartinsen81
Lenke til kommentar
Videoannonse
Annonse
  • 2 uker senere...
Gjest Slettet+1374861
Kall den med System.out.println(lotto.toString());

Eventuelt bare:

System.out.println(lotto);

Java kaller objektets toString()-metode automatisk.

 

Er vel heller det at implementasjonen av println med Object som parameter finner frem til toString() (såvidt jeg har forstått så innebærer dette valueOf()) enn att "Java kaller objektets toString()-metode automatisk".

Lenke til kommentar
Er vel heller det at implementasjonen av println med Object som parameter finner frem til toString() (såvidt jeg har forstått så innebærer dette valueOf()) enn att "Java kaller objektets toString()-metode automatisk".
I og for seg korrekt, men String.valueOf() bruker jo toString(), så den gjør jo det indirekte. Hendelsesløpet for System.out.println(Object obj) er, for de som lurer:

 

PrintStream.println(Object obj)
- PrintStream.print(Object obj)
- - String.valueOf(Object obj)
- - - return (obj == null) ? "null" : obj.toString();
- - PrintStream.write(returverdi)
- PrintStream.println()
- - PrintStream.print(System.getProperty("line.seperator"));
- - - PrintStream.write(System.getProperty("line.seperator"));
- -
-

Endret av pgdx
Lenke til kommentar
Gjest Slettet+1374861

hehe, der har du definisjonen gitt... jaja, jeg syns vertfall jeg var nermere enn at "java gjør det automatisk"! for det er jo bare metoden som muliggjør det kallet, ikke det å bare kaste rundt seg med objekter og tro toString() flyr ut.

(no offence Schlesien, vet vel egentlig ikke hva du tenkte når du sa det slik...)

Lenke til kommentar
hehe, der har du definisjonen gitt... jaja, jeg syns vertfall jeg var nermere enn at "java gjør det automatisk"! for det er jo bare metoden som muliggjør det kallet, ikke det å bare kaste rundt seg med objekter og tro toString() flyr ut.

(no offence Schlesien, vet vel egentlig ikke hva du tenkte når du sa det slik...)

 

Jeg tenkte egentlig ikke på annet enn at det var unødvendig å skrive "System.out.println(lotto.toString());", all den tid toString()-metoden i klassen var definert. I slike tilfeller er det vel så greit å benytte seg av at toString() i det hele tatt kalles. Tenkte egentlig ikke på det som skjer veldig "langt bak kulissene", for å være helt ærlig visste jeg noe særlig om det pgdx beskrev. :)

 

Var egentlig bare ment som et lite tips. Syns forsåvidt det er greit å forholde seg til toString() slik.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...