Avatar billede aslan Nybegynder
19. januar 2002 - 14:51 Der er 7 kommentarer og
1 løsning

void?

Er der ikke en der gider at forklare mig hvad man forstår med void i java og helst uddybet?
Avatar billede erikjacobsen Ekspert
19. januar 2002 - 14:54 #1
En metode kan returnere en værdi

  public int gangemedto(int x) {
    return 2*x;
  }

eller den kan returnere ingenting, altså ingen værdi

  public void udskriv(int x) {
    System.out.println(x);
  }

og så skriver man void. Hvad skulle man ellers skrive?
Avatar billede aslan Nybegynder
19. januar 2002 - 15:25 #2
Hvorfor printer dette her så noget ud?

  void available () {
    System.out.println(\"Available are \"+mugs.stockLevel()+\" \"+
      tshirts.stockLevel()+\" \"+carvings.stockLevel()+
      \" curios respectively\\n\");
  }
Avatar billede greybeard Nybegynder
19. januar 2002 - 16:12 #3
void betyder ikke at metoden ikke kan producere et synligt resultat, men at den ikke returnerer en værdi til den kaldende metode.
Avatar billede aslan Nybegynder
19. januar 2002 - 16:17 #4
ok men ville det gøre forskel om jeg skrev :

available () {
    System.out.println(\"Available are \"+mugs.stockLevel()+\" \"+
      tshirts.stockLevel()+\" \"+carvings.stockLevel()+
      \" curios respectively\\n\");
  }

i stedet for:

void available () {
    System.out.println(\"Available are \"+mugs.stockLevel()+\" \"+
      tshirts.stockLevel()+\" \"+carvings.stockLevel()+
      \" curios respectively\\n\");
  }
Avatar billede erikjacobsen Ekspert
19. januar 2002 - 16:25 #5
Ja, du skal have en returtype på. Enten int, String osv, eller void for
ingenting.
Avatar billede aslan Nybegynder
19. januar 2002 - 16:37 #6
Dvs hvis jeg skrev :

String available () {
    System.out.println(\"Available are \"+mugs.stockLevel()+\" \"+
      tshirts.stockLevel()+\" \"+carvings.stockLevel()+
      \" curios respectively\\n\");
  }

ville det så gøre forskel i forhold til :

void available () {
    System.out.println(\"Available are \"+mugs.stockLevel()+\" \"+
      tshirts.stockLevel()+\" \"+carvings.stockLevel()+
      \" curios respectively\\n\");
  } 

Du må gerne uddybe ?
Avatar billede erikjacobsen Ekspert
19. januar 2002 - 16:38 #7
Ja, for hvis du skriver String .... så SKAL du have en return i din
metode, der giver en streng tilbage:

  return \"Peter Plys\";

ellers får du syntaksfejl
Avatar billede nielsbrinch Nybegynder
19. januar 2002 - 18:35 #8
void available () {
    System.out.println(\"Available are \"+mugs.stockLevel()+\" \"+
      tshirts.stockLevel()+\" \"+carvings.stockLevel()+
      \" curios respectively\\n\");
  }

ELLER

String available () {
    return \"Available are \"+mugs.stockLevel()+\" \"+ tshirts.stockLevel()\" \"+carvings.stockLevel()+\" curios respectively\\n\";
  }

er korrekt - men de gør to forskellige ting.

Den første udskriver teksten i konsollen
Den anden returnerer en værdi til der hvor du kalder den. Der hvor du kalder den, skal du altså skrive:

System.out.println(available());

for at det virker, men metode 2.
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