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

3683

    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. Sanna Marin kysyi hämmästyneenä: Onko Suomessa jäänmurtajia?

      Nettilehden toimittaja kysyi Sanna Marinilta suoraan, että sovittiinko nuo jäänmurtajien kaupat jo 2019, jolloin Marin k
      Maailman menoa
      71
      3879
    2. Voiko normaali ihminen ryhtyä vasemmistolaiseksi?

      Tätä jäin pohdiskelemaan.
      Maailman menoa
      101
      3495
    3. SDP haluaa 40 000 nettomaahanmuuttajaa

      SDP:n Suunnanmuutos-vaihtoehtobudjetissa, käy ilmi, että demarit itse asiassa vaativat räjähdysmäistä ”työperäisen” maah
      Maailman menoa
      78
      3328
    4. Mikä tuota vasemmistolaisista jankkaavaa vaivaa?

      Pahasti on ihon alle, siis korvien väliin, päässeet kummittelemaan. Ei ole terveen ihmisen merkki jankata yhdestä asia
      Maailman menoa
      36
      2638
    5. Mitä ajattelit kun näit

      kaivattusi ensimmäisen kerran? xd
      Ikävä
      118
      1553
    6. Nyt meni lopulliset lämmöt.

      Alan käyttäytymään yhtä kylmästi miehiä kohtaan kuin mua kohtaan on käyttäydytty ja vain käytetty viimeiset pari vuotta
      Sinkut
      36
      1506
    7. Meitä ei tule

      Koska periaatteemme ovat rakkautta vahvempia. Tämä on siis koettelemus, jonka tarkoitus on vahvistaa meitä yksilöinä 😌
      Ikävä
      22
      1114
    8. Onko erityinen paikka jossa haluaisit nyt olla

      Onko joku spesiaali lempipaikka missä mieluiten olisit?
      Ikävä
      42
      1100
    9. Sulla on avaimet ja keinot

      Jos haluat jatkaa tutustumista. Itse olen niin jäässä etten pysty tekemään enää mitään. Pidempi keppi johon on helpompi
      Ikävä
      18
      1076
    10. Itseään kannattaa tarkastella realistisesti ja

      miettiä mihin ne rahkeet oikeesti riittää. Tyhmempikin ymmärtää että varakas ylemmän tason mies ei kelpuuta sellaista ku
      Ikävä
      118
      1016
    Aihe