Klassen verknüpfen

Endymion

Bekanntes Mitglied
ich habe von eminer lehrerin ein tutorial zum programmieren mit java bekommen. ich habe jetzt aber ein problem: ich will diese klasse:
Java:
class VERLAUFSLISTE
{
    // Attribute
    String[] namen;
    int[] punkte;
    
    // Referenzattribute
    PUNKTELISTEANZEIGE verlaufslisteAnzeige;
    
    // Konstruktor
    VERLAUFSLISTE ()
    {
        namen = new String[10];
        punkte = new int[10];
        for (int zaehler = 0; zaehler <= 9; zaehler = zaehler++)
        {
            namen[zaehler] = "---";
            punkte[zaehler] = 0;
        }
        verlaufslisteAnzeige = new PUNKTELISTEANZEIGE ();
        verlaufslisteAnzeige.Aktualisieren(namen, punkte);
        verlaufslisteAnzeige.UeberschriftSetzen("History - die letzten 10 Spieler");        
    }
    
    // Methoden
    void NeuesErgebnisEintragen (String nameNeu, int punkteNeu)
    {
        for (int zaehler = 9; zaehler >= 1; zaehler = zaehler-1)
        {
            namen[zaehler] = namen[zaehler-1];
            punkte[zaehler] = punkte [zaehler-1];
        }
        namen[0] = nameNeu;
        punkte[0] = punkteNeu;
        
        //Aktualisierung der Anzeige
        verlaufslisteAnzeige.Aktualisieren(namen, punkte);
    }
         
}
mit dieser von meiner leherin vorgefertigten klasse verknüpfen:
Java:
import backend.anzeige.PunkteListeAnzeige;   //Aenderung bei backend 1_5_8
import java.awt.Font;
import java.awt.Color;

/**
 * Diese Klasse dient zum Ver&auml;ndern der Anzeige der Punkteliste. Diese Punkteliste kann
 * &uuml;ber das Menue sichtbar gemacht werden.
 * 
 * @author Thomas Guentner 
 * @version 1.0
 */

public class PUNKTELISTEANZEIGE extends PunkteListeAnzeige
{


	/**
	 * Konstructor fuer Objekte der Klasse PUNKTELISTEANZEIGE
	 */
	public PUNKTELISTEANZEIGE()
	{
		super();
	}

	/**
	 * Mit dieser Methode kann eine neue Punkteliste mit Punkteintraegen an die PunktelisteAnzeige uebergeben werden.
	 * 
	 * @param  namensliste, punkteliste   
	 */
	public void Aktualisieren(String[] namensListe, int[] punkteListe)
	{
		super.Aktualisieren(namensListe, punkteListe);
	}
	
	/**
	 * Mit dieser Methode kann eine neue Ueberschrift fuer die Punkteliste gesetzt werden.
	 * 
	 * @param ueberschriftNeu
	 */
	public void UeberschriftSetzen(String ueberschriftNeu)
	{
	    super.UeberschriftSetzen(ueberschriftNeu);
	}
	
	/**
	 * Dient zum Setzen der Schriftart der PunkteListe
	 * @param Font schriftart
	 */
	public void SchriftartSetzen(Font schriftart)
	{
	    super.SchriftartSetzen(schriftart);
	}
	
	/**
	 * Dient zum setzen der Schriftfarbe der PunkteListe
	 * @param String schriftfarbe
	 */
	public void SchriftfarbeSetzen(String farbe)
	{
	    super.SchriftfarbeSetzen(farbe);
	}
	   
	   
}
das funktioniert an sich auch. aber wenn ich ein objekt der klasse verlaufsliste erstellen will, fängt bluej nur an zu arbeiten, aber hat nach einer stunde immer noch kein objekt zustande gebracht. kann mir jemand helfen?
 
Liegt an Deiner for-Schleife:
Code:
zaehler = zaehler++
aufgrund der Zuweisung und dem Postinkrement bleibt Zähler immer 0 ==> Endlosschleife
Besser
Code:
zaehler = ++zaehler
Am besten
Code:
zaehler++
 
wie man es herausfinden könnte wenn man mal grundlegend weiß dass Warten ohne Exceptions oft an ewig arbeitenen Schleifen liegt:
Java:
        for (int zaehler = 0; zaehler <= 9; zaehler = zaehler++)
        {
            System.out.println("zaehler: "+zaehler);
            try {Thread.sleep(500); } catch(Exception e) {} // langsamerer Ablauf
 
wie kommt der lehrer auf die idee DIE KLASSENNAMEN KOMPLETT IN CAPS ZU SCHREIBEN?

in verlaufsliste ist nix public gesetzt, aber mir fällt gerade nicht ein, was eigentlich der default status ist
 
Java:
i = 1;
j = 1;
a = ++i; // a ist jetzt 2
b = j++; // b ist jetzt 1
der unterschied ob vor oder nach dem lesen um 1 erhöht wird
 
und wie schon gesagt Klassen nicht komplett groß, sondern CamelCase

PUNKTELISTEANZEIGE > PunkteListeAnzeige

und Variablen klein und Camelcase
Aktualisieren -> aktualisieren
 
das wird schwer bei
> public class PUNKTELISTEANZEIGE extends PunkteListeAnzeige
😉
ist aber ein Grund für CamelCase, niemals Klassen gleichbenennen und nur nach Groß/Kleinbuchstaben unterscheiden
 

Zurück
Oben