Wofür stehen diese Konstanten im Java Labyrinth ?

Fats Waller

Mitglied
Es handelt sich hierbei um die berühmte Mazefield aufgabe zur Erstellung eines Labyrinths über Java

Wofür stehen die konstanten in der Variable dort unten ? Geben sie die Grenzen des Labyrinths an oder die Richtungen in welche der Labyrinth Pfad fortgeführt wird ?


public class MazeField
{

public final static byte NumberOfDirections = 4;
public final static byte NULL = 0;
public final static byte NORTH = 1;
public final static byte EAST = 2;
public final static byte SOUTH = 3;
public final static byte WEST = 4;

Liebe Grüße Fats
 
Wofür stehen die konstanten in der Variable dort unten ?
Da erst einmal die Wortwahl: Du hast eine Klasse gezeigt - keine Variable. In der Klasse hast Du dann 5 Variablen gezeigt, die "final" sind, d.h. bei denen es sich um Konstanten handelt.

Geben sie die Grenzen des Labyrinths an oder die Richtungen in welche der Labyrinth Pfad fortgeführt wird ?
Variablen und Konstanten sollten so benannt werden, dass klar ist, was diese beinhalten.

Was sind denn Norden, Osten, Süden und Westen? Sind es Grenzen? Oder sind es Richtungen?

Also was macht Sinn:
"Papa, bis wohin darf ich gehen?" (Frage nach einer Grenze) und Antwort "Norden" (oder Osten, Süden oder Westen)?
"Papa, in welche Richtung soll ich gehen?" (Frage nach einer Richtung) und Antwort "Norden" (oder Osten, Süden oder Westen)?

Dann wäre noch eine Konstante: "Anzahl der Richtungen" - was könnte sich dahinter verstecken?

Bleibt nur noch NULL - da kann man sich wirklich fragen, was das soll. Das ist ggf. der Wert "keine Richtung angegeben".

Allgemeine Hinweise:
a) Konstanten werden im SCREAMING_CASE geschrieben. Daher sollte es NUMBER_OF_DIRECTIONS sein.
b) Statt solcher Konstanten sollte man über eine Enum nachdenken. (Dann kann die NULL auch entfallen, denn eine Enum Variable ist eine Referenz und dieser kann die Null-Referenz zugewiesen werden)
 
Unter Annahme der von @kneitzel bereits "bemängelten" Wortwahl: könnte es sein, dass Du mit "Konstanten" die Literale 0, 1, 2, 3, 4 meinst? Das wären einfach Werte, um die Konstanten NULL, NORTH, EAST, SOUTH und WEST voneinander unterscheiden zu können und müssen keine tiefere Bedeutung haben.
 
Dient der Lesbarkeit des Codes.
ein enum wäre in diesem fall lesbarer mit einem switch case

Java:
public enum Richtung{
    NORD,SÜD,WEST,OST
}

void fahren( Richtung richtung){
switch(richtung)
case(NORD) ->  nachNorden()
...
...
}
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben