Auf Thema antworten

null ist quasi "nicht vorhanderer, nicht definierter Speicher" und was ganz anderes als "0" oder "".

if (ListeNotizen == "0")

Damit greift zu auf einen null pointer zu, wenn die notiz noch nicht existiert und prüfts ob dort der

(noch nicht existierende string "0" ist.


Stell dir vor das bei private String[] listeNotizen = new String[10];

folgendes automatisch passiert: for (int i=0i< 10;i++) listeNotizen = null


PS: Methodennamen immer mit kleinbuchstaben beginnen lassen nur Klassennamen beginnen mit Grossbuchstaben


Hier die Lösung (nicht getestet, versuch das zu verstehen, nicht einfach abschreiben :)):

[code=java]

public class NotizAnzeige 

{

     private String[] listeNotizen = new String[10]; // die elemente sind erstmnal alle null

     private int anzahlEintraege ; //

   

   

   

 /**

 * @param a Note to be stred in a free array element

 * @return null if a cannot be stored

 */

public String speichereNotiz(String a)

 {     

      if (anzahlEintraege == 10) //evt .elnth

          return null;

       

       

       for (int i=0; i<listeNotizen.length; i++)

       {

           if (listeNotizen[i] == null) // evt auch null ist was ganz anderes als "0"

           {

              listeNotizen[i]=a;

              anzahlEintraege++;

              return a;

           }

      }

      return null;

} // end of speichereNotiz

         

public void zeigeNotizen()

{

  for(String s : listeNotizen)  System.out.println(s);

}

         

public void loescheAlle()

{

   for (int i=0;i < 10;i++) listeNotizen[i] = null;

     anzahlEintraege=0;

} //--- end of  loescheAlle()       

         


public int getLaenge(int i)

{

   if (i >= 0 && i < 10)

    { if (listeNotizen[i] != null) return listeNotizen[i].length();

    }

   return 0;

} //--- end of getLaenge()       

         

public int getAnzahl()   { return anzahlEintraege;  }

         

         

         

public boolean istSortiert(int i)

{

     if (i < 0 || i >= 9) return false; // 9 weil man ja auf das 9.auch zugreifen muss

     

     int len1=0,len2=0;

     if (listeNotizen[i] != null) len1 = listeNotizen[i].length();

     if (listeNotizen[i+1] != null) len2 = listeNotizen[i+1].length();

     if (len1 < len2) return true;

     return false;

} //---- end of istSortiert()

         

public boolean alleSortiert()

{

      for(int i=0;i < getAnzahl()-1;i++)

      {

         if (listeNotizen[i] == null) continue;

         if (istSortiert(i) == false) return false;

      }

      return true;

}

[/java]


} //------------------- end of class[/code]



Oben