Avatar billede Tampico Praktikant
12. februar 2004 - 14:20 Der er 3 kommentarer og
1 løsning

Objekt til klassen selv

Hejsa !!!

Jeg har en klasse penge, som volder en del problemer. I forbindelse med nogle ordrelinier skal den holde styr på en subtotal og en totalpris.

Jeg vil umildbart tro at det er fordi den i metoderne add og times ikke smider objektet videre, hvilket gør at resultat bliver nul ???

Altså, er det forket når jeg sender et objekt til sig selv:
"return new Penge(subKr*antal);"

Jeg kan bare konstatere at virablerne ikke bliver sat....???

Hele klassen er nedenunder.



public class Penge
{
  private double kr, subKr;   
 
  public Penge()
  {
    this.kr=kr; 
  }   
 
  public Penge(double kr)
  {
    this.kr=kr; 
  }   
 
  public double getPenge()
  {
    return kr;   
  }
 
  public Penge times(double antal)
  {   
    return new Penge(subKr*antal);
  } 
 
  public Penge add(double nyKr)
  {     
    return new Penge(nyKr+kr); 
  }   
 
  public String toString()
  {
    return ""+getPenge(); 
  }   
}




På forhånd tak....
Avatar billede arne_v Ekspert
12. februar 2004 - 14:23 #1
public Penge()
  {
    this.kr=kr; 
  }   
 
skal nok være:

public Penge()
  {
    this.kr=0; 
  }   
 
public Penge times(double antal)
  {   
    return new Penge(subKr*antal);
  } 
 
skal nok være:

public Penge times(double antal)
  {   
    return new Penge(kr*antal);
  }
Avatar billede Tampico Praktikant
12. februar 2004 - 15:43 #2
hmmm....fandt ud af at det er fordi metoden add modtager et objekt af klassen Penge, så den derfor kommer til at se sådan ud:


public Penge add(Penge nyKr)
  {   
    return new Penge(nyKr);     
  }


Men så er jeg jo også nød til at lave en metode i klassen Penge der modtager et objekt....nemlig:


public Penge(Object kr)
  {   
    this.subKr=kr;     
  }


"subKr" er erklæret som object. Men hvordan får jeg så lavet subKr om til noget jeg kan hente med min toString eller getPenge-metode???
Avatar billede arne_v Ekspert
12. februar 2004 - 16:26 #3
Drop subKr total og lav noget a la:

  public Penge(Object kr)
  { 
    this.kr= ((Penge)kr).getPenge();
  }

i stedet for.
Avatar billede arne_v Ekspert
06. marts 2004 - 16:02 #4
OK ?
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