# Klassen verknüpfen



## Endymion (17. Nov 2010)

ich habe von eminer lehrerin ein tutorial zum programmieren mit java bekommen. ich habe jetzt aber ein problem: ich will diese klasse:

```
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:

```
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?


----------



## Michael... (17. Nov 2010)

Liegt an Deiner for-Schleife:

```
zaehler = zaehler++
```
 aufgrund der Zuweisung und dem Postinkrement bleibt Zähler immer 0 ==> Endlosschleife
Besser

```
zaehler = ++zaehler
```
Am besten

```
zaehler++
```


----------



## SlaterB (17. Nov 2010)

wie man es herausfinden könnte wenn man mal grundlegend weiß dass Warten ohne Exceptions oft an ewig arbeitenen Schleifen liegt:

```
for (int zaehler = 0; zaehler <= 9; zaehler = zaehler++)
        {
            System.out.println("zaehler: "+zaehler);
            try {Thread.sleep(500); } catch(Exception e) {} // langsamerer Ablauf
```


----------



## bone2 (17. Nov 2010)

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


----------



## Endymion (17. Nov 2010)

sorry ich lern das mit java erst seid ca. 24 stunden^^
was is der unterschied zwischen x++ und ++x?


----------



## Endymion (17. Nov 2010)

funktioniert, danke


----------



## bone2 (17. Nov 2010)

```
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


----------



## XHelp (17. Nov 2010)

@bone2: http://www.java-forum.org/blogs/eraaaa/98-java-modifier.html
@Endymion: Java ist auch eine Insel – 2.4 Ausdrücke, Operanden und Operatoren


----------



## ARadauer (17. Nov 2010)

und wie schon gesagt Klassen nicht komplett groß, sondern CamelCase

PUNKTELISTEANZEIGE > PunkteListeAnzeige

und Variablen klein und Camelcase
 Aktualisieren -> aktualisieren


----------



## SlaterB (17. Nov 2010)

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


----------

