Hei,
Olen suunnitellut tekeväni projekti pankkiautomaatin, jossa käyttäisi tiliä olio luokkana, johon tallentusi saldo. Eli käyttäisin toimintoja, että kysyin tilin saldoa, voisin lisätä sinne rahaa, voisin nostaa sieltä myös. Miten tämän saisin toimimaan niin, että aina kutsuisin olio-luokka tiliä ja se päivittyisi eri toimintojen yhteydessä.
Minulla on seuraavanlainen ongelma, kun kokeilen Javalla olio luokilla saada saldo muuttujaa toimimaan.
Tässä käyttöliittymä, jossa kutsun tili oliota.
_________________________________________________
private class nappiKuuntelija implements ActionListener
{
Tili tili = new Tili(0);
public void actionPerformed(ActionEvent e)
{
Object aiheuttaja=e.getSource();
if(aiheuttaja.equals(saldo))
{
tiedot.setText(tili.toString());
}
if(aiheuttaja.equals(talleta))
{
tili.setSaldo(tili.getSaldo() parseInt(tunnus.getText()) );
}
if(aiheuttaja.equals(nosta))
{
tili.setSaldo(tili.getSaldo() - parseInt(tunnus.getText()) );
}
}
}
_________________________________________________
Tässä tili olio luokka.
_________________________________________________
public class Tili
{
private int saldo;
/**********************************************************************/
public Tili(int n) //luontimetodit
{
saldo=n;
}
public int getSaldo() { //SETit ja GETit
return saldo;
}
public void setSaldo(int saldo) {
this.saldo = saldo;
}
public String toString()
{
String palaute;
palaute = "Saldo:" saldo;
return palaute;
}
}
Eli ongelmana on, että en saa tuota tili olioita toimimaan, niin että kun koitan vähentää tai lisätä summaa ja tulostaa tilin ulos. Se vain tulostaa saldon, mutta ei tee siihen muutoksia. Voisikto joku neuvoa miten saisin muutokset toimimaan.
javan olio ohjelmointi ongelma
3
620
Vastaukset
- The Rat
Javaa pahemmin tuntematta, ei kai tuota nappikuuntelijaa (luokkien nimet kai yleensä isolla?) luoda aina nappia painettaessa? Jos näin on, luodaan tilikin siinä vaiheessa tyhjänä...
Tee testiluokka tai ainakin testimetodi tuonne, joka muuttelee saldoa ja tulostelee sitä ulos. Näet ainakin, onko vika Tili -luokassa (ei minun silmiini osu mitään varsinaista virhettä).
Termeistä vielä: olio on luokan ilmentymä. Et kutsu luokkaa, vaan kutsut sen ilmentymän metodeja. - aöskdfjöaslkjfasf
Kannattaisi selvittää/katsoa se, yrittääkö ohjelma lisätä/kasvattaa saldoa, eli ovatko lauseet "if(aiheuttaja.equals(talleta))" ja "if(aiheuttaja.equals(nosta))" koskaan tosia.
Toiseksi kannattaisi selvittää toimiiko "itse tehty"(?) parseInt() -metodi.
Kolmanneksi kannattaisi selvittää se, että saldo, talleta ja nosta oliot käyttävät samaa nappiKuuntelija -luokan ilmentymää, ettei esim. joka kerta setActionListener metodia kutsuessa vahingossa luoda uutta ilmentymää "new nappiKuuntelija()", tms. käskyllä.
Neljänneksi kannttaa tarkistaa se, ettei tulostus lauseessa ole mitään vikaa. Esim. ettei se käytä eri tili luokan ilmentymää mitä ohjelma yleisesti muokkaa, tms. - aöskdfjöaslkjfasf
Tuli viellä yksi tarkastus ehdotus mieleen tuosta otsikon rivistä. Eli onko se numero tosiaan "tunnus" nimisessä oliossa/kentässä? (Eli jos yritätkin ottaa arvoa sellaisesta kentässä josta sitä ei ole. Tämä vain tuli mieleen, kun tuo "tunnus" kuulostaa jotenkin hassulta kentän nimeltä, kun käyttäjältä kuitenkin kysytään kai vain raha summaa).
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod225134- 254308
- 272451
- 342234
- 371998
- 151908
En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191587- 121521
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons211237Kerranki asiat oikein
Ilkka ja muut pienpuolueeet...teitte hyvän työn kun valitsitte pätevän henkilön virkaan eikä kepulle passelia!! Jatkakaa101164