Java interface als library

05/11/2011 19:50 epiTR#1
Huhu,
ich programmiere gerade ein Tic Tac Toe Spiel. Da ich bestimmte Sachen, wie Spielername, current player etc. speichern möchte, wollte ich ein interface als library benutzen. Leider bekomme ich einen recht seltsamen Fehler und zwar bei:

Library:
Code:
package main;

import java.awt.Color;

public interface Library {
//::::::::::::::::::::::::
	//own data for players
	public enum Player{A, B, NONE}

	//set first player
	public Player firstPlayer = Player.A;
	
	//set current player
	public Player curPlayer = firstPlayer;
	
	//colors for each player
	public final Color COLOR_NONE = Color.white;
	public final Color COLOR_PLAYER_A = Color.blue;
	public final Color COLOR_PLAYER_B = Color.red;
//::::::::::::::::::::::::	
}//end Library (interface)
andere Klasse:
Code:
package main;

import java.awt.Button;
import main.Library;

public class GameControl implements Library {
	//temporary button:
	Button button;
	
	public GameControl(Button hB){
		button = hB;
	}//end Constructor
	
	
	public void calculation(){
                 [COLOR="Red"]curPlayer[/COLOR] = Player.B;
}//end calculation
	
}//end GameControl (class)
curPlayer: The final field Library.curPlayer cannot be assigned

Ich bin noch eher ein Programmieranfänger und kenne mich natürlich nicht 100%ig aus. Ich stehe gerade auf dem Schlauch und kann auch nichts im Internet finden. Ich bedanke mich für Hilfe :)
05/11/2011 19:57 Obilee#2
In Interfaces kann man keine Variablen definieren , nur Konstanten. Felder in Interfaces sind immer "public static final".

Darum kannst du der Konstanten "curplayer" auch nicht den Wert player.b zuschreiben
05/11/2011 20:09 epiTR#3
Ok danke dir, werde ich dann anderst lösen müssen.
05/11/2011 20:11 Obilee#4
Du verstehst glaub ich auch den Sinn vom Interface falsch wenn du dies so verwenden willst.
05/11/2011 20:58 epiTR#5
Ich weiß schon wofür interfaces sind, wusste aber nicht, dass alles final sein muss.