Klassen this-Referenz und Klassen/Methodenaufruf Syntax

Kel

Aktives Mitglied
Folgender Code
Java:
public class KomplexeZahl {

	private float real;
	private float imag;

	public KomplexeZahl (float inReal, float inImag) {
			this.real = inReal;
			this.imag = inImag;
	}

	public float getReal(){
		return real;
	}

	public float getImag(){
		return imag;
	}

	public KomplexeZahl addieren(KomplexeZahl uebergebeneKomplexeZahl) {

		KomplexeZahl ergebnis;
		ergebnis = new KomplexeZahl(this.real + uebergebeneKomplexeZahl.getReal(), (this.imag + uebergebeneKomplexeZahl.getImag()));

		return ergebnis;
	}

	public static void main(String[] args) {
		KomplexeZahl eigeneZahl = new KomplexeZahl(3.0f, 2.0f);
		KomplexeZahl uebergabe = new KomplexeZahl(5.0f, 5.0f);

		System.out.println("Realteil des Ergebnisses: "+eigeneZahl.getReal()+" + "+uebergabe.getReal()+" = "+eigeneZahl.addieren(uebergabe).getReal()+" Imaginaerteil des Ergebnisses: "+eigeneZahl.getImag()+" + "+uebergabe.getImag()+" = "+eigeneZahl.addieren(uebergabe).getImag());

	}
}
Teil 3
Erstellen einer Klasse für eine komplexe Zahl mit Gleitkomma-Instanzvariablen für real und Imaginärteil.
Erstellen eines Standardkonstruktors.
Erstellen Von Gettern für Real und Imaginärteil
Erstellen einer Methode zum addieren der eigenen Zahl mit übergebenen komplexen Zahl.


Meine Verständnisprobleme beziehen sich allgemein auf die this-Referenz, welche ich auch nach etwas Lektüre, meinem Skript und ein bischen Google nicht so ganz verstehe :rtfm:.
Das zweite, was mich viel mehr verwirrt ist das hier:
1.
Code:
public KomplexeZahl addieren();
2.
Code:
public KomplexeZahl addieren(KomplexeZahl uebergebeneKomplexeZahl);
3.
Code:
KomplexeZahl ergebnis;

Zu 1: Wieso steht da "KomplexeZahl" und danach der Methodenname? Was ist das für eine Methode?
Zu 2: Wieso steht als Parameter "KomplexeZahl" und dann "uebergebeneKomplexeZahl"? Muss als Parameter nicht immer die Angabe mit "Datentyp Variablenname" stehen?#
Zu 3: Hier das gleiche, was sucht das "KomplexeZahl" vor der Variablen? (hier könnte ich noch mit der Erklärung leben, dass das einfach ein Hilfsdatentyp ist weil er nicht wusste in was sowas gespeichert wird, das passt aber irgendwie nicht zu Problem 1+2 :noe:).

Ich hab das Ding durch Eclipse gejagt und es wurde anstandslos compiliert und auch das richtige ausgegeben.
Den Code hab ich von einem Mitstudenten, der auf eine Übungsaufgabe geantwortet hat, er ist aber erstmal nicht zu erreichen und ich würde gerne verstehen, was er da gebastelt hat, wenn ichs nicht verstehe heisst das nämlich, ich bin nicht im aktuellen Stoff drin und das wär nicht so toll.
 

jgh

Top Contributor
Code:
public KomplexeZahl addieren();
Wieso steht da "KomplexeZahl" und danach der Methodenname? Was ist das für eine Methode?

mal abgesehen, dass ich diesen Teil in deinen geposteten Code nicht gefunden habe...ist das eine Methode mit dem Namen [c]addieren()[/c], die als Rückgabetyp eine
Code:
KomplexeZahl
returned.
Eine
Code:
KomplexeZahl
hast du doch selbst als Typ definiert, die u.a aus einem
Code:
float real
und einem
Code:
float img
, also dem realen Teil und dem imaginären Teil besteht.

Code:
public KomplexeZahl addieren(KomplexeZahl uebergebeneKomplexeZahl);
Wieso steht als Parameter "KomplexeZahl" und dann "uebergebeneKomplexeZahl"? Muss als Parameter nicht immer die Angabe mit "Datentyp Variablenname" stehen?[/c]
doch und genau das steht hier, du übergibst halt der Methode [c] addieren[/c]ein Objekt vom Typ [c]KomplexeZahl[/c] Auf dieses Objekt kann innerhalb dieser Methode mit dem Namen
Code:
uebergebeneKomplexeZahl
zugegriffen werden.


Code:
KomplexeZahl ergebnis;
Hier das gleiche, was sucht das "KomplexeZahl" vor der Variablen? (hier könnte ich noch mit der Erklärung leben, dass das einfach ein Hilfsdatentyp ist weil er nicht wusste in was sowas gespeichert wird, das passt aber irgendwie nicht zu Problem 1+2 ).
Dein Datentyp [c]KomplexeZahl[/c] hast du doch mit dieser Klasse [c]public class KomplexeZahl[/c] definiert. Das ist jetzt ein Datentyp wie [c]String[/c], oder was auch immer.

Meine Verständnisprobleme beziehen sich allgemein auf die this-Referenz, welche ich auch nach etwas Lektüre, meinem Skript und ein bischen Google nicht so ganz verstehe

Java:
  public KomplexeZahl (float inReal, float inImag) {
            this.real = inReal;// this bezieht sich auf diese Klasse, real auf die Variable => also der 
                                  // übergebene Parameter [c]inReal[/c] wird der Variable [c]real[/c] dieser Klasse zugewiesen.
            this.imag = inImag;
    }
hier bräuchte man das [c]this[/c] eigentlich nicht. Sollten aber bspw. die übergebenen Parameter den gleichen Namen wie die Klassen-Variablen haben, würde der gleiche Konstruktor ohne das [c]this[/c]
so aussehen, was natürlich irgendwie keinen effekt hätte:

Java:
public KomplexeZahl (float real, float imag) {
          real = real;
            imag =imag;
    }
und hier geht es nicht ohne den [c]this[/c] operator. Du hast 2 Variablen mit demselben Namen. Aber um die übergebenen Zahlen den Klassenvariablen zuzuweisen brauchst du das
Code:
this
 

Miness

Mitglied
Vielleicht noch allgemein zum "this": Dieses Keyword bezieht sich immer auf das aktuelle Objekt. Es gibt zwei mir bekannte Möglichkeiten, um es einzusetzen:

  • Wie von jgh bereits genannt: Um auf Instanzvariablen (oder auch Klassenvariablen, aber etwas unschön) zugreifen zu können
  • Um andere Konstruktoren der selben Klasse aufrufen zu können, beispielsweise um im No-Arg-Konstruktor auf einen anderen Konstruktor zu verweisen. Also so:

    Java:
    public KomplexeZahl () {
        this(1.5f, 1.7f);
    }
    
    public KomplexeZahl (float inReal, float inImag) {
        this.real = inReal;
        this.imag = inImag;
    }
 

Landei

Top Contributor
Ich würde die addieren-Methode so schrieiben:

Java:
   public KomplexeZahl addieren(KomplexeZahl thatl) {
        return new KomplexeZahl(this.real + that.real, this.imag + that.imag);
   }

Wie du siehst ist der Zugriff auf private Member nicht auf das Objekt, sondern nur auf die Klasse beschränkt, du kannst also im aktuellen Objekt ("this") auch auf die privaten Variablen eines anderen Objekts der gleichen Klasse ("that") zugreifen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
Hzrfa Objekte, Referenz Java Basics - Anfänger-Themen 5
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
C Kopie oder Referenz ? Java Basics - Anfänger-Themen 5
A Binärbaum rekursiv durchsuchen und Referenz zurückgeben Java Basics - Anfänger-Themen 4
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
Y Pointer / Referenz - Theorie Java Basics - Anfänger-Themen 3
H Referenz Objekt aufrufen Java Basics - Anfänger-Themen 12
D Uebergabe per Referenz Java Basics - Anfänger-Themen 2
O Referenz - toString Java Basics - Anfänger-Themen 9
S This-Referenz Java Basics - Anfänger-Themen 6
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
I Referenz auf Klasse als Rückgabewert Java Basics - Anfänger-Themen 7
P Datentypen LinkedList: Kopie behält Referenz? Java Basics - Anfänger-Themen 3
J Referenz und Instanzierung Java Basics - Anfänger-Themen 25
I Erste Schritte Referenz zum Knoten davor, in einer Liste Java Basics - Anfänger-Themen 4
M Referenz geht bei Zwischenspeichern verloren (ArrayList) Java Basics - Anfänger-Themen 4
8 Referenz (Pointer, Zeiger) in Java Java Basics - Anfänger-Themen 9
O This-Referenz als Returnwert einer Methode? Java Basics - Anfänger-Themen 13
O This Referenz Java Basics - Anfänger-Themen 3
A top referenz bei queues Java Basics - Anfänger-Themen 1
J Rückgabe als Wert, keine Referenz Java Basics - Anfänger-Themen 3
Q Parameterübergabe - Objekt - Referenz Java Basics - Anfänger-Themen 5
V Frage zu Polymorphismus: Objekt der Subklasse in Referenz der Oberklasse Java Basics - Anfänger-Themen 4
T Aufgerufene Methode Inhalt der übergebenen Referenz Java Basics - Anfänger-Themen 5
B Referenz in Java Java Basics - Anfänger-Themen 5
C Referenz auf ein Objekt kopieren! Java Basics - Anfänger-Themen 2
J Methoden Referenz und Speicherplatz für Objekte reservieren Java Basics - Anfänger-Themen 2
M Wie komm ich an die Referenz eines Oberflächenelements Java Basics - Anfänger-Themen 2
A Klassenvariablen Referenz auf ein Objekt Java Basics - Anfänger-Themen 18
M Referenz Frage Java Basics - Anfänger-Themen 12
K OOP Probleme mit Objekt-Referenz in Methode Java Basics - Anfänger-Themen 6
W Die leidige Referenz-Frage Java Basics - Anfänger-Themen 9
B Arraycopy kopiert nur die Referenz?! Java Basics - Anfänger-Themen 3
S Speicheradresse auf die eine Referenz zeigt ausgeben Java Basics - Anfänger-Themen 12
E Compiler-Fehler kann Objekt-Referenz nicht erstellen Java Basics - Anfänger-Themen 3
B Referenz zu anderen Frame Java Basics - Anfänger-Themen 10
Blackskyliner Referenz ähnlicher Zugriff, aber wie? Java Basics - Anfänger-Themen 4
C Referenz einer bereits instanziierten Klasse während des Programmablaufs Java Basics - Anfänger-Themen 16
H Objekt holen per Referenz als String. Java Basics - Anfänger-Themen 4
T Referenz einer Variable übergeben Java Basics - Anfänger-Themen 3
S Datentypen Objekt Integer Referenz Java Basics - Anfänger-Themen 5
B Referenz auf Referenz Java Basics - Anfänger-Themen 3
Luk10 Problem mit Singleton bzw statischer Referenz! Java Basics - Anfänger-Themen 16
H ArrayList Zugriffe per Referenz verkürzen? Java Basics - Anfänger-Themen 9
B Static Referenz auf Non-static Feld Java Basics - Anfänger-Themen 6
Luk10 Sinn von Instanzierung ohne Referenz Java Basics - Anfänger-Themen 7
C0FFEE Referenz auf Methode übergeben Java Basics - Anfänger-Themen 2
aze NullpointerException :Null Referenz anzeigen lassen Java Basics - Anfänger-Themen 2
D Fehlen einer Referenz auf Objekt Java Basics - Anfänger-Themen 14
N this.referenz erläuterung Java Basics - Anfänger-Themen 2
K Attribut als Referenz auf Objekt Java Basics - Anfänger-Themen 8
K 3 Threads bearbeiten 1 Referenz: Ich versteh's nicht... Java Basics - Anfänger-Themen 2
P OOP-Theorie-Frage: Referenz auf Objekt Java Basics - Anfänger-Themen 27
D Referenz auf Objekt Java Basics - Anfänger-Themen 5
P Methode BigInteger-Array übergeben als Referenz Java Basics - Anfänger-Themen 6
U null-referenz Java Basics - Anfänger-Themen 26
deetee Problem mit Referenz auf Map Java Basics - Anfänger-Themen 5
G Interface referenz probleme Java Basics - Anfänger-Themen 10
V Return - JA/NEIN - Parameterübergabe Array (Referenz) Java Basics - Anfänger-Themen 7
D enum und Referenz der umgebenden Klasse Java Basics - Anfänger-Themen 2
C Referenz Java Basics - Anfänger-Themen 11
A ClassNotFoundException: Referenz nicht aktualisiert Java Basics - Anfänger-Themen 2
P Textarea aktualisieren, Referenz fehlt Java Basics - Anfänger-Themen 4
T Die this Referenz Java Basics - Anfänger-Themen 21
C Größe einer Referenz ? Java Basics - Anfänger-Themen 16
D Array reverse Problem, da Referenz nicht auf tmpArray zeigt Java Basics - Anfänger-Themen 4
G primitive Datentypen als Referenz an eine Methode übergeben Java Basics - Anfänger-Themen 2
G Wie Referenz auf Objekt übergebn Java Basics - Anfänger-Themen 8
P Objekte als Attribut: Referenz oder Kopie? Java Basics - Anfänger-Themen 3
G Parameterübergabe als Referenz bzw. als Kopie Java Basics - Anfänger-Themen 4
S Prüfen, ob null Referenz? Java Basics - Anfänger-Themen 2
G Referenz-Problem Java Basics - Anfänger-Themen 3
J Referenz problem Java Basics - Anfänger-Themen 12
D tiefergehende Java-Referenz Java Basics - Anfänger-Themen 3
M Referenz auf Membervariable Java Basics - Anfänger-Themen 5
G Objektübergabe als Referenz bei RMI Java Basics - Anfänger-Themen 2
J referenz auf noch nicht erzeugte objekte? Java Basics - Anfänger-Themen 2
G Rückgabe einer Kopie bzw. Referenz Java Basics - Anfänger-Themen 22
M Parameter als Referenz übergeben Java Basics - Anfänger-Themen 5
F Referenz Pointer oder doch nochmal neu suchen ? Java Basics - Anfänger-Themen 2
D Unterschied zwischen Referenz auf Objekt/Instanz von Objekt Java Basics - Anfänger-Themen 9
K Referenz auf Funktion Java Basics - Anfänger-Themen 6
J Referenz auf ein Objekt Java Basics - Anfänger-Themen 2
javasdann Referenz als String ausgeben. Java Basics - Anfänger-Themen 10
B Was ist eine Referenz? Java Basics - Anfänger-Themen 6
Z Zugriff auf Attribute nach Zuweisung einer Referenz Java Basics - Anfänger-Themen 8
L Referenz vs. Kopie Java Basics - Anfänger-Themen 2
G Zeiger/Referenz auf int- Variable Java Basics - Anfänger-Themen 5
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
C Array von Klassen Java Basics - Anfänger-Themen 2
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben