Zugriffsweite von übergebenen Objekten erhöhen

Network

Top Contributor
Hi,

wie die überschrift sagt, möchte ich an einer Klasse übergebene Objekte für die ganze Klasse sichtbar machen.

Im Moment mache ich das so:
Java:
public class bsp {
     int a;
     public bsp( int b ) {
          a = b;
     }
}

Fragen:
1. Kann man das auch irgendwie anderst machen?
2. Was passiert eig. hier???
Java:
public class bsp {
     int b;
     public bsp( int b ) {
     }
}
Es wird zugelassen, aber ist das nicht eig. Grund für eine Fehlermeldung? ("Duplicate field")


Vielen Dank
 

Haave

Top Contributor
Zu Frage 2:

Nein, das ist kein "duplicate field". Das in der Methode lokal angelegte int b überdeckt die Instanzvariable b. Wenn du auf letztere zugreifen willst, musst du this.b schreiben. Also:
Java:
public class Beispiel {
    int b;
    public Beispiel(int b) {
        this.b = b;
    }
}

Duplicate field würde so aussehen:
Java:
public class Beispiel {
    int b;
    double b;
}


Frage 1 hab ich nicht wirklich verstanden.
 

Network

Top Contributor
Danke

Zu Frage 1:
Naja, ich übergeb jetzt 7 Variablen meiner Klasse.
Jetzt muss ich für jede übergebene Variable eine 2.Variable erstellen, die für die gesammte Klasse sichtbar ist und ihr den Wert der übergebenen Variable übergeben!

Ich finde das hinterlässt einen hässlichen Fleck im Code.

Und meine Frage ist jetzt halt, ob es eine möglichkeit gibt, die übergebenen Variablen gleich für die gesammte Klasse sichtbar zu machen, ohne zusätzlichen Code. Oder ob ich wirklich jedesmal
Java:
int b;
b = c;
schreiben muss.
 

Antoras

Top Contributor
Es handelt sich hier einmal um Instanzvariablen und einmal um lokale Variablen:
Java:
class X {
  int a; // Instanzvariable
  X(int a /* lokale Variable */) {
    this.a = a;
  }
}
Die lokale Variablen gelten nur innerhalb einer Methode (hier dem Konstruktor), von außerhalb kannst du nicht mehr darauf zugreifen.
Im Konstruktor kannst du alle Variablen angeben mit denen du ein Objekt initialisieren möchtest. Das ist das gleiche Prinzip wie bei einer ganz normalen Methode:
Java:
void method(int a) {
  // mach was mit a
  // a ist außerhalb von method nicht sichtbar
}

Die Initialisierungsschreibweise von Java kann man mögen oder eben nicht - es ist in Java aber die einzige Möglichkeit Variablen mit Hilfe des Konstruktors zu initialisieren.
 
Zuletzt bearbeitet:

Haave

Top Contributor
Wenn ich es jetzt richtig verstanden habe, geht es dir darum, die Deklaration von lokalen Variablen in der Parameterliste zu umgehen und einfach sofort den Instanzvariablen einen bestimmten Wert zuzuweisen - also dass die Werte nicht zuerst in den Parametern gespeichert werden und erst anschließend den Instanzvariablen über die Parameter zugewiesen werden?

Falls das korrekt bei mir ankam: Nein, das dürfte nicht gehen. Du machst diese lokalen Variablen, damit du in der Methode, die mit diesen Parametern aufgerufen werden, entscheiden kannst, ob deine Instanzvariablen tatsächlich die übergebenen Werte erhalten sollen oder ob da nicht vielleicht etwas schiefgelaufen ist und du eine Fehlermeldung ausgeben müsstest. Würden die übergebenen Werte einfach direkt in die (normalerweise ja privaten) Instanzvariablen "injiziert", hast du keine Möglichkeit, vorher zu überprüfen, ob dieser Vorgang überhaupt legitim war.

Und da du schreibst, du müsstest zu jeder Variable immer noch eine zweite erstellen: du weißt aber schon, dass diese zweite Variable wie oben geschrieben nur lokal ist? Wenn die Zuweisungen geschehen sind, verbrauchen die danach nie wieder Speicherplatz, hinterlassen also eigentlich keine "Flecken" ^^
EDIT: Also die von dir beschriebene zweite Variable ist die Instanzvariable, ich meinte hier mit zweiter Variable die lokale Variable, die Parameter ist. Hoffe, das hat jetzt nicht verwirrt.
 
Zuletzt bearbeitet:

Network

Top Contributor
@Haave
Im System macht es keine "Flecken", ich nehme an du meinst dies auf den Arbeitsspeicher bezogen.
-> Für den Programmierer sieht der Programmcode aber nicht schön/übersichtlich aus... also hässliche Flecken/Codeabschnitte sind dann im Gesammtcode.

Aber wieder danke, die Erklärung hat mir gefallen :) Das macht dann auch noch Sinn warum das ganze so ist o_O
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Klassenmethode mit übergebenen Parameter speichern Java Basics - Anfänger-Themen 7
T Aufgerufene Methode Inhalt der übergebenen Referenz Java Basics - Anfänger-Themen 5
B übergebenen String auswerten Java Basics - Anfänger-Themen 6
T Auf Values einer übergebenen Map zugreifen Java Basics - Anfänger-Themen 6
D probleme mit per commandozeile übergebenen pfaden Java Basics - Anfänger-Themen 5
U wert eines nicht übergebenen parameters festlegen Java Basics - Anfänger-Themen 5
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
T Kollision von 2 Objekten Java Basics - Anfänger-Themen 2
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
B Reflection ändern von Objekten in Objekten Java Basics - Anfänger-Themen 12
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
N Vererbung Queue bestehend aus Superclass- und Subclass-Objekten Java Basics - Anfänger-Themen 7
B Compiler-Fehler Array aus Objekten übergeben Java Basics - Anfänger-Themen 7
YAZZ Schlüsselworte Töten von Objekten Gameover Java Basics - Anfänger-Themen 2
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
districon Vergleichen von Objekten Java Basics - Anfänger-Themen 20
Zeppi OOP Array in Objekten Java Basics - Anfänger-Themen 4
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
JavaNoobi Try and Catch und übergabe von Objekten Java Basics - Anfänger-Themen 2
A Klasse Menge mit Objekten der Klasse Person Java Basics - Anfänger-Themen 8
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1
D Mit Objekten rechnen, Textfield, JavaFX, Noob Java Basics - Anfänger-Themen 8
N enum Attribut von Objekten einer Hashmap ausgeben Java Basics - Anfänger-Themen 6
A Auf Eigenschaften von Objekten anderer Klassen zugreifen Java Basics - Anfänger-Themen 5
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
N Klassen Rekursion mit Feldern von Objekten Java Basics - Anfänger-Themen 14
D Operatoren Mit Objekten rechnen Java Basics - Anfänger-Themen 7
E Datentypen Einfügen von Objekten in eine Map Java Basics - Anfänger-Themen 2
S Pane nach speziellen Child Objekten durchsuchen Java Basics - Anfänger-Themen 3
B ID von unterschiedlichen Objekten bekommen? Java Basics - Anfänger-Themen 2
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
PaperHat Programmieraufgabe - Objekte in Objekten Java Basics - Anfänger-Themen 2
L Rechnen mit Objekten Java Basics - Anfänger-Themen 3
S werte von objekten in schleife verändern Java Basics - Anfänger-Themen 14
D Zusammenarbeit von Objekten Java Basics - Anfänger-Themen 1
Y Begrenzte Anzahl an Objekten? Java Basics - Anfänger-Themen 12
Kornblume Nulltyp eines Arrays von Objekten? Java Basics - Anfänger-Themen 10
A Frage zur Aufgabe Uhrzeit einstellen mit Objekten Java Basics - Anfänger-Themen 18
M Generische Liste aus Comparable-Objekten Java Basics - Anfänger-Themen 6
G Klassen Call by Value auch bei Objekten? Java Basics - Anfänger-Themen 2
R Verständnisfrage zu Objekten u. Übergabeparameter Java Basics - Anfänger-Themen 8
arjoopy Kapselung Übergabe von Objekten aus ArrayList Java Basics - Anfänger-Themen 4
schoenosrockos Unterschied zwischen Objekten und vererbungen Java Basics - Anfänger-Themen 1
M Speichern von Objekten - Verfügbarkeit bei erneutem Aufruf Java Basics - Anfänger-Themen 3
R Methoden Methode ruft Methode auf, ruft Methode auf (mit Objekten) Java Basics - Anfänger-Themen 4
S Serialisierung: Laden von Objekten - Risiken? Java Basics - Anfänger-Themen 4
Shizmo PriorityQueue mit Objekten Java Basics - Anfänger-Themen 10
E Instanzieren von Objekten verkürzen Java Basics - Anfänger-Themen 1
F Interaktion von Objekten verschiedener Klassen... Java Basics - Anfänger-Themen 13
D Effiziente Verwaltung der Objekten und Unterobjekten Java Basics - Anfänger-Themen 18
N Dauer zwischen zwei LocalDateTime Objekten berechnen? Java Basics - Anfänger-Themen 4
L Subklasse von ArrayList nur mit bestimmten Objekten füllen Java Basics - Anfänger-Themen 1
E Erste Schritte Gute Erklärung zu Objekten / Klassen / Methoden / Sichtbarkeiten auf Deutsch Java Basics - Anfänger-Themen 3
S Problem mit augabe von Objekten Java Basics - Anfänger-Themen 3
T Junit Mockito: Instanz von inneren erzeugten Objekten Java Basics - Anfänger-Themen 4
P Zugriff auf Felder in ArrayList Objekten Java Basics - Anfänger-Themen 2
W Was passiert mit Objekten die nicht in Objektvariablen initialisiert werden ? Java Basics - Anfänger-Themen 3
D Zugriff auf von einer anderen Klasse erstellten Objekten Java Basics - Anfänger-Themen 5
S Liste mit Objekten und Listen Java Basics - Anfänger-Themen 9
Y Gleiche Arrays aus einem Array mit Objekten Java Basics - Anfänger-Themen 5
K Min eines Arrays mit Objekten Java Basics - Anfänger-Themen 6
M Array mit Objekten lässt sich nicht auslesen Java Basics - Anfänger-Themen 10
T Statische Arrays von Objekten Java Basics - Anfänger-Themen 2
J Methoden Einfügen von Objekten nach Alphabet in ArrayList funktioniert nicht Java Basics - Anfänger-Themen 2
B Erste Schritte Anzeige von Graphics Objekten einzeln aktualisieren Java Basics - Anfänger-Themen 1
TheSorm Koordinaten von gedrehten Objekten Java Basics - Anfänger-Themen 4
D Bestimmte Werte von Objekten aus einer ArrayList in eine andere ArrayList kopieren Java Basics - Anfänger-Themen 14
B Aliasing bei null-Objekten Java Basics - Anfänger-Themen 3
O Java Erzeugung von neuen Objekten Java Basics - Anfänger-Themen 1
J Verständnisfragen zu dem Thema Objekten Java Basics - Anfänger-Themen 7
J Array von Objekten, wie schauts im Heap / Stack aus ? Java Basics - Anfänger-Themen 7
O Größe von Objekten Java Basics - Anfänger-Themen 5
Y Variable Menge von Objekten erzeugen und mit ihren Attributen rechnen Java Basics - Anfänger-Themen 7
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
F Umgang mit referenzierten Objekten bei ArrayList Java Basics - Anfänger-Themen 1
M Löschen von Objekten während Iteration über Liste Java Basics - Anfänger-Themen 9
E Array von Objekten einer selbst definierten Klasse mit eindeutigem Namen Java Basics - Anfänger-Themen 2
C For schleife mit Array und Objekten Java Basics - Anfänger-Themen 17
kaoZ Input/Output Android : Deserialisieren von mehreren Objekten in einer Datei Java Basics - Anfänger-Themen 0
U Übergabe von Objekten Java Basics - Anfänger-Themen 0
C Werte aus zwei Objekten miteinander vergleichen Java Basics - Anfänger-Themen 3
Joew0815 Interface JSON Objekte aus Java Objekten erzeugen Java Basics - Anfänger-Themen 9
D Sortieren von int Werten von Objekten in einer LinkedList, kann nicht auf int Werte zugreifen Java Basics - Anfänger-Themen 3
E Erste Schritte Sortieren von Objekten in doppelt-verlinkter Liste Java Basics - Anfänger-Themen 9
R addition von 2 Array Objekten Java Basics - Anfänger-Themen 5
V Grundlegendes Zu Objekten/Klassen Java Basics - Anfänger-Themen 10
S Problem bei Kollision zwischen Array-objekten! Java Basics - Anfänger-Themen 2
C Probleme mit neuen Objekten Java Basics - Anfänger-Themen 3
S Erste Schritte Bluej Automatisches Einfügen von Objekten Java Basics - Anfänger-Themen 4
D ID von Objekten in Arraylist Java Basics - Anfänger-Themen 3
B Datentypen Inhalt von Objekten miteinander vergleichen Java Basics - Anfänger-Themen 2
R Erste Schritte Objekte mit anderen Objekten als Inhalt Java Basics - Anfänger-Themen 4
V Frage zum Löschen von Objekten Java Basics - Anfänger-Themen 2
C ArrayList mit Objekten Java Basics - Anfänger-Themen 4
P Mindestangaben beim anlegen von Objekten Java Basics - Anfänger-Themen 4
H Array von Klassen Objekten Java Basics - Anfänger-Themen 6
J Array mit Objekten sortieren Java Basics - Anfänger-Themen 11
J Bilder von Objekten Java Basics - Anfänger-Themen 3
G Scrollbares Fenster bei mehr als 5 Objekten Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben