Avatar billede itckongen Nybegynder
28. oktober 2002 - 00:09 Der er 11 kommentarer og
2 løsninger

2 Constructors i 1 class, help :)

Hej Eksperter.

public class TicketMachine
    {

    // prisen på en billet.
    private int price;
    // den mængde penge indsat af en bruger.
    private int balance;
    // totale beløb indsamlet
    private int total;
    // sætter en DefaultValue
    private int DefaultValue = 500;
   
        public TicketMachine(int ticketCost)
    {
        setPrice(ticketCost);
        balance = 0;
        total = 0;
      }
    public PrimarySetting(int DefaultValue)
    {
    setDefaultValue = 500;
    balance = 0;
    total = 0;
    }

Hvordan sætter jeg 2 Constructor ind i 1 class.
Når jeg vælger at lave en ny TicketMachine kan jeg vælge hvad billeten skal koste.
Nu vil jeg have lavet en DefaultValue man bare kan trykke på så den automatisk sætter den til 200 kr fx.
Hvad er der galt med det her og hvorfor virker det ik :)
Avatar billede erikjacobsen Ekspert
28. oktober 2002 - 01:04 #1
Du tilføjer:

  public TicketMachine()
  {
      setPrice(20);
      balance = 0;
      total = 0;
  }
Avatar billede disky Nybegynder
28. oktober 2002 - 07:18 #2
Du laver bare alle de constructors du ønsker, den eneste forskel de SKAL have er de parametere de kaldes med.

f.eks.

TicketMachine()
TicketMachine(int x)
TicketMachine(int x, int y)
TicketMaching(int x, boolean y)

osv.
Avatar billede riversen Nybegynder
28. oktober 2002 - 07:22 #3
en konstruktør SKAL have samme navn som klassen...dvs primarysetting IKKE er en konstruktør
Avatar billede arne_v Ekspert
28. oktober 2002 - 07:48 #4
Måske noget i retning af:

public class TicketMachine {
    private static final int DEFAULTVALUE = 200;
    private int price;
    private int balance;
    private int total;
    public TicketMachine(int ticketCost) {
        price = ticketCost;
        balance = 0;
        total = 0;
    }
    public TicketMachine() {
        this(DEFAULTVALUE);
    }
}

(ved at lade en constructor kalde en anden constructor
kan du sommetider genbruge kode på en hensigtsmæssig
måde)
Avatar billede disky Nybegynder
28. oktober 2002 - 08:29 #5
arne:
Nu siger du sommetider genbruge koden på en hensigtsmæssig måde, det ER måden at gøre det på.

Kig evt. på nogle af java's API'er så vil du se at det er sådanne det er gjort. :)
Avatar billede arne_v Ekspert
28. oktober 2002 - 09:25 #6
Jeg siger sommetider, fordi det ikke altid er muligt at genbruge
kode. Hvis man kan genbruge koden er det en god måde.
Avatar billede disky Nybegynder
28. oktober 2002 - 09:31 #7
okay :-)

Så er vi enige, jeg blev også i tvivl om jeg havde misforstået dig efter jeg postede den :)
Avatar billede riversen Nybegynder
28. oktober 2002 - 09:32 #8
disky: tror hans svar skulle have været omformuleret lidt...som det står har du forstået det rigtig nok :-)
Avatar billede itckongen Nybegynder
28. oktober 2002 - 09:56 #9
Mange tak skal i alle have, hvordan giver jeg både disky og arne_v 15 point hver?
I har trods alt fortjent dem :)
men det vil sige at jeg kan refere til en class lige så mange gange jeg vil blot parameteren i constructeren er forskellig fra gang til gang??
Avatar billede arne_v Ekspert
28. oktober 2002 - 10:05 #10
Ja. Du kan have lige så mange constructors som du vil.
Parameter listen skal være forskellug for at Java kan skelne
mellem dem.
Avatar billede itckongen Nybegynder
28. oktober 2002 - 10:49 #11
Tak for hjælpen.
Har i begge fået point??
Jeg har stadig 15 point ude... lidt underligt
Avatar billede riversen Nybegynder
28. oktober 2002 - 10:52 #12
det tager lidt tid før det opdaterer hos dig
Avatar billede disky Nybegynder
28. oktober 2002 - 10:53 #13
systemmet bag dette site, har desværre mange fejl og mangler :-(

Jeg takker.
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