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

447

    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. Veroaste on Suomessa viitisen prosenttiyksikköä liian matala

      Veropohjaa on rapautettu käytännössä koko kulunut vuosituhat, jonka vuoksi valtion menoja on jouduttu rahoittamaan velka
      Maailman menoa
      88
      2513
    2. Tiedän satavarmasti ettet tule koskaan

      Uskaltamaan mitään. Ei me tulla edes näkemään koskaan.
      Ikävä
      67
      1465
    3. Kyläkauppias ajoi kännissä töistä kotiin

      Ei edes kallis auto estä humalassa ajamista, vaikka luulisi alkolukko olevan sellaisessa jo vakiovarusteena. https://ww
      Maailman menoa
      83
      1391
    4. EU komissio - EU-elpymisrahoja voidaan käyttää TILAPÄISESTI väärin!

      Espanja ohjasi miljardeja euroja – Nyt EU-komissio teki yllättävän paljastuksen Skandaaliksi noussut Espanjan EU-rahoje
      Maailman menoa
      12
      1206
    5. Miks me oikein

      Rakastuttiin vaikka kaikki on mahdotonta?
      Ikävä
      81
      933
    6. Kiitos upeasta palvelusta kukkamyyjä

      Kiitos sinulle upea kaunis kukkamyyjä Kuhmon torilla 🌹 Upea iloinen asenteesi ja kaunis hymysi pelasti päiväni ❤️ Jäi
      Kuhmo
      19
      910
    7. Ratikka Turkuun

      Ei hyvä. Ja syy on siinä , kukaan ei osaa suunnitella oikeaa reittiä. Pitää huomioide, kiskoja sijaintia ei voi muutta
      Turku
      102
      791
    8. Miehet trikoissaan

      On se kauhian näkköistä, kun miehet tiukossa trikkoissa juoksentelloo ja mulukku paestaa trikkoijjen läpi. Kahtokkee pe
      Suomussalmi
      34
      785
    9. Nainen, mikset lähetä

      miehelle viestiä? Tiedän, että sulla on asiaa ja kysyttävää.
      Ikävä
      54
      783
    10. Rakastan sinua

      Yhä.
      Ikävä
      30
      706
    Aihe