public class Laskin {
public int x = 0;
public int y = 0;
public int p = 0;
public Laskin(int a, int b) {
x = a;
y = b;
}
public int laske() {
p = x y;
return p;
}
}
Tämä toimii monen kokeilun jälkeen. Mutta miksi allaoleva koodi ei toiminutkaan vaan köääntäjä ilmotti ettei llöydä p-muuttujaa:
public class Laskin {
public int x = 0;
public int y = 0;
public Laskin(int a, int b) {
x = a;
y = b;
}
public int laske() {
int p = x y;
return p;
}
}
tutoorialissakin tuo int p on tehty vaan että on laitettu se pelkästään tuon metodin sisään eikä tehty sitä tuonne ylös hmmm... :S :S
Aloittelija ihmettelee tätä
4
458
Vastaukset 4
- myöskin tuotanoin
jos muutan laske metodin tyypiksi void niin en tarvitse enäää return p; riviä. Onko parempi kuitenkin tehdä se int tyypiksi että tietää että on kokonaisluku
- -.-.-.-.-.-.
Sillä metodin edessä olevalla void, int, tms. tyypillä kerrotaan vain paluu arvon tyyppi. Void tarkoittaa sitä, ettei metodi palauta mitään. Joudut kysymään itseltäsi, haluatko metodin palauttavan vastauksen vai et, kun mietit sitä otatko returnin pois vai et.
Se toinen toteutuksesi Laskin -luokasta olisi täysin hyödytön jos et palauta laskennan tulosta (eli otat return -lauseen pois). Ensimmäisessä toteutuksessasi voit hakea laskennan tuloksen myös luokan julkisen p -muuttujan kautta, joten siinä voit ottaa return -lauseen pois ja määrätä metodin paluu arvon void -tyyppiseksi. Luokan käyttö on kuitenkin huomattavasti hankalampaa jos et palauta laskennan tulosta. Alla esimerkki miten ensimmäisen Laskin -luokkasi käyttö muuttuu jos otat return lauseen metodista pois.
--- ALKAA: TAPAUS 1 ---
Laskin laskin = new Laskin(3, 4);
System.out.println("Tulos = " laskin.laske());
---- LOPPUU ---
--- ALKAA: TAPAUS 2 (Kun metodi ei palauta arvoa) ---
Laskin laskin = new Laskin(3, 4);
laskin.laske();
System.out.println("Tulos = " laskin.p);
---- LOPPUU ---
- -.-.-.-.-.-.
Kyllä toimii, kokeile vaikka alla olevaa koodia.
--- ALKAA ---
public class Laskin {
public int x = 0;
public int y = 0;
public Laskin(int a, int b) {
x = a;
y = b;
}
public int laske() {
int p = x y;
return p;
}
public static void main(String[] arg) {
System.out.println((new Laskin(4, 5)).laske());
}
}
--- LOPPUU --- - -.-.-.-.-.-.
Luin viestisi uusiksi ja täytyy sanoa, että virheesi on siinä koodissa joka käyttää Laskin -luokkaa. Laskin -luokkaa käyttävä koodisi yrittää käyttää Laskin -luokassa olevaa julkista p -muuttujaa johonkin tarkoitukseen (esim. vastauksen tulostukseen), ja koska toisessa esimerkissä olet poistanut kyseisen muuttujan herjaa kääntäjä luonnollisesti tällöin virheellä. Jos katsot tarkemmin kääntäjän antamaa virheilmoitusta huomaat mihin .java tiedostoon ja mille riville virhe kohdistuu.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 721138
- 981084
Tiesitkö? Jorma Uotisen EX-rakas on Helena Lindgren - Nämä ovat välit nyt: "Me ollaan..."
Jorma Uotinen ja Helena Lindgren olivat avoliitossa v. 1982-1999. Pariskunta oli aikansa näyttävä julkkispari, missä i23953Olet nainen ollut vaikein rasti
Eniten olet tunteitani myllännyt ja niitä kuluttanut, ja tuottanut. 🤔67943Anteeksi J-mies
Anteeksi että myötävaikutin siihen että rakastuit minuun, jota et voi koskaan saada. Viimeksi kun näimme ja katselimme t126880Kuhmolainen opettaja tuomittu vainoamisesta
https://yle.fi/a/74-20248184 ”Kuusikymppinen kuhmolaisnainen piinasi naapureitaan lähes kahdeksan vuoden ajan. Nainen22847- 129828
- 58795
Kenen viisautta on ollut laittaa tie väärällä murskeella pilalle
Kenen viisautta on ollut kun Siimeksen/Kylmänpurontie pantu pilalle kun on ajettu liian karkeaa mursketta. Rengasliikke27761Elämäni biisi -paljastus: Tänä lauantaina 26.9. nämä julkkikset istahtavat sinisille sohville!
Katsotko Elämäni biisiä? Elämäni biisi on monen suomalaisen suosikki. Vieraslista lauantaina 26.9. tarjoilee vieraita m6708- 45686
Minä muistan
Minä muistan sinut nauravana. Sellaisena, joka sai tavallisenkin hetken tuntumaan vähän kevyemmältä, kuin huoneeseen ol46681Koska Martina viettää aikaansa lapsiensa kanssa
Äiti vaan juoksee miehen perässä Tallinnassa, Lontoossa, Turussa. Kyllä oli kätilö oikeassa, kun sanoi, että ei olisi ka142632Mitä muuta on olemassa kuin lisääntyminen
Jos mies ei pääse lisääntymään niin mikä hänen osansa elämässä on? mitä jää jäljelle? Hän on vain muiden palvelija kok129630- 19627
Ähtäri on taas TV: n ja radion ykkösuutinen
Uusi podcast on julkaistu ja on nyt kuunneltavissa. Mot on tehnyt hyvää työtä! Mikko Savola ja kepu ei ota mitään vast48620- 48604
Siinä kävi mies nyt niin että tämä ämmä muuttaa ulkomaille
Vuonojen maa kutsuu, joten ei hätää. Et kuule minusta enää. 😂 Lycka till! Ämmä riittää.80602- 35600
Pahkalassa tapahtuu
Mitäs on tapahtunut yöllä pahkalan kerrostaloilla.oli poliisia ja ambulanssia taas vaihteeksi12589