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

520

    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. Mistä puhuitte viimeksi kun näitte

      Kerro yksi aiheista
      Ikävä
      101
      7463
    2. 83
      5092
    3. Se on hyvästi

      Toivottavasti ei tavata.
      Ikävä
      79
      4889
    4. Olenko saanut sinut koukkuun?

      Hyvä. Rakastan sua.
      Ikävä
      132
      4288
    5. Alavuden sairaala

      Säästääkö Alavuden sairaala sähkössä. Kävin Sunnuntaina vast. otolla. Odotushuone ja käytävä jolla lääkäri otti vastaan
      Ähtäri
      10
      3068
    6. Miksi sä valitsit

      Juuri minut sieltä?
      Ikävä
      52
      2709
    7. Sisäsiittosuus

      Tämän kevään ylioppilaista 90% oli sama sukunimi?
      Suomussalmi
      43
      2632
    8. Kerro nyt rehellisesti fiilikset?

      Rehellinem fiilis
      Suhteet
      53
      2267
    9. Törkeää toimintaa

      Todella törkeitä kaheleita niitä on Ylivieskassakin. https://www.ess.fi/uutissuomalainen/8570818
      Ylivieska
      11
      2243
    10. Suudeltiin unessa viime yönä

      Oltiin jossain rannalla jonkun avolava auton lavalla, jossa oli patja ja peitto. Uni päättyi, kun kömmit viereeni tähtit
      Ikävä
      21
      1860
    Aihe