29. september 2008 - 15:41Der er
6 kommentarer og 1 løsning
Hjælp til lidt java kode.
Jeg er kørt helt fast i denne kode og har brug for lidt hjælp til hvordan jeg kommer videre.
Jeg har 2 klasser: 1 main og en Account klasse hvor jeg har mine metoder i.
Mit problem er, at jeg skal kunne "overføre" et beløb fra en konto til en anden ved hjælpe af denne metode:
public double transfer(double amount, Account acctToDeposit) { if (kassekredit == false && balance - amount < 0.00) { System.out.println( name + " du har ikke en kassekredit. Din konto kan derfor ikke gå i minus."); } else { balance = (balance - amount) ;
} return balance; }
I main klassen ser koden der kalder metoden sådan ud:
acct3.transfer(10.00, acct4);
acct3 og acct4 er Account objekter.
Mit problem er at jeg godt kan trække beløbet fra acct3, men hvordan får jeg sat samme beløb ind på acct4?
Skal der oprettes en ny metode til dette, eller kan der gøres i samme metode som hæver beløbet fra acct3?
Umiddelbart synes jeg at en transfer metode som kalder withdraw metoden på et account objekt og deposit metoden på et andet account objekt lyder som en god løsning.
Men du skal nok overveje noget concurrency and transactional integrity !
Det virker erik.. Super takker - Smid lige et svar :)
Men hvad er der sker når du skriver acctToDeposit.balance? Er acctToDeposit blevet til en objekt eller ??
Takker for svaret
@arne v - Det lyder alt for avanceret for mit vedkommende og for min kunne men jeg takker for dit input.. Det kan være at jeg kan bruge der længere henne i skoleforløbet :)
Når der står "Account acctToDeposit" i parameterlisten, betyder det at du på et tidspunkt kommer til at kalde metoden med et object af typen Account.
Og det er også rigtigt hvad Arne skriver. Man bør nok ikke lade balancen være public til både læsning og skrivning. Måske skal den kun have et get-metode, og så ændres vha andre metoder såsom Withdraw og Insert. Det kommer du nok til :)
Ok, så når man skriver acctToDeposit.balance tager man det konto objekt man har kaldt i metoden og "sætter" pengene ind ved at skrive acctToDeposit.balance+amount; - Er det korrekt forstået?
Når du skriver "acctToDeposit" har du fat i det objekt, man har kaldt metoden med.
Når du skriver "acctToDeposit.balance" har du fat i det felt i objektet, som du har kaldt "balance".
Når du skriver "acctToDeposit.balance+amount" udregner du den nye balance.
Når du skriver "acctToDeposit.balance+amount=acctToDeposit.balance+amount" udregner du den nye balance, og sætter beløbet ind i feltet du kalder "balance".
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.