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

3820

    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. Orpo räyhää: kansan on muututtava

      Orpon mukaan kansa ei elä kokoomuksen kanssa samassa todellisuudessa, ja sen vuoksi kansan on muututtava. Kas kun ei san
      Maailman menoa
      237
      2658
    2. Et taida paljoa

      treffeillä käydä? 😆 mieheltä Naiselle
      Ikävä
      101
      1124
    3. Nainen, nyt esitän muutaman skenaarion

      Asumme yhdessä ja seurustelemme. 1. On ilta ja olet sohvalla makoilemassa ja räpläät kännykkääsi. Makuuhuoneesta kuulu
      Ikävä
      122
      1078
    4. Kristillinen kaste toimitetaan upottamalla veteen - pään valelukaste ei kelpaa

      Kristillinen upotuskaste perustuu juutalaiseen puhdistautumiseen, jossa upottaudutaan veden alle kokonaan. Paavali verta
      Kaste
      153
      992
    5. Oikea kaste on syntisten kaste

      Oikea kaste on syntisten kaste. Vain syntisiä tulee kastaa. Itsensä uskoviksi ja vanhurskaiksi julistaneita ei tule ka
      Kaste
      58
      985
    6. Upotuskaste on raamatullisin kaste

      Jokainen raamattua lukenut tietää sen. Päivänselvä asia. Vauvalle annettu kaste ei löydy raamatusta.
      Kaste
      717
      897
    7. Mitä toivoisit

      Välillämme vai toivoisitko mitään näiden vuosien jälkeen?
      Ikävä
      63
      831
    8. Perussuomalaisten kansanedustajalta erittäin raju puheenvuoro eduskunnassa massamaahanmuuttoa vastaa

      https://www.is.fi/politiikka/art-2000012019924.html Hyvä, että perussuomalaiset tuo Suomen kansalle tätä vihervasemmisto
      Maailman menoa
      237
      780
    9. Mikä tekee sen

      Vetovoiman kaivatussasi?
      Ikävä
      35
      740
    10. Harmittaako joku

      Harmittaako joku asia tai asiat, mitä on tapahtunut tai jäänyt tapahtumatta?
      Ikävä
      116
      728
    Aihe