[Java] Problem mit LinkedList

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Fanatic, 22. November 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 22. November 2008
    Problem mit LinkedList

    Tach,

    Hier erst einmal mein Code:

    PHP:
    public class  ListeEigenesElement  {

        static 
    LinkedList  < Element Liste  = new  LinkedList  < Element >();
        
        public static 
    void main ( String []  args ) {
                
                
    Liste . add (new  Element ( "Hallo" ));
                
    Liste . add (new  Element ( "Moin" ));
                
                
    Iterator I  Liste . iterator ();
                
                while (
    I . hasNext ()){
                    
    Element Temp  = ( Element I . next ();
                    
    String Ausgabe  Temp . GetContent ();
                    
    System . out .print( Ausgabe );
                }
        }
    }
    class 
    Element  {
        
        static 
    String Content  null ;
        
         public 
    Element ( String pContent ) {
            
    super ();
            
    SetzeContent ( pContent );
        }


         public static 
    void SetzeContent ( String pContent ) {
            
    Content  = new  String ( pContent );
        }
         
         public static 
    String GetContent () {
             return 
    Content ;
         }
    }
    Wenn ich das Programm ausführe, bekomme ich

    PHP:
    MoinMoin
    ausgegeben.


    Wieso bekomme ich nicht

    PHP:
    HalloMoin
    ausgegeben?



    Was mache ich falsch?
     
  2. 23. November 2008
    AW: Problem mit LinkedList

    weil du
    Code:
    static String Content = null;
    beim zweiten aufruf (bzw instanz) auf "Moin" gesetzt hast ("Hallo" wird dann überschrieben).

    was "static" bedeutet weißt du ja oder?
    (kurz: mit "static" definierst du methoden/eigenschaften die nicht an die instanz der klasse gebunden sind)

    so klappts: (auf konsole kompiliert und getestet)
    Code:
    import java.io.*;
    import java.util.*;
    
    class TestItem {
     protected String value = "";
     
     public TestItem(String s) {
     this.value = s;
     }
     
     public String getValue() {
     return this.value;
     }
    }
    
    class ListTest { 
     protected static LinkedList<TestItem>list = new LinkedList<TestItem>();
     
     public static void main(String[] args) {
     list.add(new TestItem("hallo"));
     list.add(new TestItem("welt"));
     
     Iterator i = list.iterator();
     while(i.hasNext()) {
     TestItem t = (TestItem) i.next();
     String a = t.getValue();
     System.out.print(a);
     }
     }
    }
    das "this" ist nicht zwingend, aber ich bin das so gewohnt

    dein programm macht (vereinfacht) folgendes:
    Code:
    Element.SetzeContent("Hallo"); //statische variable ist jetzt "Hallo"
    Element.SetzeContent("Moin"); //statische variable ist jetzt "Moin"
    System.out.print(Element.GetContent()); //zugriff auf statische variable: "Moin"
    System.out.print(Element.GetContent()); //zugriff auf statische variable: "Moin"
     
  3. 23. November 2008
    AW: Problem mit LinkedList

    Genial Jo was static macht weiß ich. Da übersieht man immer die offensichtlichsten Fehler.

    Dankeschön!
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.