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

456

    Vastaukset 4

    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. Ny se loppuu ( Kuhmo)

      Yhtiö on myyty. Notta yyteet meleko äkkiä, notta. Pelastautukoon ken voi. Notta se on tuulista pian.
      Kuhmo
      74
      2465
    2. Parikymppinen hakkasi nelikymppisen kriittiseen tilaan

      Ja ihminen jäi junan alle lautiosaaressa...paljon on taas sattunut ja tapahtunut. Ketähän nämä uhrit mahtaa olla 🤔 htt
      Kemi
      40
      2092
    3. Kaivattusi tärkein ulkoinen tuntomerkki

      Onko jokin muu kuin yleinen kuten kaunis, laiha. hyväkroppainen jne.
      Ikävä
      28
      945
    4. Mille kirjaimelle

      toivotat hyvää yötä , kuka on mielessäsi kun menet nukkumaan?
      Ikävä
      31
      830
    5. Äimän käki

      Olen vähää vaille viisikymppinen mies, ja olen elellyt ilman parisuhdetta parisen vuotta. Nyt vihdoin ja viimein tuntuu,
      Sinkut
      154
      778
    6. Nainen, miten suhtautuisit

      Jos mies ehdottaisi tapaamista? Entä siihen, jos mies kertoisi tapaamisessa tunteistaan ja haluaisi seurustella?
      Ikävä
      58
      640
    7. Paikallinen autokorjaamo

      Kyllä alkaa vituttamaan, palvelua haluaisi niin jono ovelle ja yksi myyjä. Auto valmistunut kuntoon niin kukaan ei ilmoi
      Kuhmo
      6
      518
    8. Vihdoinkin tarjolla sushia!

      Onpa mukava, että tän paikkakunnan ruokatarjonta laajenee. Ensi lauantaina pääsee herkuttelemaan kun Kukkoloilta saa su
      Haapavesi
      78
      501
    9. Kenen kanssa koet

      Että sinulla on eniten kipinää
      Ikävä
      21
      495
    10. Sinulle mies

      Kohtaamme jälleen kun on oikea aika. Sitä ei voi mikään eikä kukaan estää <3 <3
      Ikävä
      33
      462
    Aihe