OOP Begrifflichkeiten

fanta5

Aktives Mitglied
Hallo Forum,

um qualifiziert fragen zu können, fehlen mir teilweise ein paar Begrifflichkeiten.

Bsp.1

[Java]
interface Test {
public String getTesterei();
}
class Blablub implements Test {
public String getTesterei() {
return "Tri Tra Trullala";
}
}
Test test; // Frage 1
test = new Blablub(); // Frage 2
[/code]

1. Wie bezeichnet man das erste "Test", wie das 2. test?
2. Wird hier eine Instanz der Klasse Blablub initiert und der Variable (oder dem Objekt) test zugewiesen? Oder an tset gebunden? Oder wie nennt man das genau?

f5
 
Zuletzt bearbeitet von einem Moderator:

fanta5

Aktives Mitglied
1. deklarierte Variable
2. deklariert und initialisierte Variable.

Hm... verstehe ich nicht.
Ich fomuliere mal neu, ok?


1. Test: ??? Das ist doch quasi das Analog zu Int test. Also sieht mir das "Test" so aus wie ein Datentyp....
2. test: ??? Sieht mir aus wie eine Variable
3. new Blablub(); Nennt man das " eine Instanz der Klasse Blablub erstellen"?
4. Wie diese Instanz dem Objekt "test" zugewiesen?

F5
 

franky27

Bekanntes Mitglied
Test ist deine Klasse also der "Datentyp". test die Variable.
Mit
Java:
Test test;
deklarierst du eine variable. Du erstellst also noch kein Objekt der Klasse, aber reservierst bereits Speicher dafür.
Mit
Java:
new Blablub();
erzeugst du ein neues Objekt der Klasse auf dem Heap, also ja - eine Instanz.
Java:
test = new Blablub();
Damit erzeugst du eine Referenz auf das Objekt auf dem Heap. Die Variable test hältalso sozusagen
den Speicherplatz wo genau das Objekt auf dem Heap liegt und damit kannst du dann auf das Objekt zugreifen.
 

franky27

Bekanntes Mitglied
Ich habe gar nicht drauf geachtet das Test ein Interface ist. Insofern ist Test natürlich keine Klasse und du musst sie auch nicht extra mit
Java:
Test test;
deklarieren, sondern sie nur in der Klasse Blablub implementieren so wie du es gemacht hast.
Also muss deine initialisierung dann so aussehen:
Java:
Blablub test = new Blablub();
 

Neue Themen


Oben