Gå til innhold

Anbefalte innlegg

Hvordan kan jeg bruke switch til å sende til ulike metoder?

feks hvis jeg har skrevet:

class test {
public static void main(String [] args) {
Scanner tast = new Scanner(System.in);
System.out.println("velg 1-4");
System.out.println("1: Registrering");
System.out.println("2: Skriv ut bookinger");
System.out.println("3: Skriv ut gjesteinfo");
System.out.println("4: Avslutt systemet");
int a = tast.nextInt();

switch (a) {
case 1: ; break;
case 2: ; break;
case 3: ; break;
case 4: break;
default: System.out.println("Prøv igjen, 1-4");
}
}
}

 

Hvor de videre metodene heter registrering, bookinger, gjesteinfo.

Hva kan jeg skrive i de ulike "casene" for å sende til de ulike metodene utifra hva brukeren velger?

Java er veldig nytt for meg så dette er bare noe jeg prøver for morro skyld. :)

Lenke til kommentar
Videoannonse
Annonse

Men nå lurer jeg på en ting til..

Dette er det jeg har skrevet:

import java.util.*;

class test {
public static void main(String [] args) {

Meny m = new Meny();
m.valg();
}
}

class Meny {
void valg() {

Scanner tast = new Scanner(System.in);

int a = 0;
while (a < 4) {
System.out.println("velg 1-4");
System.out.println("1: Registrering");
System.out.println("2: Skriv ut bookinger");
System.out.println("3: Skriv ut gjesteinfo");
System.out.println("4: Avslutt systemet");
a = tast.nextInt();

switch (a) {
case 1: registrering(); break;
case 2: System.out.println(); break;
case 3: System.out.println(); break;
case 4: System.out.println(); break;
default: System.out.println("Prøv igjen, 1-4");

}
}
}
}

class registrering {
void registrering() {
System.out.println("YEY");
}
}

 

Det funker ikke som jeg vil.. Det jeg vil at den skal gjøre er å be meg velge 1-4 og når jeg da velger 1 som er "registrering", skal den skrive ut "YEY"... Aner egentlig ikke hvordan jeg skal få det til. Har sett litt her og der og googlet litt osv, men blir ikke klokere.. Noen som kan hjelpe?

Lenke til kommentar

Enten så må du gjøre "registrering" til en lokal metode i "Meny", eller så må du instansiere "registrering"-klassen og kalle "registrering()" i det objektet. Altså:

 

case 1: registrering minRegistrering = new registrering();

minRegistrering.registrering();

break;

 

Men hvis jeg kan få lov til å dele noen generelle clean-code-tips: metodenavn bør gjerne være verb, mens klassenavn bør være substantiv. Så en klasse kan være "register" eller "registrering" (litt avhengig av hva klassen egentlig skal representere - en "registrering" vil typisk være en klasse som bare instansieres mens du utfører handlingen det er å registrere en oppføring og så forkastes etterpå, mens hvis klassen representerer informasjon som skal lagres i et register, så bør den kanskje hete "oppføring" eller noe tilsvarende), mens metoden bør hete "registrer".

Endret av Sutekh
  • Liker 1
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...