- Liittynyt
- 18.12.2002
- Viestejä
- 246
^
Kiitos edellisistä. En osannut tuota kysymystä oikein selittää kunnolla, mutta sain se kuitenkin tehtyä.
Nyt taas yksi tiukka kysymys.
Minulla on yhdessä luokassa monta metodia. Metodissa 1 on eräs Double arvo, jonka haluan tulostaa metodissa 4. Miten ihmeessä saan nuo näkymään monessa metodissa?
Olen yrittänyt muuttaa molemmat metodit privateista, publiceiksi. Mutta ei onnistu.
Et saa metodin sisällä esiteltyä muuttujaa näkymään metodin ulkopuolella muuten kuin palauttamalla ko. muuttujan arvon metodin lopussa return-lauseella tai siirtämällä muuttujan esittelyn metodin ulkopuolelle. Eli muuttamalla paikallisen muuttujan luokan muuttujaksi. Paikalliset muuttujat ovat näkyvissä vain siinä lohkossa kuin ne on esitelty ja olemassa vain ko. lohkon suorituksen aikana.
Kumpi noista on järkevämpi tapa, on aina tapauskohtaista. Onko ko. muuttuja sellainen, että sen sisältämä tieto pitää olla olemassa muulloinkin kuin metodin 1 suorituksen aikana tai onko ko. muuttujan sisältö oikeasti luokan ominaisuus? Jos näin, niin kannattanee muuttaa tuo paikallinen muuttuja luokan muuttujaksi.
Jos ko. muuttuja ei loogisesti kuulu luokan muutujaksi ja metodin 1 muokkaus palauttamaan ko. muuttujaa ei tuota ongelmia, niin sitten return-lauseen käyttö ollee fiksumpaa. Mikäli metodi palauttaa jo jotakin ja muuttuja ei silti loogisesti kuulu luokan muuttujaksi, tarvinnee koodi suurempaa uudelleenjärjestelyä, jotta se on loogisesti jaoteltu...
http://leepoint.net/JavaBasics/methods/methods-22-local-variables.html