Aloittelija ihmettelee tätä

fdsfdsdfdf

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

4

439

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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

    1. Porvarimediat paniikissa demareiden huiman kannatuksen vuoksi

      Piti sitten keksiä "nimettömiin lähteisiin" perustuen taas joku satu. Ovat kyllä noloja, ja unohtivat sen, että vaalit
      Maailman menoa
      110
      6887
    2. KATASTROFI - Tytti Tuppurainen itse yksi pahimmista kiusaajista!!!

      STT:n lähteiden mukaan SDP:n eduskuntaryhmän puheenjohtaja Tytti Tuppurainen on käyttäytynyt toistuvasti epäasiallisesti
      Maailman menoa
      384
      6533
    3. Mikä siinä on ettei persuille leikkaukset käy?

      On esitetty leikkauksia mm. haitallisiin maataloustukiin, kuin myös muihin yritystukiin. Säästöjä saataisiin lisäksi lei
      Maailman menoa
      65
      3297
    4. Lääppijä Lindtman jäi kiinni itse teosta

      Lindtman kyselemättä ja epäasiallisesti koskettelee viestintäpäällikköä. https://www.is.fi/politiikka/art-2000011780852
      Maailman menoa
      126
      2832
    5. Juuri nyt! Tytti Tuppurainen on käyttäytynyt toistuvasti epäasiallisesti

      Ai että mä nautin, Tytti erot vireille! "Käytös on kohdistunut avustajia ja toisia kansanedustajia kohtaan, uutisoi STT
      Maailman menoa
      108
      2430
    6. Onko kaivattusi

      liian vetovoimainen seksuaalisesti?
      Ikävä
      125
      1834
    7. Puolen vuoden koeaika

      Voisi toimia meillä. Ensin pitäis selvittää "vaatimukset" puolin ja toisin, ennen kuin mitään aloittaa. Ja matalalla pro
      Ikävä
      21
      1697
    8. Huomaatteko Demari Tytti ei esitä pahoitteluitaan

      Samanlainen ilmeisesti kuin Marin eli Uhriutuu no he ovat Demareita ja muiden yläpuolella siis omasta mielestään
      Maailman menoa
      35
      1587
    9. Tytti Tuppurainen nöyryyttää avustajiaan

      Tytti Tuppurainen nöyryyttää SDP:n eduskuntaryhmän kokouksissa sekä avustajia että kansanedustajia. Hän nolaa ihmisiä ju
      Kotimaiset julkkisjuorut
      182
      1367
    10. On todella hassua

      Ajatella että pitäisit erityisen kuumana tai seksikkäänä?
      Ikävä
      74
      1257
    Aihe