Zähler

StupidAttack

Bekanntes Mitglied
Hi Leute

Ist mir jetzt irgendwie sehr peinlich.

Ich habe eine solche Funktion:

Java:
private int counter = 0;
//
//
//
        private void showLessons(){
        int counter = 0;
            for(int i = 0; i < dayList.size(); i++){
                counter++;
                System.out.println("Learning Period Number "+counter+" in hours: "+dayList.get(i));
            }
        }

Wie ihr seht will ich nicht dass meine Counter Variable dem i entspricht, sie soll vielmehr so oft hochgezählt werden wie die ganze "showLessons" funktion aufgerufen wird/wurde. Also [anzahl aufrufe der funktion]*[Längen der for Schleifen] := letzter Wert von counter


Doch bei mir wird jedes mal wenn ich die Funktion wieder aufrufe counter auf 0 zurückgesetzt. Helft nem Idioten!

Danke
 

Final_Striker

Top Contributor
Java:
private int counter = 0;

        private void showLessons(){
            for(int i = 0; i < dayList.size(); i++){
                counter++;
                System.out.println("Learning Period Number "+counter+" in hours: "+dayList.get(i));
            }
        }
 

StupidAttack

Bekanntes Mitglied
Oh Jesus

meine Funktion sieht schon so aus:
Java:
        private void showLessons(){
            for(int i = 0; i < dayList.size(); i++){
                counter++;
                System.out.println("Learning Period Number "+counter+" in hours: "+dayList.get(i));
            }
        }

Das was ich oben gepostet habe war falsch. verwirrt und falsch. natürlich habe ich keine counter = 0 anweisung zu beginn der funktion. ich poste mal den ganzen code (so wie er unten steht habe ich obig beschriebens problem):

20, 32 und 94 sind die relevanten Code Abschnitte. Mein Counter springt nach wie vor nach jedem Aufruf auf 0 zurück. Ich bin verwirrt. Compiliert meine IDE einfach nimmer?

Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Häbät
 */
import java.io.*;
import java.util.Date;
import java.util.*;
import java.util.ArrayList;

public class LearningDay implements Serializable {

        final String datname = "Learning Times.lt";
	private ArrayList<LearningDay> data;

        private int counter;

	private Date before = null;
	private Date after;


	Double timeLearnedHours;
	ArrayList<Double> dayList = new ArrayList<Double>();

        private Calendar presentDay;

	public LearningDay(){
            this.counter = 0;
            presentDay = new GregorianCalendar();
            this.presentDay.setTime(new Date());
            data = new ArrayList<LearningDay>();
            this.load();
	}

        private Calendar getpresentDay(){
            return presentDay;
        }

        private void addToList(ArrayList<Double> list){
            this.dayList.addAll(list);
        }

	private double getTimeDifference(int timesize){	//timesize: 0=seconds / 1 = minutes / 2 = hours
		double buffer;
		buffer = this.after.getTime() - this.before.getTime();

		switch(timesize){

			case 0: return buffer/1000;
			case 1: return buffer/1000/60;
			case 2: return buffer/1000/60/60;
			default: return 0;
		}
	}

	public void startLearning(){
		this.before = new Date();
		System.out.println("Begin to learn at "+this.before);
	}

	public void stopLearning(){
		this.after = new Date();
		System.out.println("Stopped learning at "+this.after);
		timeLearnedHours = getTimeDifference(2);
		dayList.add(timeLearnedHours);
	}

        public void removeWholeHistory(){
            data.clear();
            
            File file = new File(datname);
            if(file.exists()){
                file.delete();
            }
        }

        public void removeDay(int day){
            data.remove(day);
        }

	public void showPresentDay(){
            Double buffer = 0.0;
		for(int i = 0; i < dayList.size(); i++){
			buffer += dayList.get(i);
			System.out.println("Learning Period Number "+i+" in hours: "+dayList.get(i));
		}
            System.out.println("On this day learned : "+buffer+" hours");
	}

        private void showLessons(){
            for(int i = 0; i < dayList.size(); i++){
                counter++;
                System.out.println("Learning Period Number "+counter+" in hours: "+dayList.get(i));
            }
        }
        
        public void showData(){

        System.out.println("************************");
        for(int i = 0; i < data.size(); i++){
            System.out.println("--------------");
            System.out.println("Learning Times of "+data.get(i).getpresentDay().getTime());
            data.get(i).showPresentDay();
            System.out.println("--------------");
	}
        System.out.println("************************");
        }
        
        public void save(){

        data.add(this);
        //save
        try{
            FileOutputStream fos = new FileOutputStream(datname);
            ObjectOutputStream output = new ObjectOutputStream(fos);

            output.writeObject(this.data);
            output.flush();
            output.close();
        } catch (Exception e){e.printStackTrace();}

        }
        
        public final void load(){

        try{
            FileInputStream fin = new FileInputStream(datname);
            ObjectInputStream input = new ObjectInputStream(fin);

            this.data = (ArrayList<LearningDay>)input.readObject();
            input.close();
        } catch (Exception e){e.printStackTrace();}
        }




        public void onThisDayLearned(int day, int month){
            System.out.println("called");
            for (int j = 0; j < this.data.size();j++) {
                //System.out.println("Day: "+this.data.get(j).getpresentDay().get(Calendar.DATE));
                //System.out.println("Month: "+this.data.get(j).getpresentDay().get(Calendar.MONTH));
                if (this.data.get(j).getpresentDay().get(Calendar.DATE) == day && this.data.get(j).getpresentDay().get(Calendar.MONTH) == month-1) {
                    this.data.get(j).showLessons();
                } 
            }
        }
}
 
Zuletzt bearbeitet:

StupidAttack

Bekanntes Mitglied
Ironie, schreckliche Ironie. Ich wollte ja nur nen kleines Tool schreiben um zu überwachen und zu messen wie lange ich lerne und dachte ich schreibe paar Zeilen und jetzt habe ich ein komplett oop fernes konstrukt, eine klasse die sich selbst speichert und lädt und dabei noch auf sich selbst zugreifen muss...waahhh

Habe das Problem jetzt auch erkannt -Danke- in Zeile 148 greife ich in versch Instanzen von LearningDay auf ihre Methode zu. Na klar fällt Counter immer wieder auf 0. Habt ihr nen Lösungsvorschlag. Soll ich ein Interface zum addieren bauen? Oder den Code einfach mit dem Bruce-Schneier Algorithmus von der Festplatte bannen :)

Thanks
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
P9cman Vokal Zähler mit switch case und for-Schleife Java Basics - Anfänger-Themen 4
R Primzahlen Zähler Programm / Benachbarte Primzahlen Java Basics - Anfänger-Themen 30
M Zähler Java Basics - Anfänger-Themen 3
I Zähler, der erst wieder zählt nachdem Pixel wieder andere Farbe hat Java Basics - Anfänger-Themen 2
K Variablen Zähler Variable in Prozedur Java Basics - Anfänger-Themen 9
F For Schleife ohne Zähler Java Basics - Anfänger-Themen 3
A Ping Pong Score Zähler,aber wie? Java Basics - Anfänger-Themen 3
D Zähler nicht sichtbar (Thema: Konstruktoren) Java Basics - Anfänger-Themen 2
M Variablen Zähler funktioniert nicht - Android App Java Basics - Anfänger-Themen 3
J Zahlensytem-Zähler Java Basics - Anfänger-Themen 1
K JTextField auslesen, in int umwandeln und in einer anderen Klasse als Zähler verwenden Java Basics - Anfänger-Themen 3
R Zähler Java Basics - Anfänger-Themen 9
T Zähler Klasse Java Basics - Anfänger-Themen 4
R Erste Schritte Arbeitszeit Zähler bzw Feierabend Uhr | GregorianCalendar | SimpleDateFormat| Java Basics - Anfänger-Themen 3
L Mausclick Zähler Java Basics - Anfänger-Themen 21
L Minimumsuche mit Zähler Java Basics - Anfänger-Themen 14
-horn- Was passiert, wenn Zähler über Integer Max läuft? Java Basics - Anfänger-Themen 9
O Verständnisfrage Zähler/Rekursion Java Basics - Anfänger-Themen 4
D Zähler beim aufrufen des Strings Java Basics - Anfänger-Themen 2
Z klick zähler Java Basics - Anfänger-Themen 2
N Zähler? Java Basics - Anfänger-Themen 3
F Problem, Zähler speichern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben