Interface als Objekt

Status
Nicht offen für weitere Antworten.

disconnectus

Aktives Mitglied
Kann man von einem Interface ein Objekt erzeugen??

Java:
interface Eintrag {

  public boolean kleinerAls (Eintrag k);

}

Was macht diese Zeilen:
Code:
Eintrag[] element;
und
Code:
Eintrag hilf;

Sind die Objekten?

Kann ich hilf als Variable benutzen? Kann ich in diesem "Hilf objeckt" einen wert Speichern?

ist "Eintrag []" ein Array?
 
Zuletzt bearbeitet:

Illuvatar

Top Contributor
Kann man von einem Interface ein Objekt erzeugen??
Nein. Nur von konkreten Implementierungen eines Interfaces.
Was macht diese Zeilen:
Code:
Eintrag[] element;
und
Code:
Eintrag hilf;
Sind die Objeckten?
Das sind Deklarationen von Variablen. Diese Variablen können Objekte eines beliebigen Typs enthalten, der Eintrag implementiert.
Kann ich hilf als Variable benutzen? Kann ich in diesem "Hilf objeckt" einen wert Speichern?
Natürlich - sonst wärs ziemlich nutzlos ;)
ist "Eintrag []" ein Array?
Ja. Beziehungsweise in dem Fall die Deklaration einer Variable, die ein Array von Einträgen aufnimmt.
 

Schandro

Top Contributor
Eintrag[] ist ein Array, ja..

Du kannst von einem Interface keine Instanz erstellen. Du kannst aber eine Klasse machen die das Interface implementiert. Diese nennen wir jetzt mal EintragImpl.
Eine Instanz von EintragImpl ist ein Eintrag.
Es ist auch ein "Object" (weil jede Klasse von Object schlussendlich erbt)
Natürlich ist es auch ein "EintragImpl"

Das ganze nennt sich Polymorphie. EintragImpl stellt eine Art Erweiterung zu "Eintrag" bzw. "Object" dar. Deswegen kann man sagen:

Eintrag myEintrag = new EintragImpl();

Die referenz myEintrag zeigt auf ein "Eintrag". Ob das jetzt direkt ein "Eintrag" ist (was ja nicht geht weil man interfaces nicht instanzieren kann) oder ob es eine Erweiterung von "Eintrag" ist, ist egal.

Was ist der Vorteil davon? :
du kannst 10 verschiedene Implementationen von "Eintrag" machen und davon jeweils ein paar Instanzen machen. Obwohl es alles Instanzen von verschiedenen Klassen sind, kannst du sie trotzdem alle in folgende List stecken:
List <Eintrag> meineEinträge = new ArrayList <Eintrag> ();
weil jede der instanzen eben auch Einträge sind.

natürlich kannst du dann nur die Methoden, die in "Eintrag" definiert wurden, aufrufen. Ansosnten müsstest du sie wieder zu einen bestimmten höheren Typ casten
 

Schandro

Top Contributor
Du kannst niemals Werte in variablen speichern.
Variablen sind immer nur referenzen!

sachen wie:
Java:
double a = 23.6;
int b = -2;
boolean c = false;
Sind das auch. Sie zeigen halt nur auf unveränderliche sachen, eben auch die jeweilige Zahl/true/false/...

Ne Referenz wie
Eintrag myEintrag;
dagegen zeigt immer auf eine Instanz von Eintrag.
Du kannst z.b. schreiben:
Java:
Eintrag myEintrag = new EintragImpl();
myEintrag.setTitle("hallo");
System.out.println(myEintrag.getTitle());

Natürlich nur, wenn in Eintrag die Methoden setTitle und getTitle stehen...

Merke: In Referenzen aka Variablen stehen die Werte nicht direkt drin, sondern nur einen Pointer der beispielsweise irgendwo auf den Arbeitspeicher zeigt. Dort ist dann das richtige Object

€dit:
Wenn du also danach noch schreiben würdest
Java:
Eintrag myEintrag2 = myEintrag;
würdest du damit nicht den "Eintrag" clonen oder so. Du würdest lediglich eine weitere "Eintrag"-Referenz erschaffen, die auf dasselbe Object wie myEintrag zeigt.
 
Zuletzt bearbeitet:

andre111

Bekanntes Mitglied
Code:
"Eintrag hilf;"
welche typ ist hift? Double, int, char ??? Was für ein Wert kann ich speichern?
hilf ist nur er Bezeichner für eine Variable vom Typ Eintrag.
Das ist das selbe wie mit:
Code:
int i;
i ist der Bezeichner für eine Variable vom Typ int.
 

disconnectus

Aktives Mitglied
okey. hilf sie typ eintrag...

sind alle richtig??

Code:
hilf = 5; 
hilf= 5.3; 
hilf = " Hallo";

ich weiß nicht wie ich diese "hilf" benutzen kann.

Ich meine was ist typ eintrag?
 

SvenK

Aktives Mitglied
Code:
hilf = 5; 
hilf= 5.3; 
hilf = " Hallo";
Nichts davon ist richtig, da weder 5 noch 5.3 noch "Hallo" vom Typ Eintrag sind (sondern int, double, String)

Du brauchst eine Klasse die das Interface implementiert zBsp
Java:
public class EintragImpl implements Eintrag {
...
}

Und dann kannst du folgendes machen
Java:
Eintrag hilf = new EintragImpl()

Verstanden?
 

Ark

Top Contributor
Was machst du überhaupt schon mit Interfaces rum, wo du nicht einmal Datentypen erkennen, auseinanderhalten und zuordnen kannst?

Ark
 

disconnectus

Aktives Mitglied
Die habe ich gelesen und ich weiß wie man mit einem Objekt arbeitet.

Meine Frage ist anderes. Hier ist es wie ein Variable benutzt.

Java:
public class Liste {  
	
  private Eintrag[] element;  // speichert die Listenelemente

  private int anzahl;         // aktuelle Anzahl der enthaltenen Elemente

  public Liste (int maxAnzahl) {             
    // Konstruktor. Erzeugt leere Liste der Laenge maxAnzahl
    element = new Eintrag[maxAnzahl];     
    anzahl = 0;                              
  }

  public void aufnehmen (Eintrag k) {  
    // nimmt das Element k in das aufrufende Listen-Objekt auf
    element[anzahl] = k;
    anzahl = anzahl + 1;
  }
  
  public void sortiere () {
    // sortiert die Elemente des aufrufenden Listen-Objekts aufsteigend
    int m;
    Eintrag hilf;

    for (int i = 0; i < anzahl-1; i++) {
      m = i;
      for (int j = i+1; j < anzahl; j++)
        if (element[j].kleinerAls(element[m]))
          m = j;
      if (m != i) { // Vertauschen
        hilf       = element[i];
        element[i] = element[m];
        element[m] = hilf;
      } 
    } 
  }
  
  public String toString() {
    // liefert eine Kommaaufzählung der Elemente als String zurück
    String s = "(";
    for (int i = 0; i < anzahl-1; i++) {
      s = s + element[i] + ", ";
    }
    s = s + element[anzahl-1] + ")";
    return s;
  }
}

In Zeile 22 Es ist wie ein int benutzt.
In Zeile 3 Es ist wie ein Array deklariert.
 
Zuletzt bearbeitet:

Schandro

Top Contributor
in Zeile 22 ist es wie eine Referenz auf ein "Eintrag" benutzt
in Zeile 3 wird ein Array mit dem Typ "Eintrag" deklariert

Les die Kapitel vllt. nochmal durch
 

SvenK

Aktives Mitglied
Alles schön und gut und auch richtig. Nur was willst du hier übergeben?
Java:
public void aufnehmen (Eintrag k)

Spätestens da brauchst du eine konkrete Implementierung von Eintrag (siehe oben)
 

disconnectus

Aktives Mitglied
Danke sehr.... Das Buch habe ich heute gekauft.

Das ist Genau was ich gesucht habe. Es hat 300 aufgaben mit ihrer Lösungen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
D OOP Zugriff auf eine Klasse aus einem Interface-Objekt Java Basics - Anfänger-Themen 7
P Kann ich ein Objekt vom Typ Interface erzeugen? Java Basics - Anfänger-Themen 4
I No Jakarta Enterprise Beans found with interface ignorieren? Java Basics - Anfänger-Themen 2
I No EJB found with interface of type Java Basics - Anfänger-Themen 12
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
Say Abstrakt oder Interface Java Basics - Anfänger-Themen 3
Say public/default Interface Java Basics - Anfänger-Themen 9
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
I Browser integriert in Desktop Applikation - Webcam interface not found Java Basics - Anfänger-Themen 26
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
J Interface Comparable<T> Java Basics - Anfänger-Themen 10
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
D Interface Verständisfrage Java Basics - Anfänger-Themen 8
U Interface | constructor injection Java Basics - Anfänger-Themen 5
J Interface Interface korrekt implementieren Java Basics - Anfänger-Themen 5
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
T Interface Map und Map.Entry Java Basics - Anfänger-Themen 4
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
I JSON und Interface Java Basics - Anfänger-Themen 3
Kotelettklopfer Kleines Testprogramm mit Interface und einer Usereingabe Java Basics - Anfänger-Themen 16
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
L Interface & Comparable Java Basics - Anfänger-Themen 15
T Interface Java Basics - Anfänger-Themen 0
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
S Interface Equals und hashCode Java Basics - Anfänger-Themen 16
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
A Interface Kuddelmuddel Java Basics - Anfänger-Themen 4
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
S Interface Interface und seine Implementierung Java Basics - Anfänger-Themen 5
H abstract und interface Java Basics - Anfänger-Themen 4
F Interface Casting Java Basics - Anfänger-Themen 13
C Telefonliste mit interface implementieren Java Basics - Anfänger-Themen 30
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
H Interface Java Basics - Anfänger-Themen 2
R Quicksort mit Interface Comparable Java Basics - Anfänger-Themen 6
T Interface Methode im Interface mit mehreren Parametern Java Basics - Anfänger-Themen 10
B Interface vs Abstract Java Basics - Anfänger-Themen 2
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
pkm Interface Funktionales Interface lässt sich nicht implementieren. Java Basics - Anfänger-Themen 2
Kornblume Comparable Interface für Objektvergleiche nutzen Java Basics - Anfänger-Themen 15
I Comparator<T> Interface als Methodenparamter Java Basics - Anfänger-Themen 4
J OOP Wie sollte ich das organisieren (Abstract? Interface?) Java Basics - Anfänger-Themen 33
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
E Interface nur von abstrakter Klasse implementierbar?! Java Basics - Anfänger-Themen 1
J Vererbung Abstrake Klasse <-> Interface Java Basics - Anfänger-Themen 5
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
U Interface Bedeutung "Code to an interface rather than to an implementation." Java Basics - Anfänger-Themen 4
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
N Interface Interface Erstellung Java Basics - Anfänger-Themen 3
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
K Interface: wie damit arbeiten Java Basics - Anfänger-Themen 4
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
T Vererbung Interface Java Basics - Anfänger-Themen 5
F Interface aus anderem Package nutzen Java Basics - Anfänger-Themen 10
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
B Erste Schritte Wie definiere ich in Java ein Interface? Java Basics - Anfänger-Themen 6
L OOP Interface Prinzip? Java Basics - Anfänger-Themen 6
K Nutzung einer Klasse die das Iterator-Interface implementiert Java Basics - Anfänger-Themen 0
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
J Innerhalb Interfacemethode: Interface als Attribut Java Basics - Anfänger-Themen 2
A Frage zu Interface Java Basics - Anfänger-Themen 16
J Interface Java Basics - Anfänger-Themen 3
W Interface Java Basics - Anfänger-Themen 1
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
G Interface java.util.Comparator: Wieso muss nur die Methode compare() implementiert werden Java Basics - Anfänger-Themen 2
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
Shams Kann man von einem Interface aus auf die dieses implementierende Klasse zugreifen? Java Basics - Anfänger-Themen 4
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
J Frage zu dem Thema interface Java Basics - Anfänger-Themen 5
S Generics und Comparable Interface Java Basics - Anfänger-Themen 5
A Klasse,Vererbung,Interface,Singleton,Thread Java Basics - Anfänger-Themen 5
S Interface-Methode abrufen? Java Basics - Anfänger-Themen 2
G Vererbung Klasse erbt von abstrakter Klasse implementiert Interface Java Basics - Anfänger-Themen 2
M Konstanten in einem Interface definieren Java Basics - Anfänger-Themen 1
P interface Java Basics - Anfänger-Themen 1
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
M Interface als Datentyp Java Basics - Anfänger-Themen 12
K Interface Methoden überschreiben Java Basics - Anfänger-Themen 1
C Klassendesign / Wann Interface implementieren und wann Klassen vererben? Java Basics - Anfänger-Themen 3
A Interface in Collection (Liste) angeben Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben