Avatar billede fastpoint Nybegynder
28. oktober 2004 - 11:13 Der er 9 kommentarer og
1 løsning

Returnere flere værdier

Hvordan kan en metode returnere mere end en værdi? – hvilken form for parameteroverførsel skal anvendes?
Avatar billede Slettet bruger
28. oktober 2004 - 11:15 #1
Java kan kun returnere en værdi eller rettere sagt en type fra en metode af. Hvis du vil ha' returnereet flere værdier må du ligge dem ind i et Array, en Collection eller lignenede.
Avatar billede fastpoint Nybegynder
28. oktober 2004 - 11:17 #2
Er du sikker? kigger på følgende opgave

1.    Lav klasse Beregn, med en metode byt i en som har to parametre, og som bytter om på de to parametre og returnerer dem.
Udvid klassen Beregn med en metode max(int, int), som returnerer den største af parametrene. Brug call-by-value parameter overførsel.
Udvid klassen Beregn med en metode min(int, int), som returnerer den mindste af parametrene. Brug call-by-reference parameter overførsel.
Udvid klassen Beregn med en metode minMax(int,int,int), som returnerer både den mindste og den største af parametrene. Hvordan kan en metode returnere mere end en værdi – hvilken form for parameteroverførsel skal anvendes?
Udvid klassen beregn med en metode lige(int), som returnerer true hvis parameteren er lige og false hvis den er ulige.



tænkte også på noget... man bruger vel ikke rigtig  call-by-reference parameter overførsel i java? men call-by-value
Avatar billede Slettet bruger
28. oktober 2004 - 11:17 #3
f.eks.:

public Object[] doSomething() {
  String myStr = "Hello world";
  Integer myInt = new Integer(3);

  return new Object[] { myStr, myInt };
}

ok?
Avatar billede fastpoint Nybegynder
28. oktober 2004 - 11:18 #4
er ikke interesset i de andre spørgsmål eftersom de ikke er noget som jeg har problemer med at lave... men tænkte bare over det med om man kan returnere flere parametre.. den eneste måde jeg kan gøre det på er ved at returne en en string... men det kræver jo at det så er tekst man returnere
Avatar billede Slettet bruger
28. oktober 2004 - 11:19 #5
man kan da ikke bruge call-by-reference parametre i Java, ikke hvad jeg ved af.
Avatar billede Slettet bruger
28. oktober 2004 - 11:21 #6
Hvis dine parametre ikke er simple datatyper, så behøves du jo ikke at returnere dem, men hvordan du vil ændre i referencer til simple datatyper i Java er for mig en gåde. Jeg ved man kan i C#, C, C++ osv... men ser det ikke muligt i Java, med mindre de har tilføjet det som en ny feature i Java 5 (1.5.0) jeg ikke har hørt om...
Avatar billede fastpoint Nybegynder
28. oktober 2004 - 11:22 #7
Det mener jeg heller ikke at man kan.. også derfor jeg undrede mig over at der var et spørgsmål om det... sådan direkte i hvertfald.. kig evt. på
http://mindprod.com/jgloss/callbyreference.html

tak for hjælpen:)
Avatar billede fastpoint Nybegynder
28. oktober 2004 - 11:23 #8
det eksempel du giver er vist noget af det de mener man skal gøre:)
Avatar billede Slettet bruger
28. oktober 2004 - 11:41 #9
Jep, det er det samme artiklen beskriver...

Takker for point, forresten :-)
Avatar billede jakoba Nybegynder
28. oktober 2004 - 12:07 #10
Hvis du ønsker at få returneret fx en integer, en streng og 2 double værdier kan du lave en klasse der indeholder det:

class Returner4 {
  int i_verdi;
  String s_verdi;
  double d_verdi1, d_verdi2;
}

og når du så kalder din funktion giver du den en instans af den klasse som parameter:

  Returner4 parameterObjekt = new Returner4();
  dinFunktion( parameterObjekt );

indeni din funktion kan du så stoppe de ønskede værdier ind i det objekt, og de vil så ligge der når funktionen er færdig.

  System.out.println( "dinFunktion gav "
                        +parameterObjekt.i_verdi +", "
                        +parameterObjekt.s_verdi +", "
                        +parameterObjekt.d_verdi1 +" og "
                        +parameterObjekt.d_verdi2 +"."
                        )

mvh JakobA
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester