Hej Din kod:Kod problem
Har en liten fråga här angående koden nedan. När man tar ut mer pengar än man har på kontot ska man få upp ett
meddelande som detta: "Inga pengar pa kontot!" Men det funkar inte. Är det någon som kan se va det är för fel?
Tacksam för svar.
class Konto
{
private int Saldo;
private String KontoInnehavare;
public Konto(int saldo, String KontoInnehavare)throws Exception{
setSaldo(saldo);
setKontoInnehavare(KontoInnehavare);
}
public int getSaldo(){
return Saldo;
}
public String getKontoInnehavare(){
return KontoInnehavare;
}
public void setSaldo(int saldo)throws Exception{
if(Saldo<0)
throw new Exception("Inga pengar pa kontot!");
this.Saldo = Saldo;
}
public void updateSaldo( int cash ) {
this.Saldo = this.Saldo + cash;
}
public void setKontoInnehavare(String KontoInnehavare)throws Exception{
if(KontoInnehavare.length()>6)
throw new Exception("Kontoinnehavarens namn måste vara 6 bokstäver!");
this.KontoInnehavare = KontoInnehavare;
}
public static void main (String[] args)throws Exception
{
try{
Konto k1 = new Konto(500, "Dennis");
Konto k2 = new Konto(400, "Carina");
System.out.println(k1.getKontoInnehavare()+":"+k1.getSaldo());
System.out.println(k2.getKontoInnehavare()+":"+k2.getSaldo());
}catch(Exception e){System.out.println("ERROR:"+e.getMessage());}
System.out.println();
System.out.println("Skapa ett konto till Dennis med 0 kr");
Konto k1 = new Konto(0, "Dennis");
System.out.println();
System.out.println("Satt in 500 kr pa Dennis konto");
k1.setSaldo(500);
System.out.println("Ta ut 550 kr pa Dennis konto");
k1.updateSaldo(-550);
System.out.println("Saldot pa Dennis konto ar: " + k1.getSaldo() + " kr");
System.out.println();
System.out.println("Skapa ett konto till Carina med 400 kr");
System.out.println();
Konto k2 = new Konto(400, "Carina");
System.out.println("Ta ut 450 fran Carinas Konto");
k2.updateSaldo(-450);
System.out.println("Satt in 650 pa Carinas konto");
k2.updateSaldo(650 );
System.out.println("Saldot pa Carinas konto ar: " + k2.getSaldo() + " kr");
System.out.println();
}
}
MVH AHASv: Kod problem
public void setSaldo(int saldo)throws Exception{
if(Saldo<0)
throw new Exception("Inga pengar pa kontot!");
this.Saldo = Saldo; <- du sätter this.Saldo till this.Saldo eftersom inparametern heter saldo med litet s medan klassvariabeln heter saldo med stort S.
}
Byt till:
public void setSaldo(int saldo)throws Exception{
if(Saldo<0)
throw new Exception("Inga pengar pa kontot!");
this.Saldo = saldo;
}
Förutom det så ser det inte ut som om du fångar ditt exception - det skrivs aldrig ut.
//Emma