Sinn: final in Parameterliste verwenden

ernst

Top Contributor
Hallo allerseits,
Welchen Sinn hat es den Bezeichner final vor einem Parameter in einer Methode zu verwenden ?
Siehe Programm unten.
Bis jetzt dachte ich, damit der Parameter nicht verändert werden kann, d.h. dass
z.number=z.number+1;
eine Fehlermeldung des Compilers verursacht.
Das stimmt aber nicht.
Siehe unten.

mfg
er


Java:
package parameteruebergabe10;

public class Startklasse {
    public static void main(String[] args) {
        Zahl myZahl = new Zahl(5);
        rauf(myZahl);
        myZahl.printAllAttributes();
    }
   
    public static void rauf(final Zahl z){
        z.number=z.number+1;
    }
}

class Zahl{
    public int number;
   
    public Zahl(int z){
        number=z;
    }
   
    public void printAllAttributes(){
        System.out.println("Zahl="+number);
    }
}
 

mrBrown

Super-Moderator
Mitarbeiter
Du kannst den Parameter nicht neu zuweisen:

Java:
public static void rauf(final Zahl z){
        z = new Zahl(42); //Compile-Fehler
    }


Objekte sind immer veränderlich, wenn sie es nicht selbst verhindern.
 
Zuletzt bearbeitet:

httpdigest

Top Contributor
Es hilft nur dabei, den Parameter einer Methode nicht aus Versehen auf einen ganz anderen Wert umzubiegen. Das ist hilfreich bei etwas längeren Methoden, die man verstehen oder anpassen möchte und man davon ausging, dass der Parameter immer den Wert des tatsächlichen aktuellen Argumentes hat, mit dem die Methode aufgerufen wurde. Erstaunt kann man aber beim Debuggen meist feststellen, dass dem nicht immer so ist, z.B. wenn man solch einen Code schreibt:
Java:
public Benutzer findeBenutzerMitNachnamen(String nachname) {
  // ... mehr Code
  // irgendwo im Code versteckt:
  nachname = namename.toLowerCase();
  // ... mehr Code
}
Wenn das eventuell dann irgendwann einmal zu einer Datenbankabfrage führt eventuell mit einem einfachen '=' Vergleich, und in der Tabelle der tatsächliche unkonvertierte Nachname steht, dann wundert man sich, wenn man stundenlang in der Datenbanktabelle schaut, der Fehler aber eigentlich in dem Umbiegen des Methodenparameters ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
berserkerdq2 Wo ist der SInn, dass man den Stream, den ich zum Schreiben nutze, outputstream nenne? Java Basics - Anfänger-Themen 5
H Sinn von Interfaces Java Basics - Anfänger-Themen 21
W Sinn eines Singleton ? Java Basics - Anfänger-Themen 14
R getUserProperties() macht für mich keinen Sinn Java Basics - Anfänger-Themen 8
B Sinn von Lambdas? Java Basics - Anfänger-Themen 16
5 Welchen Sinn hat ein Runnable Java Basics - Anfänger-Themen 6
P OOP Sinn von abstrakten Klassen Java Basics - Anfänger-Themen 2
M Kapselung Datenkapselung Sinn direkter Zugriff? Java Basics - Anfänger-Themen 1
B Der Sinn von Arrays Java Basics - Anfänger-Themen 2
Q Container sinn? Java Basics - Anfänger-Themen 3
S string index out of range - es ergibt keinen Sinn Java Basics - Anfänger-Themen 6
C Sinn eines Interfaces? Java Basics - Anfänger-Themen 4
J Sinn/Nutzen von Scanner Java Basics - Anfänger-Themen 23
B Sinn von Reflections Java Basics - Anfänger-Themen 10
H Vererbung Prinzip der Ersetzbarkeit-Sinn? Java Basics - Anfänger-Themen 9
F Sinn der SuppressWarnings("unused")-Annotation Java Basics - Anfänger-Themen 5
R Sinn des programmes Java Basics - Anfänger-Themen 10
W Sinn von Konstruktorsyntax und finalize Java Basics - Anfänger-Themen 14
J Worin besteht der Sinn und Anwendungsbereich von Dreidimensionalen Arrays? Java Basics - Anfänger-Themen 11
J Datentypen Was ist der Sinn vom Datentyp "char" ? Java Basics - Anfänger-Themen 11
T Sinn von finally? Java Basics - Anfänger-Themen 3
M Variablen Zinseszinsberechnung - Variable ergibt keinen Sinn Java Basics - Anfänger-Themen 15
A Klassen Sinn des Konstruktors Java Basics - Anfänger-Themen 12
P Sinn des Security Managers Java Basics - Anfänger-Themen 2
J Welchen Sinn haben abstrakte Methoden? Java Basics - Anfänger-Themen 4
D Sinn von Jar Dateien Java Basics - Anfänger-Themen 5
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
K Sinn eigener Exceptions Java Basics - Anfänger-Themen 11
Luk10 Sinn von Instanzierung ohne Referenz Java Basics - Anfänger-Themen 7
hdi Sinn von RuntimeExceptions? Java Basics - Anfänger-Themen 90
Developer_X NullPointer Exception ohne Sinn Java Basics - Anfänger-Themen 19
L Sinn hinter Generic? Java Basics - Anfänger-Themen 5
M Der Java Schlüsselwort null; ?Welche Anweisung und Sinn? Java Basics - Anfänger-Themen 12
A Macht es Sinn Arraylisten mit Gettern zu übergeben? Java Basics - Anfänger-Themen 19
M Variable überwachen und Sinn eines Threads Java Basics - Anfänger-Themen 7
G Sinn vo OOP Java Basics - Anfänger-Themen 5
P Unterschied zwischen Interface und Vererbung und Sinn? Java Basics - Anfänger-Themen 5
G sinn von JList Java Basics - Anfänger-Themen 6
K Sinn von Interfaces Java Basics - Anfänger-Themen 10
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
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
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
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
J final variablen Java Basics - Anfänger-Themen 3
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
H Variablen final? Java Basics - Anfänger-Themen 3
T Warum muss diese Variable final deklariert werden? Java Basics - Anfänger-Themen 5
G final Variablen in enhanched-for Java Basics - Anfänger-Themen 2
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
A final Variablen und der GarbageCollector Java Basics - Anfänger-Themen 2
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
J Interface: The final field Variablen.N cannot be assigned Java Basics - Anfänger-Themen 2
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
G Methoden + variablen als final definieren? Java Basics - Anfänger-Themen 3
F enum oder static final boolean? Java Basics - Anfänger-Themen 18
M enum final Methoden Java Basics - Anfänger-Themen 24

Ähnliche Java Themen

Neue Themen


Oben