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

3588

    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. Useita puukotettu Tampereella

      Mikäs homma tämä nyt taas on? "Useaa henkilöä on puukotettu Tampereen keskustassa kauppakeskus Ratinan lähistöllä." ht
      Tampere
      146
      2912
    2. Asiakas iski kaupassa varastelua tehneen kanveesiin.

      https://www.iltalehti.fi/kotimaa/a/33a85463-e4d5-45ed-8014-db51fe8079ec Oikein. Näin sitä pitää. Kyllä kaupoissa valtava
      Maailman menoa
      367
      2047
    3. Leipivaaran päällä on kuoleman hiljaista.

      Suru vai suuri helpotus...
      Puolanka
      40
      1777
    4. Kuka rääkkää eläimiä Puolangalla?

      Poliisi ampui toistakymmentä nälkiintynyttä eläintä Puolangalla Tilalta oli ollut karkuteillä lähes viisikymmentä nälkii
      Puolanka
      37
      1742
    5. Meneeköhän sulla

      oikeasti pinnan alla yhtä huonosti kuin mulla? Tai yhtä huonosti mutta jollain eri tyylillä? Ei olisi pitänyt jättää sua
      Ikävä
      32
      1421
    6. Jos ei tiedä mitä toisesta haluaa

      Älä missään nimessä anna mitään merkkejä kiinnostuksesta. Ole haluamatta mitään. Täytyy ajatella toistakin. Ei kukaan em
      Ikävä
      93
      1221
    7. Määpä tiijän että rakastat

      Minua nimittäin. Samoin hei! Olet mun vastakappaleeni.
      Ikävä
      54
      1173
    8. Muutama kysymys ja huomio hindulaisesta kulttuurista.

      Vedakirjoituksia pidetään historiallisina teksteinä, ei siis "julistuksena" kuten esimerkiksi Raamattua, vaan kuten koul
      Hindulaisuus
      328
      965
    9. Jumala puhui minulle

      Hän kertoi sinusta asioita, joiden takia jaksan, uskon ja luotan. Hän kuvaili sinua minulle ja pakahduin onnesta kuulles
      Ikävä
      110
      948
    10. Annan meille mahdollisuuden

      Olen avoimin mielin ja katson miten asiat etenevät. Mutta tällä kertaa sun on tehtävä eka siirto.Sen jälkeen olen täysil
      Ikävä
      53
      782
    Aihe