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

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!!!
73847
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

// 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());
}
}

Äänestä

//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());
}
}

Äänestä

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

Äänestä

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());
}
}

Äänestä

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.

Äänestä

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;
}

Äänestä

Kommentoi aloitusta


Alustajan_käyttöä kirjoitti:

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!!!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu