final variablen

johannesK

Mitglied
Mein vorgegebener Code der Klasse Board (die aufgabe behandel das n-Damen Problem auf einem Schachbrett) mit der öffentlichen Konstruktor "public Board" dem ein integer übergeben wird ruft den privaten Konstruktor "private Board" mit den werten (0, übergebener Integer) auf. Es wird ein Feld der länge 0 erzeugt (das in der Klasse als final deklariert ist).

Ich soll jetzt eine Methode schreiben, die das board um eine spalte erweitert (siehe newColumn(int rowPosOfQueen)) aber mein versuch mit dem Befehl
Board newBoard = new Board(length + 1, numberOfRows);
schlägt fehl, da ich so kein neues feld board der länge length + 1 erzeuge.

Wie kann ich denn hier ohne die variablen deklaration FINAL zu ändern jeweils ein board der länge length+1 erzeugen ???



Java:
/** Zeile  2 - 17 sind so vorgegeben und dürfen NICHT verändert werden */
public class Board {
  private final int[] board;
  private final int numberOfRows;

  public Board(int numberOfRows) {
    this(0, numberOfRows);
  }

  private Board(int numberOfColumns, int numberOfRows) {
    this.board = new int[numberOfColumns];
    this.numberOfRows = numberOfRows;
  }

  public int getNumberOfColumns() {
  return board.length;
  }

  public Board newColumn(int rowPosOfQueen) {            
    int length = getNumberOfColumns();
    int[] temp = new int[length];
    System.arraycopy(board, 0, temp, 0, length);
    Board newBoard = new Board(length + 1, numberOfRows);
    System.arraycopy(temp, 0, board, 0, length);
    board[length + 1] = rowPosOfQueen;                                 
    return newBoard;
  }


Vielen Dank für die Hilfe

Johannes
 
S

SlaterB

Gast
final ist final und wird auch nicht gebrochen

du kannst ein komplett neues Board-Objekt erzeugen, was du ja auch machst,
aber dann höchstens vom aktuellen dorthin kopieren, das aktuelle Objekt wird nie größer

was hast du denn mit all den Copy-Befehlen im einzelnen vor und was funktioniert nicht?
 

diggaa1984

Top Contributor
im Prinzip hast du ja schon das richtige vor, ein komplett neues Objekt erzeugen und die alten Werte reinkopieren, sowie den neuen setzen ..

Java:
public Board newColumn(int rowPosOfQueen) {
    int oldLength = board.length;
    Board newBoard = new Board(oldLength+1,numberOfRows);
    System.arraycopy(board,0,newBoard.board,0,oldLength);
    newBoard.board[oldLength] = rowPosOfQueen;
    return newBoard;
}
 
Zuletzt bearbeitet:

johannesK

Mitglied
im Prinzip hast du ja schon das richtige vor, ein komplett neues Objekt erzeugen und die alten Werte reinkopieren, sowie den neuen setzen ..

Java:
public Board newColumn(int rowPosOfQueen) {
    int oldLength = board.length;
    Board newBoard = new Board(oldLength+1,numberOfRows);
    System.arraycopy(board,0,newBoard.board,0,oldLength);
    newBoard.board[oldLength] = rowPosOfQueen;
    return newBoard;
}


Vielen Dank für die schnelle Antwort .... ich erzeuge also jedes mal einfach ein neues Objekt mit einem neuen int[] board und kann mir somit auch die ganzen arraycopys sparen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
H Variablen final? Java Basics - Anfänger-Themen 3
G final Variablen in enhanched-for Java Basics - Anfänger-Themen 2
A final Variablen und der GarbageCollector Java Basics - Anfänger-Themen 2
J Interface: The final field Variablen.N cannot be assigned Java Basics - Anfänger-Themen 2
G Methoden + variablen als final definieren? Java Basics - Anfänger-Themen 3
C Setter-Methode mit final-Attribut Java Basics - Anfänger-Themen 9
I Variable innerhalb Methode: Local variable test defined in an enclosing scope must be final or effectively final Java Basics - Anfänger-Themen 3
J final attribute erben Java Basics - Anfänger-Themen 2
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
A final String verrechnen Java Basics - Anfänger-Themen 2
N Wie kann ich eine meine Variable Final machen? Java Basics - Anfänger-Themen 1
A Variablen zum final verändern Java Basics - Anfänger-Themen 4
D Interface Final für Parameter in überschriebenen Methoden? Java Basics - Anfänger-Themen 3
E Sinn: final in Parameterliste verwenden Java Basics - Anfänger-Themen 2
M Iterator cannot refer to a non final... Java Basics - Anfänger-Themen 20
shiroX Klassen Klasse/Methode private final jUnit-Fehler Java Basics - Anfänger-Themen 5
R JTextArea final Status ändern Java Basics - Anfänger-Themen 11
F Static final Klasse Java Basics - Anfänger-Themen 0
S Kopierkonstrukter eines Objekts mit final Attributen Java Basics - Anfänger-Themen 6
T Schlüsselworte final Java Basics - Anfänger-Themen 1
M Wann final verwenden? Java Basics - Anfänger-Themen 5
F Methoden Cannot refer to a non-final variable.. verständnisproblem. Java Basics - Anfänger-Themen 7
C Klassen Minesweeper Problem. int needs to be final (inner class problem) Java Basics - Anfänger-Themen 3
R Variablen final String Variable als Attribut veränderbar? Java Basics - Anfänger-Themen 21
U final Instanz Java Basics - Anfänger-Themen 11
W run Methode in Time erzwingt final Java Basics - Anfänger-Themen 3
D Polymorphie final class Java Basics - Anfänger-Themen 2
C Erste Schritte felder, die public final sind Java Basics - Anfänger-Themen 6
H static final vs. final static Java Basics - Anfänger-Themen 3
A final und extends Java Basics - Anfänger-Themen 14
N Bessere Performance durch final: wann denn überhaupt? Java Basics - Anfänger-Themen 28
xehpuk Compiler-Fehler final Variable in try-catch Wert zuweisen Java Basics - Anfänger-Themen 8
P Variablen static final boolean Java Basics - Anfänger-Themen 9
S Interface Final und interface Java Basics - Anfänger-Themen 6
ruutaiokwu final wenn immer möglich verwenden? Java Basics - Anfänger-Themen 30
N local variable model is accessed from within inner class; needs to be declared final Java Basics - Anfänger-Themen 4
C Error: The final local variable variable cannot be assigned, since it is defined in an enclosing typ Java Basics - Anfänger-Themen 4
T Verständnis von "final" und "static" Java Basics - Anfänger-Themen 6
T In methode Final Objekte übergeben? Java Basics - Anfänger-Themen 9
C final variable Java Basics - Anfänger-Themen 4
G Poi 3.5-Final zum laufen bringen Java Basics - Anfänger-Themen 2
H final/static Vererbung Java Basics - Anfänger-Themen 4
P Can not refer to a non final variable... Java Basics - Anfänger-Themen 3
T Warum muss diese Variable final deklariert werden? Java Basics - Anfänger-Themen 5
V Frage zu final und Class bzw. Class.cast Java Basics - Anfänger-Themen 5
G static final Java Basics - Anfänger-Themen 7
Q Vector verändert trotz final seine Größe Java Basics - Anfänger-Themen 5
G OOP - final Java Basics - Anfänger-Themen 2
B objekt wann als final deklarieren? Java Basics - Anfänger-Themen 2
G Sollte man Klassenvariablen als final deklarieren? Java Basics - Anfänger-Themen 3
B privat mit und ohne final Java Basics - Anfänger-Themen 4
B final vor Funktionsparameter? Java Basics - Anfänger-Themen 21
D Static, final Objekte mit Exceptions im Konstruktor Java Basics - Anfänger-Themen 2
W Fehlermeldung "...needs to be declared final" ! Java Basics - Anfänger-Themen 4
N Wieso final ? Java Basics - Anfänger-Themen 4
G <identifier> expected bei public void final Java Basics - Anfänger-Themen 3
A Problem mit innerer Klasse/final Java Basics - Anfänger-Themen 2
F enum oder static final boolean? Java Basics - Anfänger-Themen 18
M enum final Methoden Java Basics - Anfänger-Themen 24
S final String Java Basics - Anfänger-Themen 2
N The serializable class.does not declare a static final . Java Basics - Anfänger-Themen 2
T private final String oder final String? Was ist richtig? Java Basics - Anfänger-Themen 4
F public final void getsignature() | anfänger Java Basics - Anfänger-Themen 7
A class does not declare a static final serialVersionUID Java Basics - Anfänger-Themen 13
G wieso muss Textfield final sein? Java Basics - Anfänger-Themen 6
M Cannot refer to a non-final variable Java Basics - Anfänger-Themen 10
A array nach initialisierung final machen? Java Basics - Anfänger-Themen 17
G public static void main(final String[] args) Java Basics - Anfänger-Themen 4
G Warum muss das Textfeld final sein? Java Basics - Anfänger-Themen 2
P final mit Parametern Java Basics - Anfänger-Themen 3
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
T Variablen Java Basics - Anfänger-Themen 1
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
M Aufsummieren von variablen Wertegrößen Java Basics - Anfänger-Themen 17
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
ashi Variablen aufrufen Java Basics - Anfänger-Themen 17
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
C Konstruktoren und Variablen Java Basics - Anfänger-Themen 42
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
Arif Vererbung Methodenvererbung mit finalen Variablen Java Basics - Anfänger-Themen 1
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
M Java Instanz-Variablen ? Java Basics - Anfänger-Themen 3
B Variablen von Methoden übertragen Java Basics - Anfänger-Themen 2
M Variablen umbenennen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben