Javahjälp!

Betazoid

Trådstartare
Jag sitter och klurar på en uppgift, men förstår inte vad som är fel, kanske finns det någon annan som vet?

Jag har ett metodanrop som ser ut så här:

hittaKnr(knr);

Själva metoden:

public int hittaKnr(int knr) {

int i=0;
while ((i< antalbankkonton) && (knr !=konto.getNr())){
i++;
return i;
}
}

Och när jag kompilerar får jag felmeddelandet:

Can not find symbol - method hittaKnr(int)

Jag begriper inte mycket av det jag håller på med och framför allt inte vad som är fel! Gör du?
 
Sv: Javahjälp!

Kan inte svara med bara den koden. Anropar du metoden ifrån samma klass som den är definierad? Annars måste du ange objektet också.

Metoden verkar för övrigt lite ogenomtänkt. Vad är det den ska göra? Som det är nu kommer den att avslutas omedelbart.

Använd gärna bukefalos code-taggar, så blir det mer lättläst när du postar:
Kod:
public int hittaKnr(int knr) {
   int i=0;
   while ((i< antalbankkonton) && (knr !=konto[i].getNr())){
      i++;
      return i;
   }
}
 
Senast ändrad:
Sv: Javahjälp!

Det är nog lika bra att jag skickar med alltihop, för jag har ingen koll på vad som behövs, det är inget som är färdigt och mycket som inte fungerar, men det felmeddelandet jag fick har jag nu stött på flera gånger så jag tänkte lösa det först. Att metoden är ogenomtänkt förvånar mig inte, jag har ingen koll på det här alls!

Kod:
import java.util.Scanner;

public class Bankkund {
    private Person kund;
    private Bankkonto [] konto;
    private int antalbankkonton;
    
//konstruktor

public Bankkund () {
    konto = new Bankkonto [4];
    antalbankkonton = 0;
    kund = new Person ();
}


private void nyKund () {
    kund.lasIn ();
}

public void nyttKonto(int knr){
 Bankkonto[] konto;

}

public int hittaKnr(int knr) {
         
     int i=0;
    while ((i< antalbankkonton) && (knr !=konto[i].getNr())){
        i++;
        return i;
 }
}


  public void skrivKonton(){
    for( int i=0; i<4; i++){
        
        System.out.print(konto[i] + " ");
    }
}            


    
public int meny() {
    int svar = 0;
    Scanner scan = new Scanner(System.in);
    while (svar < 1 || svar > 8) {
      System.out.println("nMeny: n");
      System.out.println("1. Skapa nytt konto.       5. Ta bort konto.");
      System.out.println("2. Sätta in pengar.        6. Saldobesked.");
      System.out.println("3. Ta ut pengar.           7. Skriv kundinfo.");
      System.out.println("4. Byta kundens adress.    8. Avsluta.n");

    } 
    return svar;
  } 

  
  public boolean switcha(int val) {
      boolean sluta = false;
      double pengar;
      int knr; //kontonummer

      Scanner scan = new Scanner(System.in);

      switch (val) {
         case 1: 
            System.out.println("Vilken summa skall sättas in? ");
            pengar = scan.nextDouble();
            knr = (int) (Math.random() * 100000); //Vi slarvar och slumpar 
                                                  //ett kontonummer utan koll
            konto.nyttKonto(knr);                 //anropar metoden nyttKonto
            break;

         case 2: //sätt in pengar
            System.out.println("Välj ett av följande konton: ");
            konto.skrivKonton(); //skriver ut konotnummer och saldo
            knr = scan.nextInt(); //välj ett konto
            System.out.println("Vilken summa skall sättas in?");
            pengar = scan.nextDouble();
            konto.hittaKnr(knr);
            konto[i].sattIn (pengar); //anropar metoden sättIn
            break;

         case 3: //ta ut pengar
            System.out.println("Välj ett av följande konton.");
            konto.skrivKonton();
            knr = scan.nextInt();
            System.out.println("Vilken summa skall tas ut?");
            pengar = scan.nextDouble();
            konto[i].taUt (pengar);
            break;

         case 4: //Byt kundens adress
            Systen.out.println("Viken kund har ny adress?");
            kund = scan.nextString();
            kund.flytta();
            break;
            
         case 5: //Ta bort konto
            konto.skrivKonton();
            System.out.println("Viket konto vill du radera?");
            knr = scan.nextInt();
            konto.hittaKnr(knr);
            konto[i].getSaldo();
            //if saldo = 0;
           
         case 8: //Slut
            System.out.println("Tack och adjö!");
            sluta = true;
            break;
      } //slut på switch
     return sluta;
    } //slut på switcha-metoden
  
  
public static void main(String [] arg) {
        


        Bankkund k = new Bankkund(); //Ett Bankkund-objekt skapas med 
                                     //default-värden på namn, adress, telnr.
    boolean sluta = false;
    int val;
        
    k.nyKund(); //läser in namn, adress och telnummer mha 
                    //läsIn-metoden i Person-klassen

    while (!sluta) { //så länge som sluta är falskt
        val = k.meny(); //skriv ut menyn och välj
        sluta = k.switcha(val); //sänd valet till switcha-metoden
                                    //som anropar lämplig metod,
                                    //t.ex. taUtPengar-metoden.
    } //slut på while-metoden
    } //slut på main-metoden
}
 
Senast ändrad:
Sv: Javahjälp!

hittaKnr ligger i Bankkunds-klassen. Så vitt jag kan se försöker du anropa funktionen på en array av Bankkonto-objekt.
 
Sv: Javahjälp!

Well, för att anropa funktionen från en annan funktion i samma klass behöver du bara skriva hittaKnr( knr );
För att gå till vad som är fel i koden...vet jag inte ens var jag skulle börja.
 

Bukefalos, Hästnyheter, Radannonser

Allmänt, Barn, Dagbok

Hund, Katt, Andra Djur

Hästrelaterat

  • Dressyrsnack nummer 18
  • Gamla hösilagebollar
  • Strö i boxen
Tillbaka
Upp