ich hab eine klasse geschrieben in der man aktionen wie bei einer bank durchführen kann (abheben, gutschreiben, kontostand abfragen usw).
Java:
publicclassKontoPlus{// ich muss irgendwie die eingegeben werte bei "gutschreiben" und "abbuchen" speichern, damit ich sie am ende bei//"kontoauszug" wieder auflisten kann. die werte würd ich gern in dem array "veraenderung" speichern. wie mach ich //das?privatedouble kontostandNeu =0;privatedouble kontostandAlt =0;privatedouble kontostand =0;privatedouble[] veraenderung =newdouble[10];privatedouble wert =0;publicvoidgutschreiben(double betrag){if(betrag >=0.0){
kontostandNeu = kontostand + betrag;
kontostand = kontostandNeu;}elseSystem.out.println("gutschreiben unzulaessig");}publicvoidabbuchen(double betrag){if(betrag >=0.0&& betrag <= kontostand){
kontostandNeu = kontostand +(-betrag);
kontostand = kontostandNeu;}elseSystem.out.println("abbuchen unzulaessig");}publicdoubleabfragen(){return kontostand;}publicvoidkontoauszug(){System.out.println("Alter Kontostand: "+ kontostandAlt);System.out.print("Veraenderung:");for(int i =0; i <10; i++){
veraenderung[i]= wert;System.out.print(" "+ veraenderung[i]);}System.out.println();System.out.println("Neuer Kontostand: "+ kontostandNeu);
kontostandAlt = kontostandNeu;}}
Das ist eine Collections. Hier explizit eine ArrayList. Das ist im Grunde intern nichts anderes als ein Array. Extern hat es einen ganz entscheidenden Unterschied: eine ArrayList ist dynamisch.
Google mal Java Collections. Da wirst du einiges finden und auch merken, dass es garnicht so kompliziert ist .
jetzt müsste ich nur noch die arraylist nach dem "kontoauszug" wieder zurücksetzen, damit nicht beim nächsten auszug die alten inhalte angezeigt werden.
beim compilieren kommt eine bemerkung: "KontoPlus.java uses unchecked or unsafe operations.
recompile with -Xlint: unchecked for details."
wenn ich dann mit -Xlint compilieren, kommt eine warnung: "unchecked call to add(E) as a member
of the raw type java.util.ArrayList
history.add(betrag);
keine ahnung was das soll, trotzdem kann ich das programm ohne probleme ausführen.
// initialisierungprivateArrayList history =newArrayList();// dann bei z.b. "abbuchen"if(betrag >=0.0&& betrag <= kontostand){
kontostandNeu = kontostand +(-betrag);
kontostand = kontostandNeu;
history.add(betrag);//eingegebenen betrag hinzufügen// schleife um die liste auszugebenfor(int i =0; i < history.size(); i++){System.out.print(" "+ history.get(i));
Du willst doch Strings in deiner Liste speichern oder nicht? Das ist einfach eine generische Instanziierung einer Liste. Genauso wie du ein Array mit String typisierst machst du das bei Listen auch. Nur eben eine bisschen andere Syntax.
Ist ja wohl klar wenn du einen double in einer Liste speichern willst, die du explizit für String eingerichtet hast ;-)
ArrayList<String> ist halt nicht dasselbe wie ArrayList<Integer>