hilfe bei java coden ....

javanewbee

Grünschnabel
habe versucht was zamzustellen aber funktioniert leider nicht, vielleicht kann mir jmd helfen in dem er mir kurz sagt was falsch ist:

Code:
 class Würfelspiel {
 int [][] feld;
 public void Würfelspiel (int n) {
  for (int x = 0; x <= n;  x++)
  {
   for (int y = 0; y <= n; y++) {
	feld[x][y] = x+y;
   }
  }
 }
 public static void main (String[] args) {
   Würfelspiel w = new Würfelspiel(8);
   if (w.würfeln()) {
	System.out.println("Kein Feld hat den Maximalwert");
   }
   else {
	System.out.println("Mindestens ein Feld hat Maximalwert erreicht");
   }
 }
 public boolean würfeln(int n) {
  final int max = 100;
  boolean ref = true;
  for (int x = 0; x <= n;  x++)
  {
   for (int y = 0; y <= n; y++) {
	if (feld[x][y] >= (max-1)) {
	 feld[x][y] = 0;
	}
	else {
	 feld[x][y]++;
	}
	if (feld[x][y] == 0) {
	 ref = false;
	}
   }
  }
  return ref;
 }
}

dazu bekomme ich folgende fehler:

c:\java_code\W³rfelspiel.java:15: cannot resolve symbol
symbol : constructor W³rfelspiel (int)
location: class W³rfelspiel
W³rfelspiel w = new W³rfelspiel(8);
^
c:\java_code\W³rfelspiel.java:17: w³rfeln(int) in W³rfelspiel cannot be applied
to ()
if (w.w³rfeln()) {
^
2 errors
 
Zuletzt bearbeitet:
hi,

also das sicher liegt an dem ü im wüerfelspiel. Tausch einfach jedes ü durch ue aus. Auch im Rest vom Quelltext.

Dann noch n fehler du hast im Konstrukor von deiner Klasse den Integer "8" angegeben der muss aber eine Zeile darunter in der methode wuerfeln angegeben werden
 
Zuletzt bearbeitet:
Hallo,

am ü in Würfelspiel bzw würfeln() liegt es nicht, aber trotzdem solltest du darauf verzichten.

Der erste Fehler bezieht sich auf den Constructor

Code:
public void Würfelspiel (int n)
  sondern 
  public Würfelspiel (int n)
 
und noch ein paar Sachen:

die Methode würfeln solle auch in di Classe Würfelspiel

statt
int [][] feld;
den
int feld[][];

und es fehlt noch

feld wfeld = new[100][100];

also die erzeugung von deinem Array
 
Und noch einen Fehler hab ich gefunden:

deine funktion wuerfeln hat den parameter int n.

Du musst bei dem Aufruf von w.wuerfeln() noch einen parameter eintragen sprich w.wuerfeln(8).

und wieder dieses ü durch ue ersetzen....


Gruss

Torsten.
 
danke erstmal für die schnellen hilfen.

aber das ü kann schon bleiben .. java ist doch unicode dachte ich?

andere frage:

gibt es eine hilfe die mir sagt was die einzelnen arten von methoden (public, privat, void, static, ....) auf sich haben und wie ich die miteinander verwenden kann?
 
Zugriffsrechte für Methoden:

public

Diese Methode kann von Außen aufgerufen werden.

private

In diesem Fall steht die Methode nur anderen Methoden der gleichen Klasse zur Verfügung.

protected

Dieser Modifier bestimmt, daß die Methode nur in dieser und von ihr abgeleiteten Klassen verwendet werden kann.

(friendly)

Methoden ohne Modifier werden als "friendly" behandelt. Jede Klasse eines Packages darf solche Methoden bzw. Datenfelder verwenden.

final

Bei der Vererbung ist es normalerweise abgeleiteten Klassen erlaubt, geerbte Methoden neu zu implementieren, d. h. die ursprüngliche Methode aufzuheben. Mit diesem Modifier kann dies verhindert werden.

static

Während zum Aufruf einer "normalen" Methode immer ein Objekt notwendig ist, sind "static"-Methoden allen Klasseninstanzen gemeinsam und werden nur über die Klasse aufgerufen (siehe oben). Auch "static" definierte Felder sind möglich. Diese sind hilfreich, wenn für alle Objekte einer Klassen gemeinsame Daten gespeichert werden sollen.

synchronised

Wird eine "synchronised"-Methode aufgerufen, sperrt Java das Objekt für die Dauer der Ausführung. Ist das Objekt bereits gesperrt, so wird mit der Ausführung so lange gewartet, bis die Sperrung aufgehoben ist. Diese Funktionalität ist bei der parallelen Ausfürhung von mehreren "Threads" von Bedeutung.

native

Java-Programme haben den Vorteil, daß die Plattform-unabhängig sind. Manchmal kann es aber notwendig werden, die Funktionalität von Java vom System abhängig zu erweitern. Das Programm läuft dann zwar nur noch auf einer Plattform, Code-Teile, bei denen es auf Geschwindigkeit ankommt, können aber beispielsweise in C ausgeführt werden. Der Modifier "native" gibt an, daß die Funktion extern implementiert ist.

Quelle: chip.de
 
ah, verstehe ... danke
was aber hat es nun mit void auf sich?
ist es richtig, dass void methoden keinen rückgabe wert haben, hingegen alle anderen schon?
 
javanewbee hat gesagt.:
ah, verstehe ... danke
was aber hat es nun mit void auf sich?
ist es richtig, dass void methoden keinen rückgabe wert haben, hingegen alle anderen schon?

So ist es. Aber Konstruktoren dürfen überhaupt keinen Rückgabetyp haben, also auch nicht void.
 
ich hätte da noch eine kleine frage, ist das vom verständniss her richtig?

Code:
	public static void main(String[] args){
		rekursiv(0);
		System.out.println();
		iterativ(0);
	}
	
	public static void rekursiv(int a){
		System.out.print(a+"-");
		if (a != 10){
			a++;
			rekursiv(a);
		}
		else{
			System.out.print(a);
		}
	}
	
	public static void iterativ(int a){
		while (a <= 10){
			System.out.print(a+"-");
			a++;
		}
	}
 
Zurück