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

3689

    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. 128
      3660
    2. Putin lähti takki auki sotaan....

      Luuli, että kolmessa päivässä hoidetaan, nyt on mennyt 3,5 vuotta eikä voitosta tietoakaan. Kaiken lisäksi putin luuli,
      Maailman menoa
      80
      3185
    3. SDP ylivoimainen ykkönen

      En ole koskaan viitsinyt käydä äänestämässä, mutta nyt SDP:n etumatka on niin kutkuttava, että pakkohan se on vaivautua.
      Maailman menoa
      84
      2611
    4. Suomalainen lähti ilman takkia sotaan

      Malli oli "kajander", johon kuului pelkästään kokardi, ja sotilaan itse metsästä katkoma puukeppi ryssien huitomiseen.
      Maailman menoa
      7
      2406
    5. Polttomoottoriauto on köyhän merkki

      Kun ei ole varaa ostaa sähköautoa, niin joutuu köyhän autoa käyttämään.
      Maailman menoa
      233
      2305
    6. Patteriauton ovia ei saatu auki - kuljettaja koki hirvittävän kuoleman!

      ”Oviongelma johti kuskin kuolemaan kolarissa – tämä ratkaisu saatetaan kieltää kokonaan Sivulliset pyrkivät tempomaan a
      Maailman menoa
      36
      2169
    7. Mies älä

      Odota enää vaan toimi. Pieni vinkkivitonen 🫰💥
      Ikävä
      42
      939
    8. Harmittaa ettei paluuta entiseen enää ole

      Paluuta entiseen ei ole koska pilasit kaiken.
      Ikävä
      95
      928
    9. Mä tiedän

      Että sä tiedät, että mä tiedän, että sä tiedät. Me molemmat tiedetään. Onko näin?
      Ikävä
      53
      819
    10. Haapaveille jotain uutta!

      Huoltoasema Haapavein keskustaan tulossa. Semmoista Jeppasissa jaappasevat.
      Haapavesi
      16
      790
    Aihe