Miksi tämä kokonaisuus ei toimi?

Java-aloittelija-123

Olen aloittelija Javan suhteen mutta osaan silti siitä jo jotain, olen lukenut Java kirjaa ja olen tekemässä kirjaan liittyvää tehtävää. Tehtävässä pyydetään tekemään sovelma jossa Yleiso olio kutsuu jokaista ihminen oliota taputtamaan, ja olen yrittänyt toteuttaa sitä tällä tavalla:

Luokka Yleiso:

public class Yleiso {

Ihminen[] YleisonJasen = new Ihminen[10];

int X = 0;
public void taputtakaa(){
for(int I = 0; I < 9; I ){
YleisonJasen[I].taputa();
}
}
}

Luokka Ihminen:

public class Ihminen {

public void taputa(){
System.out.println("Klap!");
}

}

ja testaus ohjelma luokka TaikuriTesti


public class TaikuriTesti {

public static void main(String args[]){
Yleiso ekaYleiso = new Yleiso();
ekaYleiso.taputtakaa();
}
}

6

542

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • keksa1

      Olet tuossa alussa ainoastaan varannut taulukon YleisonJasen ja kertonut, että solun koko tulee vastata luokan Ihminen kokoa. Solut ovat vielä tässä vaiheessa tyhjiä.

      taputtakaa() kaatuu siksi NullPointerExceptioniin, koska yrität tyhjästä solusta kutsua jotain metodia taputa().

      Tarvii sis alustaa taulukko esim näin:

      Ihminen[] Yleiso = new Ihminen[] {new Ihminen(), new Ihminen()};

      tai sitten vaikka for-loopissa

      for(int i=0;i

      • samainen_aloittelija

        Voi kiitos keksa1, nyt sain tämän toimimaan ja tajusin paljon uutta! : ) jäin nyt kyllä ihmettelemään alustamis taulukkoon käyttämääsi metodia, olen nähnyt sen aijemmin mutta en ymmärrä millä perjaatteella tuo tietää asettaa niiden perään numeron? :s ja miten tuon pystyy tekemään loopissa, tiedän miten looppia käytetään mutta ihankuin viestisi olisi jäänyt kesken :( kiitos vielä kerran avusta! : )


      • foobarfoo
        samainen_aloittelija kirjoitti:

        Voi kiitos keksa1, nyt sain tämän toimimaan ja tajusin paljon uutta! : ) jäin nyt kyllä ihmettelemään alustamis taulukkoon käyttämääsi metodia, olen nähnyt sen aijemmin mutta en ymmärrä millä perjaatteella tuo tietää asettaa niiden perään numeron? :s ja miten tuon pystyy tekemään loopissa, tiedän miten looppia käytetään mutta ihankuin viestisi olisi jäänyt kesken :( kiitos vielä kerran avusta! : )

        Ihminen[] yleiso = new ihminen[10]; //alustetaan taulukko kymmenelle alkiolle
        for(int indeksi = 0; indeksi < yleiso.length; indeksi ){
        Ihminen ihminen = new Ihminen(); //Luodaan uusi ihminen-olio
        yleiso[indeksi] = ihminen; //asetaan se taulukkoon indeksin osoittamalle paikalle
        }


      • foobarfoo
        samainen_aloittelija kirjoitti:

        Voi kiitos keksa1, nyt sain tämän toimimaan ja tajusin paljon uutta! : ) jäin nyt kyllä ihmettelemään alustamis taulukkoon käyttämääsi metodia, olen nähnyt sen aijemmin mutta en ymmärrä millä perjaatteella tuo tietää asettaa niiden perään numeron? :s ja miten tuon pystyy tekemään loopissa, tiedän miten looppia käytetään mutta ihankuin viestisi olisi jäänyt kesken :( kiitos vielä kerran avusta! : )

        Ihminen[] yleiso = new ihminen[10]; //alustetaan taulukko kymmenelle alkiolle
        for(int indeksi = 0; indeksi < yleiso.length; indeksi ){
        Ihminen ihminen = new Ihminen(); //Luodaan uusi ihminen-olio
        yleiso[indeksi] = ihminen; //asetaan se taulukkoo indeksin osoittamalle paikalle
        }


      • javanaloittelija4543
        foobarfoo kirjoitti:

        Ihminen[] yleiso = new ihminen[10]; //alustetaan taulukko kymmenelle alkiolle
        for(int indeksi = 0; indeksi < yleiso.length; indeksi ){
        Ihminen ihminen = new Ihminen(); //Luodaan uusi ihminen-olio
        yleiso[indeksi] = ihminen; //asetaan se taulukkoo indeksin osoittamalle paikalle
        }

        Kiitos valaisevasta vastauksesta, tuo auttoi paljon! :)


      • javaaloitteliajgfd3
        foobarfoo kirjoitti:

        Ihminen[] yleiso = new ihminen[10]; //alustetaan taulukko kymmenelle alkiolle
        for(int indeksi = 0; indeksi < yleiso.length; indeksi ){
        Ihminen ihminen = new Ihminen(); //Luodaan uusi ihminen-olio
        yleiso[indeksi] = ihminen; //asetaan se taulukkoo indeksin osoittamalle paikalle
        }

        Kiitos valaisevasta vastauksesta, tuo auttoi paljon! :)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Jens Ihlen (ex Kukka) poika todistaa oikeudessa

      10:49 "Välit ovat olemattomat" Minkälainen isäsi ja sinun välinen suhde on tällä hetkellä? "Minulla ei ole minkäännäkö
      Maailman menoa
      261
      9783
    2. K-kaupassa on mukava käydä, kun ei tarvitse katsella köyhiä

      vasemmistolaisia, joista monet myös varastavat. Mielellään maksaa vähän enemmän tuotteista K-kaupassa, jotka ovat paljon
      Maailman menoa
      178
      5523
    3. Suomeen ei kuulu ihmiset jotka ei halua kätellä toisia ihmisiä, koska tämä on vääräuskoinen

      Nainen joka ei halunnut kätellä Stubbia on selvästi ääripään muslimi, eli sitä sakkia josta niitä ongelmia koituu. Ulos
      Maailman menoa
      156
      5139
    4. PS:n Purra teki -JÄTTI-VELAT

      * * PS:n Purra teki -JÄTTI-VELAT - ! ja jätti MaksuHuolet -Kansan Maksettavaksi -! *
      Maailman menoa
      70
      4821
    5. Ootko sä nainen suuttunut

      jostain? Harmi jos tullut väärinkäsityksiä.
      Ikävä
      212
      2379
    6. Nainen, sanotaan että totuus tekee kipeää

      Ehkä mutta se voi olla myös se kaikkein kamalin asia kohdata. Kuplassa on turvallista, kun tietää vähemmän on helpompi.
      Ikävä
      12
      2229
    7. Valtio lopettaa pienituloisten perheiden kylpylälomien tukemisen

      Pienituloiset suomalaiset ovat voineet vuosikymmenten ajan hakea tuettuja lomia terveydellisin, sosiaalisin ja taloudell
      Maailman menoa
      302
      1858
    8. Minkälainen auto

      Kaivatullasi on? Väri/Merkki? :)
      Ikävä
      90
      1557
    9. Menen nyt koisimaan

      Ja en ehkä palaa tänne. Asia on nyt loppuunkäsitelty ja totuus tuli ilmi
      Ikävä
      21
      1501
    10. Kuinka rakastunut olet

      Ja kehen?
      Ikävä
      41
      1123
    Aihe