Exception handeling mit finally und objektreferenzen

Diskutiere Exception handeling mit finally und objektreferenzen im Java Basics - Anfänger-Themen Bereich.
A

arhzz

Hallo! Ich soll diesen Code zu "analysieren" ohne ihn zu auszuführen.Ein Teil habe ich erledigt aber einen verstehe ich nicht ganz.Dass ist der Code;

Java:
int dummy() {

 int x = 0;
 try {
    x = x + 1;
    throw new Exception();
 } catch (Exception e) {
   x = x + 2;
   return x;
 } finally {
  x = x + 4; 
  }
Also den Teil den ich nicht ganz verstehe ist diese : " Was wäre, wenn x keine Primitive, sondern eine Referenz auf ein Objekt wäre, die Increments ein Feld des Objekts manipulieren würden, und die Methode die Objektreferenz zurückliefern würde. Wären diese Änderungen nach außen hin sichtbar? Wenn ja, warum? "

Was ist gemeint mit "Increments ein Feld des Objekts" und "nach außen sichtbar".

Danke!
 
J

JustNobody

Das soll bedeuten, dass du eine Klasse hast welche ein Feld hat (z.B. wieder x) und diese ist von außen sichtbar (public).

Dann hättest du halt MyClass x = new MyClass() um dann immer mit x.x zu arbeiten ...

Dann würde x zurück gegeben nur wie wirkt sich dann das finally noch aus bzw wirkt es sich anders aus?
 
A

arhzz

Das soll bedeuten, dass du eine Klasse hast welche ein Feld hat (z.B. wieder x) und diese ist von außen sichtbar (public).

Dann hättest du halt MyClass x = new MyClass() um dann immer mit x.x zu arbeiten ...

Dann würde x zurück gegeben nur wie wirkt sich dann das finally noch aus bzw wirkt es sich anders aus?
Ooooh mit sichtbar meinten sie public private... Also die Änderungen sind nach außen hin sichtbar? Ja dass mit x.x zu arbeiten wurde gleich wie mit primitieven typen funktioniren, die Incrementes meine ich. Der finally block incrementiert den Wert von x aber das ändert den Rückgabewert nicht, da bei der Rückgabe eines int dessen Wert übergeben wird, nicht die Referenz der
Variablen x,denke ich. Aber hauptsache dass die Änderungen sichtbar sind, und die Incrementation von x würde gleich Funktionieren?
 
J

JustNobody

Die Methode soll aber die Referenz zurück geben und nicht mehr den int Wert.
 
J

JustNobody

Die Referenz verweist auf eine Instanz mit dem Feld. Die Frage ist halt, was da dann passiert, wenn das Feld in finally noch verändert wird.
 
Thema: 

Exception handeling mit finally und objektreferenzen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben