OO-Anfänger: mehrere Klassen greifen auf eine Instanz zu

Status
Nicht offen für weitere Antworten.
H

hera

Gast
Hallo liebe Leute!

Bin neu in Java und OO-Programmierung.

Habe vor eine Instanz einer Klasse zu erzeugen und dann in verschiedenen Klassen auf genau diese eine Instanz zuzugreifen, d.h. seine Methoden zu starten, die dann z.B. die eigenen Klassenvariablen verändern.

Weiss nicht wirklich wie sowas zu organisieren ist.
Wie und in welcher Klasse muss denn diese Instanz erzeugt werden?
Wenn ich eine Instanz erzeuge kann ich doch nur innerhalb des Blockes in der sie erzeugt wurde auf sie zugreifen, oder?

Versuche mich gerade an einem kleinen BeispielProg um zu verdeutlichen was ich meine, aber vielleicht kann mir ja auch schon jetzt jemand auf die Sprünge helfen.
 

Dandro

Mitglied
Du könntest das verschieden angehen.
Übergib eine erzeugte Instanz jeweils im Konstruktor der Klassen, oder ruf entsprechende Setter (Methoden die du selber schreibst) auf, die die Instanz als Parameter annehmen. Ansonsten würde mir noch das Singleton Designpattern einfallen.
 
S

SlaterB

Gast
a)
das Objekt X wird irgendwo recht nahe am Anfang erzeugt, z.B. in der main,
und an alle es benötigende andere Objekte als Parameter in einer Operation oder im Konstruktor mitgegeben,
die anderen Objekte merken sich X in Exemplarvariablen, falls gewünscht


b)
das Objekt wird irgendwo in einer statischen Variable abgelegt,
dann kann man mit Klassenname.variablenname von überall darauf zugreifen (Klasse + Variable public machen)

in kleinen Programmen selten verkehrt, aber Gefahr von Unorganisation
 
H

hera

Gast
hallo nochmal.
bin endlich dazu gekommen es auszuprobieren.

ich instanziiere nun in der main ein objekt und gebe es dem konstruktor jedes weiteren objektes mit.
und in den so erzeugten objekten werden wiederum den aufgerufenen konstruktoren das ursprünglich im main erzeugte objekt mitgegeben.

scheint zu funktionieren.

danke für die hilfe!
 
V

voidee

Gast
Deine Lösung mag funktionieren ist aber nicht ganz ok. Siehe mal hier:

Code:
class Singleton {
  
  private static Singleton ivSingleton = null;


  public static final Singleton getInstance() {
    if (ivSingleton == null) {
      ivSingleton = new Singleton();
    }
    return ivSingleton;
  }

  private Singleton() {
  }

  // ...hier weitere public usw. Funktionen der Singleton-Klasse

} // -- eoclass Singleton
Der "Trick" bei der Sache ist, dass man über eine static-Methode auf einen private Konstruktor zugreift.

Das ganze ist im übrigen keine Problem von OO sondern nennt sich "Design Pattern".[/code]
 

tfa

Top Contributor
Grmpf! Bitte nicht schon wieder Singletons! Ein Singleton nimmt man nur, wenn sicherstellen werden soll, dass
es absolut nur ein Objekt der Klasse geben darf. Wenn man es als "globale Variable" missbraucht, um Objekte
in seiner Anwendung herum zu reichen, wird das Design-Pattern schnell zum Anti-Pattern.
Siehe Thread: http://www.java-forum.org/de/viewtopic.php?t=69258&start=0
 
V

voidee

Gast
@tfa:
mein Beispielcode zeigt genau das!

Deine Erwiderung finde ich daher unpassend.
 

HLX

Top Contributor
voidee hat gesagt.:
@tfa:
mein Beispielcode zeigt genau das!
Wo denn? ???:L

Hera hat einen der o.g. Vorschläge angenommen und sich gegen das Singleton-Pattern entschieden.

Der eigentliche "Trick" den du beim Singleton meinst ist übrigens nicht der Zugriff auf den private Konstruktor, sondern die Definition von Konstruktoren die ausschließlich private sind und davon mindestens einen, so dass eine Instanzerzeugung von außen über den Default-Konstruktor nicht möglich ist.
 

tfa

Top Contributor
voidee hat gesagt.:
mein Beispielcode zeigt genau das!
Eben das ist das Problem. Du empfiehlst ein Singleton ohne zu wissen, ob es hier überhaupt
angebracht ist. Der Threadstarter wollte nur ein Zugriff auf ein Objekt in verschiedenen anderen
Objekten - da kann man nicht auf Singleton schließen.
 
M

maki

Gast
voidee hat gesagt.:
Deine Lösung mag funktionieren ist aber nicht ganz ok. Siehe mal hier:

Code:
class Singleton {
  
  private static Singleton ivSingleton = null;


  public static final Singleton getInstance() {
    if (ivSingleton == null) {
      ivSingleton = new Singleton();
    }
    return ivSingleton;
  }

  private Singleton() {
  }

  // ...hier weitere public usw. Funktionen der Singleton-Klasse

} // -- eoclass Singleton
Der "Trick" bei der Sache ist, dass man über eine static-Methode auf einen private Konstruktor zugreift.

Das ganze ist im übrigen keine Problem von OO sondern nennt sich "Design Pattern".[/code]
Abgesehen davon dass es sich um ein Singleton handelt(würg), ist es nicht mal threadsicher....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
T Übungsbuch für Anfänger Java Basics - Anfänger-Themen 3
H Threads Anfänger Java Basics - Anfänger-Themen 17
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
J Anfänger, Fehler; "Der Hund liegt begraben" Java Basics - Anfänger-Themen 3
K Buchstabenzähler Java (Anfänger) Java Basics - Anfänger-Themen 35
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
_Zabuza_ Erste Schritte Wie am effektivsten Java lernen als Anfänger? Java Basics - Anfänger-Themen 12
T Roulette für Anfänger Java Basics - Anfänger-Themen 7
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
K Java Anfänger Java Basics - Anfänger-Themen 5
F Hilfe für einen Anfänger! Java Basics - Anfänger-Themen 4
S Ein Java Anfänger braucht Hilfe Java Basics - Anfänger-Themen 5
P Übungsaufgaben für Anfänger? Java Basics - Anfänger-Themen 2
Z Unklarheit bei Übungsaufgabe [Anfänger] Java Basics - Anfänger-Themen 22
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
CT9288 Mini Anfänger-Problem mit loops, statements und ; Java Basics - Anfänger-Themen 4
F Hilfe, bin Anfänger! Java Basics - Anfänger-Themen 4
R Erste Schritte Materialien für Java-Anfänger Java Basics - Anfänger-Themen 7
Koookie Kleines Frage - Antwort Programm (Anfänger) Java Basics - Anfänger-Themen 5
F Studium aufgabe ...Anfänger sucht hilfe :D Java Basics - Anfänger-Themen 24
F Anfänger braucht Hilfe :) Java Basics - Anfänger-Themen 3
F Abrechnungsprogramm erstellen Student (Anfänger) Java Basics - Anfänger-Themen 2
D Anfänger braucht Hilfe Java Basics - Anfänger-Themen 2
J Musikplayer zu schwer für Anfänger? Java Basics - Anfänger-Themen 3
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
V Erste Schritte Anfänger: Ausführen eines Java-Programms Java Basics - Anfänger-Themen 5
Textsurfer Methoden Anfänger * Java Basics - Anfänger-Themen 5
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
C verwirrter Anfänger Java Basics - Anfänger-Themen 6
L Verzinsungsprogramm (Java-Anfänger) Java Basics - Anfänger-Themen 3
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
I if/else Statements Java Anfänger Java Basics - Anfänger-Themen 14
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
H Schleifen (anfänger) Java Basics - Anfänger-Themen 13
H Methoden Bluej Anfänger Java Basics - Anfänger-Themen 13
M Erste Schritte Einfache Aufzugssteuerung programmieren - Anfänger Java Basics - Anfänger-Themen 2
D Anfänger-Problem mit dem HalloWelt-Programm Java Basics - Anfänger-Themen 5
S Compiler-Fehler Anfänger sucht Hilfe. Fehler beim Compilieren Java Basics - Anfänger-Themen 6
V Erste Schritte Java-Anfänger braucht Hilfe bei Arrays Java Basics - Anfänger-Themen 19
V Array mit Zufallszahlen - Anfänger - Hilfe Java Basics - Anfänger-Themen 12
J Anfänger hat Problem mit seinen Beet Java Basics - Anfänger-Themen 12
D Compiler-Fehler Anfänger Fehlermeldung Java Basics - Anfänger-Themen 3
das_leon if als Auswahl (Anfänger) Java Basics - Anfänger-Themen 1
N Anfänger Problem Java Basics - Anfänger-Themen 4
GoodGuy [Anfänger] Kann mal wer drüber gucken? Java Basics - Anfänger-Themen 3
R Erste Schritte Anfänger Probleme bei AnimationDrawable Java Basics - Anfänger-Themen 0
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taxiwarteschlange - Anfänger Java Basics - Anfänger-Themen 2
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
I Java, Application, Eclipse (Anfänger) Java Basics - Anfänger-Themen 1
M Java Anfänger - Video Tutorial Reihe (DEUTSCH) Java Basics - Anfänger-Themen 11
C Anfänger: Array + Klasse Java Basics - Anfänger-Themen 5
S OOP Uhrenanzeige programmieren, Achtung Anfänger! Java Basics - Anfänger-Themen 9
B Compiler-Fehler Ein Java-Eclipse-Anfänger geht auf Reisen... Java Basics - Anfänger-Themen 10
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
I totaler Anfänger braucht Hilfe Java Basics - Anfänger-Themen 8
I Erste Schritte Bücher für Jungedliche[Anfänger] Java Basics - Anfänger-Themen 20
T Hallo anfänger braucht Hilfe :D Java Basics - Anfänger-Themen 7
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
D error: Class names, >>>HILFE, anfänger<<< Java Basics - Anfänger-Themen 4
J Hilfe für Anfänger Java Basics - Anfänger-Themen 8
E OOP Methode an andere Methode übergeben / OOP Anfänger Java Basics - Anfänger-Themen 4
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
H MergeSort (für Anfänger ) Java Basics - Anfänger-Themen 9
X Projekt Java Anfänger Java Basics - Anfänger-Themen 28
C Fehlersuche Adressbuch *Anfänger* Java Basics - Anfänger-Themen 5
C Anfänger braucht Hilfe bei Schularbeit Java Basics - Anfänger-Themen 3
J Erste Schritte Hilfe bei absolutem Anfänger-Projekt Java Basics - Anfänger-Themen 4
F Anfänger braucht Hilfe Java Basics - Anfänger-Themen 24
A Erste Schritte Übungen für Anfänger Java Basics - Anfänger-Themen 31
M Sieb des Eratosthenes für Anfänger Java Basics - Anfänger-Themen 10
M Tipps für einen Java-Anfänger Java Basics - Anfänger-Themen 5
S Anfänger Aufgaben Java Basics - Anfänger-Themen 6
G Anfänger-Errors und Fragen Java Basics - Anfänger-Themen 22
S Java für Anfänger: Probleme mit read() Java Basics - Anfänger-Themen 20
P [Anfänger] DiceGame Aufagbe Java Basics - Anfänger-Themen 23
C Input/Output Anfänger Array-Verständnis Frage Java Basics - Anfänger-Themen 7
W Erste Schritte OOP-Lektüre für Anfänger/Umsteiger von Clipper auf Java Java Basics - Anfänger-Themen 6
J Welches Java-Videotutorial für Anfänger empfehlenswert? Java Basics - Anfänger-Themen 7
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 3
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 2
P Java anfänger tutorial gesucht Java Basics - Anfänger-Themen 12
P Viereck mit Sterne - Anfänger bittet um Kritik und Anregung Java Basics - Anfänger-Themen 11
B Java für Anfänger Java Basics - Anfänger-Themen 7
T Bin Anfänger ... das Thema auch ? Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben