Frage zu Java und Interfaces

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich bin dabei ein Programm in Java Umzusetzen und habe eine grundsätzliche Frage zu INterfaces.
Ich habe das Problem das eine Klasse hinter einem Interface stecken soll. Doch wie kann ich dieser Klasse einen Konstruktor geben bzw Objekte der Klasse erstellen. Wenn ich direkt die Klasse nehme geht das zwar, aber ich dachte das INterface soll dazu dienen eine Schnittstelle zur Klasse zu defnieren. Oder sind Interfaces nur dazu da sicherzustellen das die Methoden in der Klasse implimentiert sind?

Wäre gut wenn mir da jemand helfen kann.
 
R

Roar

Gast
meinst du so etwas:

Code:
public Enumeration dummyEnumeration() {
      return new Enumeration() {
             public boolean hasMoreElements() { return true; }

             public Object nextElement() { return Long.valueOf(System.currentTimeMillis()); }
      };
}

:?:
 
G

Guest

Gast
Nein eigentlich nicht. Sonder eher wie kann ich über ein INterface eine Klasse ansprechen ohne die Klasse zu verwenden? zweck unabhägikeit.

Bei den Methoden Klappt das zwar aber nicht beim Kontruktor.

Jetzt mache ich es so das ich einfach eine Methode schreibe die das über gebene übernimmt Beispiel

Code:
private Controller test;
test.setApi(localapi);

Aber kann ich das auch anders machen?
Denn über das Interface (in diesem Fall test) kann ich ja nicht den Konstruktor ansprechen sowas z.b.

Controller test = new Controller(locapapi);

Das geht nur wenn ich denn Konrekten Klassennamen der "test" implemetiert nehme.
 

zd

Bekanntes Mitglied
interfaces definieren welche methoden überschrieben werden müssen.
der konstruktor liegt in der klasse, die das interface implementiert, und somit seine methoden überschreiben muss.

kleines Beispiel:
du möchtest für ein spiel mehrere computergegner mit unterschiedlich starker ki schreiben.
jeder spieler muss die methode makeNextMove() besitzen.
du definierst ein interface ComputerPlayer:
Code:
public Interface ComputerPlayer {
      public void makeNextMove();
}
jeder der computerspieler implementiert nun das interface:
Code:
public class Player1 implements ComputerPlayer() {
    // konstruktor wo dieser spezielle spieler erzeugt wird
    public Player1() {
        // ....
    }

    public void makeNextMove() {
         // hier steht jetzt, wie dieser spezielle spieler seinen nächsten zug berechnet
    }
}

wenn du die methode makeNextMove() nicht implementierst, meckert der compiler.
das interface sorgt also dafür, dass alle spieler ihre benötigten methoden implementieren müssen, und definiert somit eine schnittstelle für den spielcontroller.
 
G

Guest

Gast
Danke schonmal für die Antwort. Was mache ich in deinem Beispiel wenn ich jeden Play standardmässig mit etwas über den Konruktor ausstatten möchte?

Wenn ich alles richtig verstanden hab muss ich dann in deinem Beispiel sowas machen um einen neuen Player zu erstellen:
Code:
Player1 spieler = new Player1(meine_uebergebene_var);
Doch dann verstehe ich das Konzept des INterfaces nicht so ganz. Denn man muss ja trotzdem die Klasse INstanzieren und über dessen Konstruktor initialieseren. Ich dachte das Interface "schleift den Konstrukltor Quasi druch". so in etwa:
Code:
Compterplay spiel = new Computerplayer(meine_ueb_var);

Der eigentliche Hintergrund warum ich Frage, ist das ich eine Klasse schreiben soll die Komplet austauschbar ist, doch wie kann ich das erreichen wenn sowas nicht funktioniert.
 

zd

Bekanntes Mitglied
Anonymous hat gesagt.:
Was mache ich in deinem Beispiel wenn ich jeden Play standardmässig mit etwas über den Konruktor ausstatten möchte?
du musst in der klasse Player1 einen entsprechenden Konstruktor bereitstellen:
Code:
public Player1(Vartyp meine_uebergebene_var) {
    // ...
}
Anonymous hat gesagt.:
Wenn ich alles richtig verstanden hab muss ich dann in deinem Beispiel sowas machen um einen neuen Player zu erstellen:
Code:
Player1 spieler = new Player1(meine_uebergebene_var);
ja, wenn du in Player1 den obengenannten konstruktor hast.
Anonymous hat gesagt.:
Doch dann verstehe ich das Konzept des INterfaces nicht so ganz. Denn man muss ja trotzdem die Klasse INstanzieren und über dessen Konstruktor initialieseren. Ich dachte das Interface "schleift den Konstrukltor Quasi druch". so in etwa:
Code:
Compterplay spiel = new Computerplayer(meine_ueb_var);
interfaces haben keinen konstruktor.
ich glaube auch du hast das prinzip von interfaces noch nicht ganz verstanden ;), interfaces dienen nur dazu, um schnittstellen zu erzwingen.
was du suchst ist vielleicht eher vererbung.
 

Illuvatar

Top Contributor
Du kannst folgendes machen:

Code:
Computerplayer spieler = new Player1(meine_ueb_var);
Mehr geht nicht, der Compiler muss ja wissen, von welcher Klasse er instanzieren lassen muss.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Input/Output Frage zu Java IO Java Basics - Anfänger-Themen 6
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
Zrebna Frage zum "Referenzen-konzept" in Java Java Basics - Anfänger-Themen 8
G Schach in Java - Allgemeine Frage zur Architektur Java Basics - Anfänger-Themen 7
L Frage zu IntStream (Java 8) Java Basics - Anfänger-Themen 6
M Allgemeine Java-Frage anhand bspw. Eclipse Java Basics - Anfänger-Themen 4
Henri Paare Frage über Java Programmierung Java Basics - Anfänger-Themen 10
L Frage zu 32 Bit IEEE Norm in Java Java Basics - Anfänger-Themen 5
T Frage zu Java Stack Java Basics - Anfänger-Themen 5
M Frage zu HashCode Methode in Java Java Basics - Anfänger-Themen 7
J Java 8 Streams - Frage zu "reduce" Java Basics - Anfänger-Themen 6
B Frage zu iCalendar in Java Eclipse Java Basics - Anfänger-Themen 0
M Frage Long Wert in Java Java Basics - Anfänger-Themen 1
K Frage zu Bitschifting in Java Java Basics - Anfänger-Themen 3
K Java Eclipse Schiffeversenken Frage Java Basics - Anfänger-Themen 3
M Frage bzgl. Oracle Java Zertifizierung Java Basics - Anfänger-Themen 4
S Java - Client/Server mit Stomp kurze Frage Java Basics - Anfänger-Themen 0
D McDonalds - Java Projekt frage Java Basics - Anfänger-Themen 7
X Kurze Frage zu Java Doc Java Basics - Anfänger-Themen 3
N Java UML: Eine Frage zu public-Variablen Java Basics - Anfänger-Themen 19
J Java Generics - Frage zu Types Java Basics - Anfänger-Themen 2
D Erste Schritte Problem mit dem Java-Editor Eclipse [Frage] Java Basics - Anfänger-Themen 13
DaniSahne96 Frage zu Java ist auch eine Insel Java Basics - Anfänger-Themen 12
A Java Flächeninhaltsberechnung kleine Frage Java Basics - Anfänger-Themen 8
J Java Basics Frage Compiler etc Java Basics - Anfänger-Themen 12
K Frage zu Datentypfeststellung in Java Java Basics - Anfänger-Themen 2
D Frage zu der import Anweisung in Java Java Basics - Anfänger-Themen 15
K Frage zu einer Connection in Java Java Basics - Anfänger-Themen 3
A Frage zu Eventprogrammierung in Java Java Basics - Anfänger-Themen 6
D Frage zu Klausur über Java Java Basics - Anfänger-Themen 2
K Frage zu Java Spielen Java Basics - Anfänger-Themen 2
G Frage zur Spezifikation von JAVA Java Basics - Anfänger-Themen 4
S Frage zu Fließkommadarstellung in Java Java Basics - Anfänger-Themen 4
J Allgemeine Frage zu GUI´s in Java Java Basics - Anfänger-Themen 6
F Java Timer Frage Java Basics - Anfänger-Themen 14
A Eine Frage zu AWt in JAVA, wie wähle ich ein Punkt aus`? Java Basics - Anfänger-Themen 4
S Java Anfänger - Tutorial Frage Java Basics - Anfänger-Themen 10
E Frage zu Java Dokumentation / Eclipse Java Basics - Anfänger-Themen 9
T Java Tree Frage Java Basics - Anfänger-Themen 2
L Frage zu Java-Programm Java Basics - Anfänger-Themen 6
B Frage zu Java Java Basics - Anfänger-Themen 14
X Java Algorithmus Frage Java Basics - Anfänger-Themen 17
T Frage aus dem Buch JAVA ist auch eine Insel Java Basics - Anfänger-Themen 11
G generelle Frage zu Strukturierung von Java-Programmen Java Basics - Anfänger-Themen 2
A Frage zu java und MySQL Java Basics - Anfänger-Themen 3
E Java Applet Seiten wechel frage Java Basics - Anfänger-Themen 15
G Frage zum Abspeichern von Java-Klassen Java Basics - Anfänger-Themen 9
L Frage zur Verschlüsselung in java Java Basics - Anfänger-Themen 3
I Liste in Java (Chat-Frage) Java Basics - Anfänger-Themen 3
G Frage zu kleinem Java Programm Java Basics - Anfänger-Themen 4
J Java Frage zur Methode Java Basics - Anfänger-Themen 14
B [Java] Schachbrett Frage Java Basics - Anfänger-Themen 11
C Frage zu java.lang.reflect.Proxy Java Basics - Anfänger-Themen 4
J Habe gerade erst mit Java begonnen - Frage zu JTabbedPane Java Basics - Anfänger-Themen 3
M Java Design Frage Java Basics - Anfänger-Themen 2
M Frage zu Java Compiler Java Basics - Anfänger-Themen 3
G Frage zur Generic java ? Java Basics - Anfänger-Themen 9
T Newbie Frage Eine Java Anwendung fernsteuern? Java Basics - Anfänger-Themen 4
G eine Frage zur Generic Java ? Java Basics - Anfänger-Themen 8
D dumme Frage! (was heist 'import java.util.*;' ?) Java Basics - Anfänger-Themen 3
C kleines Java script mit Frage Java Basics - Anfänger-Themen 2
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2
H Frage an die Profis Java Basics - Anfänger-Themen 4
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
F Kurze Frage zu replace() Java Basics - Anfänger-Themen 19
JavaSchmecktLecker Polymorphie Frage zur Methodenüberschreibung Java Basics - Anfänger-Themen 21
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
B Erste Schritte Frage zu Instanzierung und Referenzen Java Basics - Anfänger-Themen 8
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
O Frage: Formaler Typbezeichner? Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
N Spezielle frage zum Comparator Java Basics - Anfänger-Themen 6
L Frage zum Array Java Basics - Anfänger-Themen 1
A Frage zum UML Design Java Basics - Anfänger-Themen 1
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
izoards Drucken Frage zu FAQ Beitrag Java Basics - Anfänger-Themen 2
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
A OCA Study Guide: 2. Frage aus Kapitel 3 Java Basics - Anfänger-Themen 9
sserio Date Library Frage Java Basics - Anfänger-Themen 9
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
sserio Frage zu HashMaps Java Basics - Anfänger-Themen 20
sserio Frage zu Threading - Multithreading Java Basics - Anfänger-Themen 2
sserio Frage zu Lambda Ausdrücken Java Basics - Anfänger-Themen 7
sserio Frage zu BigInteger Java Basics - Anfänger-Themen 1
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
xxx12 Frage Java Basics - Anfänger-Themen 2
I Generelle Frage zu Mikroservices (Spring Boot?), Docker... Java Basics - Anfänger-Themen 7
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
A Frage zur programmierung Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben