Et voi käyttää ei-staattista muuttujaa this staatt

Alustajan_käyttöä

Alla on luokka "Koira", josta puuttuu olioden muodostamiseen tarvittava alustusmetodi, sekä metodit tulosta_tiedot() ja annaAani(). Täydennä luokkaa niin, että luokasta voidaan muodostaa olioita. Olion muodostamisen yhteydessä olio saa arvot: ika, nimi, rotu ja aani.

Alla oleva luokka KoiranTesti hyödyntää Koira-luokkaa tulostaen näytölle esimerkkitulosteen näköisen tulosteen.


class Koira
{
int ika;
String nimi, rotu, aani;

// muodostin
// metodi tulosta_tiedot()
// metodi annaAani()
}

public class KoiranTesti
{
public static void main(String[] args)
{
Koira rekku = new Koira (2, "Rekku", "Dalmatialainen", "Hau!!!");
System.out.println("Koiran tiedot:");
rekku.tulosta_tiedot();
System.out.println("\nKoira sanoo: " rekku.annaAani());
}
}

Esimerkkitulostus

Koiran tiedot:
Nimi: Rekku
Ikä: 2
Rotu: Dalmatialainen

Koira sanoo: Hau!!!

7

3550

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Alustajan_käyttöä

      // tätä kokeilin:

      class Koira
      {
      int ika;
      String nimi, rotu, aani;

      public Koira()
      {
      nimi = null;
      rotu = null;
      ika = 0;
      }

      public Koira(int uusi_ika, String uusi_nimi, String uusi_rotu)
      {
      this.nimi = uusi_nimi;
      this.rotu = uusi_rotu;
      this.ika = uusi_ika;
      }

      public void tulosta_tiedot()
      {
      System.out.println(nimi ": " ika " " rotu);
      }

      public void annaAani()
      {
      System.out.println("Koira sanoo: Hau!!!");
      }
      }

      public class KoiranTesti
      {
      public static void main(String[] args)
      {
      Koira rekku = new Koira (2, "Rekku", "Dalmatialainen", "Hau!!!");
      System.out.println("Koiran tiedot:");
      rekku.tulosta_tiedot();
      System.out.println("\nKoira sanoo: " rekku.annaAani());
      }
      }

    • Alustajan_käyttöä

      //Tätä kokeilin:

      class Koira
      {
      int ika;
      String nimi, rotu, aani;

      public Koira()
      {
      nimi = null;
      rotu = null;
      ika = 0;
      }

      public Koira(int uusi_ika, String uusi_nimi, String uusi_rotu)
      {
      this.nimi = uusi_nimi;
      this.rotu = uusi_rotu;
      this.ika = uusi_ika;
      }

      public void tulosta_tiedot()
      {
      System.out.println(nimi ": " ika " " rotu);
      }

      public void annaAani()
      {
      System.out.println("Koira sanoo: Hau!!!");
      }
      }

      public class KoiranTesti
      {
      public static void main(String[] args)
      {
      Koira rekku = new Koira (2, "Rekku", "Dalmatialainen", "Hau!!!");
      System.out.println("Koiran tiedot:");
      rekku.tulosta_tiedot();
      System.out.println("\nKoira sanoo: " rekku.annaAani());
      }
      }

    • Alustajan_käyttöä

      virheilmoitus:

      KoiranTesti.java:6: Koira is already defined in unnamed package

      class Koira

      ^

      KoiranTesti.java:40: non-static variable this cannot be referenced from a static context

      Koira rekku = new Koira (2, "Rekku", "Dalmatialainen", "Hau!!!");

      ^

      KoiranTesti.java:43: 'void' type not allowed here

      System.out.println("\nKoira sanoo: " rekku.annaAani());

      ^

      KoiranTesti.java:38: inner classes cannot have static declarations

      public static void main(String[] args)

      ^

      KoiranTesti.java:52: cannot find symbol

      symbol : constructor Koira(int,java.lang.String,java.lang.String,java.lang.String)

      location: class Koira

      Koira rekku = new Koira(2, "Rekku", "Dalmatialainen", "Hau!!!");

      ^

      KoiranTesti.java:55: cannot find symbol

      symbol : method tulosta_tiedot()

      location: class Koira

      rekku.tulosta_tiedot();

      ^

      KoiranTesti.java:56: cannot find symbol

      symbol : method annaAani()

      location: class Koira

      System.out.println("\nKoira sanoo: " rekku.annaAani());

      ^

      7 errors

    • Alustajan_käyttöä

      Tämä tehtävä on rikki, ei mene millään läpi. Saan vain ilmoituksen: "Et voi käyttää ei-staattista muuttujaa this staattisessa yhteydessä"

      Kokeilin jopa tätä netistä löytyvää ratkaisua ja sekään ei toimi. Sama virhe:

      public class Koira {
      int ika;
      String nimi,rotu,aani;
      public Koira (int ika,String nimi, String rotu, String aani){
      this.ika = ika;
      this.nimi = nimi;
      this.rotu = rotu;
      this.aani = aani;
      }
      public void tulosta_tiedot(){
      System.out.println("Ikä: " ika "Nimi: " nimi "Rotu: " rotu);
      }
      public String annaAani(){
      return aani;
      }
      }

      public class KoiranTesti {

      public static void main(String[] args) {
      Koira rekku = new Koira (2,"Rekku","Dalmatialainen","Hau!!!");
      System.out.println("Koiran tiedot: ");
      rekku.tulosta_tiedot();
      System.out.println("\nKoira sanoo: " rekku.annaAani());
      }
      }

    • toimivaratkaisu

      Kokeilin esimerkkikoodia nope. HIenosti toimii. Teillä on jotain muuta kuin koodi pielessä. Kun käännätte ja ajatte ohjelman, kai valitsette ajoon luokan KoiranTesti eikä Koira? Postatkaa koko log/console/commanscreen -litania, millä ajatte koodin.

    • Tää toimii .. Helppo juttu sehan on:

      public Koira(int uusi_ika,String uusi_nimi, String uusi_rotu,String uusi_aani) { //muodostin
      ika= uusi_ika;
      nimi=uusi_nimi;
      rotu=uusi_rotu;
      aani=uusi_aani;
      }
      public void tulosta_tiedot() {
      System.out.println("Nimi:" nimi "\n" "Ikä:" ika "\n" "Rotu:" rotu);
      }
      public String annaAani(){
      return aani;
      }

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mies, miksi et vaikuta halukkaalta?

      Ihmeellistä käytöstä mieheltä. Toki et ole mikään teinipoika enää.
      Ikävä
      103
      1717
    2. 210
      1547
    3. Ikävä on häntä

      Josta on tullut niin tärkeä ja rakas. Olisinko onnellinen hänen kanssaan. Ne rakastavat silmät jotka mua katsoo aina jos
      Ikävä
      59
      1020
    4. Minkä kultakimpaleen

      Menetän jos en saa häntä. Joku muu saisi nauttia siitä hellyydestä, huumorista ja intohimosta. Ehkä hän ymmärtää nyt mik
      Ikävä
      31
      1000
    5. Terveystalon lääkärit ylilaskuttaneet

      Tämän pörriäiset osaavat, laskuttamisen. Terveystalo myöntää asian. https://www.hs.fi/suomi/art-2000011134269.html "K
      Maailman menoa
      58
      855
    6. En kai koskaan saa sinua

      Koska et usko että riitäisit minulle. Olet aina pitänyt itseäsi liian risana ja heikkona. Katkot korkeutesi, ja poraat k
      Ikävä
      51
      804
    7. Helppo selvittää onko oma täällä

      Laittaa yhden selvän kysymyksen ja jos kukaan ei osaa vastata, niin oikea ei ole täällä. Saa käyttää vapaasti hyödykse
      Ikävä
      49
      785
    8. Tykkäsit nainen

      Aina eniten lähetyssaarnaajassa, muistan miten nautit!😎😚 meidän pitää päästä vielä kokemaan se.
      Ikävä
      36
      745
    9. Kerroppas nyt

      M mies, että kenestä sinä oikein tykkäät, niin saadaan tämä asia muillekin selväksi 😉
      Ikävä
      58
      735
    10. The Summit Suomi: Maxie avaa hyytävästä tilanteesta kuvauksissa: "Veri roiskui ja tajusi, että..."

      Oletko seurannut The Summit Suomea? Tykkäätkö vai et tai mitä mieltä ylipäätään olet sarjasta? Moni katsoja on kaikonnut
      Tv-sarjat
      5
      732
    Aihe