Verständnisfrage zu Objekten u. Übergabeparameter

rh3ns3n

Mitglied
Hey Leute!
Ich schreibe gerade an einem kleinen Projekt.
Das was mein Programm tun soll macht es, aber tun sich immer mal ein paar Fragen auf.
Vllt ist jemand so freundlich und hilft mir eine Antwort zu finden.
Zur Frage:
Ich habe mir eine GUI gebastelt und beziehe über mehrere TextFields und ComboBoxenWerte .
Als dann alles gepasst hat, wollte ich diese Werte in eine Klasse auslagern, um eben sämtliche Daten, die ich brauche in einem Objekt zu haben.

Da ich mir noch ein wenig unsicher bin, habe ich verschiedene Mechanismen ausprobiert, um an mein Ziel zu gelangen. Dabei kam mir folgende Frage auf, die ich gerne für mein näheres Verständnis beantworten können würde.

Folgende 2 Beispiele bringen mich nämlicht exakt an den gleichen Punkt:
Java:
//die funktion dient nur dazu die werte zu überprüfen
//und ist in Class XY


public void printObject(){
        
         System.out.println("print: " + this.time);
         System.out.println("print  " + this.day);
         System.out.println("print  " + this.room);
     }

//Jetzt rufe ich von Class AB die Funktion auf
//mit einer Instanz app1 aus aus class XY

Appointment app1 = new Appointment();
app1.printObject();

und

Java:
//gleiches Spiel
//Class YX

public void printObject(Appointment app){
        
         System.out.println("print: " + app.time);
         System.out.println("print  " + app.day);
         System.out.println("print  " + app.room);
     }

//Und Class AB macht das
Appointment app1 = new Appointment();
app1.printObject(app1);

Bei der ersten Variante verwende ich keinen Übergabeparameter und bei der zweiten übergebe ich das Objekt. Ergebnisse sind in diesem Fall gleich.

Liegt es daran, dass "this" sich quasi das Objekt, in diesem Fall app1, besorgt und sich so verhält als wie in Variante zwei mit dem Objekt als Übergabeparameter oder lieg ich völlig daneben ? :D

Oder,was mir noch einfällt, liegt es daran, dass der Aufruf der Funktion so oder so über die Instanz app1 geschieht (app1.printObject()) und daher die Werte richtig zugewiesen werden?!

Grüße!
 

Thallius

Top Contributor
It doch relativ einfach. app1 ist die Referenz zu deinem Object der Klasse Appointment. Alle Methoden innerhalb dieser Klasse kennen sich natürlich selber und natürlich auch ihre Instanzvariablen. Du könntest im ersten Beispeil das this. auch weglassen und es würde immer noch funktionieren.
Der zweite Fall kann eigentlich nur funktionieren, wenn due deine Instanzvariablen time, day und room als prublic deklariert hast. Denn nun versucht die Methode auf irgendein Object der Klasse Annotation zuzugreifen und dort diese Variablen auszulesen. Mache die Variablen mal private (wie es sich eigentlich auch gehört) dann bekommst du einen Fehler.
Die zweite Lösung ist also quark und sollte so nicht benutzt werden. Funktionieren tut sie halt nur deshalb weil man von aussen auf die variablen zugreifen darf und in deinem Fall die Referenz die du an die Methode übergibst genau die gleiche ist wie this.

Gruß

Claus
 

mrBrown

Super-Moderator
Mitarbeiter
Der zweite Fall kann eigentlich nur funktionieren, wenn due deine Instanzvariablen time, day und room als prublic deklariert hast. Denn nun versucht die Methode auf irgendein Object der Klasse Annotation zuzugreifen und dort diese Variablen auszulesen. Mache die Variablen mal private (wie es sich eigentlich auch gehört) dann bekommst du einen Fehler.
Die zweite Lösung ist also quark und sollte so nicht benutzt werden. Funktionieren tut sie halt nur deshalb weil man von aussen auf die variablen zugreifen darf und in deinem Fall die Referenz die du an die Methode übergibst genau die gleiche ist wie this.
Nein, das funktioniert genauso, wenn die private sind, die Methode ist ja immer noch in der gleichen Klasse, von außen wird da auf nichts zugegriffen
 

JStein52

Top Contributor
Nein, das funktioniert genauso, wenn die private sind
Die Klassenangaben in seinem Codeschnipsel sind etwas irreführend und können so eigentlich nicht stimmen. Deshalb könnte der Eindruck entstehen das zweite Beispiel könnte nicht funktionieren. Aber entweder printObject(...) ist eine Methode der Klasse XY, dann kann schon der Aufruf so gar nicht funktionieren. Oder sie ist eine Methode der Klasse Appointment und dann funktioniert auch das zweite Beispiel (auch wenn die Variablen private sind).
 

mrBrown

Super-Moderator
Mitarbeiter
Die Klassenangaben in seinem Codeschnipsel sind etwas irreführend und können so eigentlich nicht stimmen. Deshalb könnte der Eindruck entstehen das zweite Beispiel könnte nicht funktionieren. Aber entweder printObject(...) ist eine Methode der Klasse XY, dann kann schon der Aufruf so gar nicht funktionieren. Oder sie ist eine Methode der Klasse Appointment und dann funktioniert auch das zweite Beispiel.
Code ist halt immer richtiger als die Kommentare, die sind hier Unsinn ;)
 

rh3ns3n

Mitglied
Danke Leute :)
Ja, das nächste mal poste ich besseren Code.
Die Klassennamen waren verwirrend.

Ich hab das Problem auch mit euren Anregungen gelöst.
Der Fehler war, dass ich die Variablen nicht private gesetzt habe und das deshalb funktoiniert hat.
Habe nun einfach die Variablen auf private gesetzt und set/get Methoden verwendet.
Jetzt ist es glaube so wie es sein soll.
Vielen Dank für eure flotten Antworten.
 

mrBrown

Super-Moderator
Mitarbeiter
Ich hab das Problem auch mit euren Anregungen gelöst.
Der Fehler war, dass ich die Variablen nicht private gesetzt habe und das deshalb funktoiniert hat.
Habe nun einfach die Variablen auf private gesetzt und set/get Methoden verwendet.
Nein, der Scope war kein Problem, selbst mit private funktioniert dein obiges Programm ohne Problem ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
P Verständnisfrage zu Instanzen/Objekten Java Basics - Anfänger-Themen 9
F Verständnisfrage zu Objekten Java Basics - Anfänger-Themen 7
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
A Verständnisfrage Java Basics - Anfänger-Themen 12
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
P Verständnisfrage: PageFactory.initElements Java Basics - Anfänger-Themen 2
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
Vivien Kurze Verständnisfrage zu Java Point aus java.awt.* Java Basics - Anfänger-Themen 5
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
J Verständnisfrage zu throws neben Funktionen Java Basics - Anfänger-Themen 2
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
P Verständnisfrage zum Mapping Java Basics - Anfänger-Themen 3
M Java Version Verständnisfrage Java Basics - Anfänger-Themen 16
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Verständnisfrage zur Konsolenausgabe Java Basics - Anfänger-Themen 2
M Verständnisfrage zu Generics Java Basics - Anfänger-Themen 7
D Verständnisfrage zur Modellierung einer HDD Java Basics - Anfänger-Themen 17
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
S Verständnisfrage lokale Ordnerpfade Java Basics - Anfänger-Themen 1
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
C Verständnisfrage zu Modulo Java Basics - Anfänger-Themen 6
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
L Verständnisfrage - Speicherabbild Java Basics - Anfänger-Themen 4
melly_ Verständnisfrage zu args Java Basics - Anfänger-Themen 3
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
K Verständnisfrage eines Abschnitts Java Basics - Anfänger-Themen 6
K Rekursion Verständnisfrage Java Basics - Anfänger-Themen 19
S Modell View Controller Verständnisfrage Java Basics - Anfänger-Themen 24
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
JavaTalksToMe Erste Schritte Println-Frage (Verständnisfrage) Java Basics - Anfänger-Themen 1
G Collections Verständnisfrage zur For-Each-Schleife Java Basics - Anfänger-Themen 7
b1ck Interface Verständnisfrage zum GUI mit "swing" Java Basics - Anfänger-Themen 1
kilopack15 Verständnisfrage zur Verwendung von notify() bei Threads Java Basics - Anfänger-Themen 2
G Verständnisfrage zu for-each Java Basics - Anfänger-Themen 4
DontFeedTheTroll Erste Schritte Verständnisfrage zu If-Anweisung Java Basics - Anfänger-Themen 7
K Rekursion-Verständnisfrage Java Basics - Anfänger-Themen 4
J Java Server Pages - Verständnisfrage Java Basics - Anfänger-Themen 2
Z Verständnisfrage Anfängerprogramm Java Basics - Anfänger-Themen 0
T Verständnisfrage Zuweisungs-/arithmet. Operatoren Java Basics - Anfänger-Themen 2
G Methoden Verständnisfrage zur Methoden Java Basics - Anfänger-Themen 7
LionAge Kapselung, Verständnisfrage zur Objekterzeugung Java Basics - Anfänger-Themen 4
Z Verständnisfrage zum Multithreading Java Basics - Anfänger-Themen 3
R OOP / Verständnisfrage zum Konstuktor (siehe code) Java Basics - Anfänger-Themen 7
gamebreiti Verständnisfrage zu contains() Java Basics - Anfänger-Themen 10
A Verständnisfrage - Koordinatenumrechnung Java Basics - Anfänger-Themen 9
J Erste Schritte Verständnisfrage im Bezug auf das (richtige) Programmieren Java Basics - Anfänger-Themen 5
M Verständnisfrage zu JUnit Tests und private Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage Array Java Basics - Anfänger-Themen 2
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
I Verständnisfrage zu BridgePattern, Verwedung von super() Java Basics - Anfänger-Themen 4
P Verständnisfrage Java Basics - Anfänger-Themen 3
D Input/Output Verständnisfrage Verzeichnis-/Dateiliste erstellen & Dateikonvertierung Java Basics - Anfänger-Themen 1
S Verständnisfrage zu Anweisungen und deren Wirkung Java Basics - Anfänger-Themen 7
H Verständnisfrage für oder Anweisung Java Basics - Anfänger-Themen 8
E Threads Verständnisfrage bzgl. Threads und Sleep Java Basics - Anfänger-Themen 2
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage zu Java-Ausgabe Java Basics - Anfänger-Themen 3
S Verständnisfrage Java Basics - Anfänger-Themen 2
N Verständnisfrage Code Java Basics - Anfänger-Themen 8
B Verständnisfrage Java Basics - Anfänger-Themen 2
H Interface Comparable Verständnisfrage Java Basics - Anfänger-Themen 6
B Verständnisfrage Codezeile Java Basics - Anfänger-Themen 7
B Verständnisfrage:Beispielprogramm BlueJ Java Basics - Anfänger-Themen 3
M Kurze Verständnisfrage zu einer Java Aufgabe Java Basics - Anfänger-Themen 12
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
R Verständnisfrage Referenzvariablen in array Java Basics - Anfänger-Themen 3
M Verständnisfrage: Objekt erzeugen u. zuweisen Java Basics - Anfänger-Themen 16
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
S Verständnisfrage: Exception Gebrauch Java Basics - Anfänger-Themen 2
R Verständnisfrage NPE Java Basics - Anfänger-Themen 5
M Verständnisfrage zur Zahlenumwandlung (Dezimal-->Dual) Java Basics - Anfänger-Themen 25
P Java Objekte - Verständnisfrage Java Basics - Anfänger-Themen 9
N Verständnisfrage zu folgendem Programm Java Basics - Anfänger-Themen 2
L Grundlegende Verständnisfrage Hasmap Referenzen Java Basics - Anfänger-Themen 4
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
VfL_Freak Verständnisfrage zur Klasse "TIMER" Java Basics - Anfänger-Themen 7
M Verständnisfrage im Umgang mit Map Java Basics - Anfänger-Themen 10
K Verständnisfrage zu int.length und String.length() Java Basics - Anfänger-Themen 4
G 2D Array gleichsetzen verständnisfrage Java Basics - Anfänger-Themen 2
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
N verständnisfrage java.util.Calendar Java Basics - Anfänger-Themen 4
G Datentypen bits, bytes, chars - Verständnisfrage Java Basics - Anfänger-Themen 5
E Verständnisfrage zu Shutdownhook Java Basics - Anfänger-Themen 5
D Verständnisfrage: Java und MySql Java Basics - Anfänger-Themen 3
F Rekursion Verständnisfrage Java Basics - Anfänger-Themen 6
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
Z Comparator Verständnisfrage Java Basics - Anfänger-Themen 5
D Verständnisfrage zu Funktionen Java Basics - Anfänger-Themen 6
H Verständnisfrage Persistenz Java Basics - Anfänger-Themen 10
neurox Verständnisfrage zu Threads Java Basics - Anfänger-Themen 4
E Verständnisfrage Syntax: frame.getContentPane().add(button) Java Basics - Anfänger-Themen 11
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben