Interface Interface (sinnvoll) erzeugen

NikeAir

Mitglied
Hallo,

ich habe ein kleines Problem. Ich soll ein Interface zu einer Klasse erzeugen. Ich bin mir jedoch nicht ganz sicher, ob ich es richtig/sinnvoll gemacht habe. Hier ist erstmal die Klasse:

Java:
public class BankAccount {
	private List<BankTransaction> transactions =
		new ArrayList<BankTransaction>();
	
	public Money getBalance() {
		Money ret = new Money();
		for (BankTransaction transaction : this.transactions) {
			ret = ret.add(transaction.getTransactionValue());
		}
		return ret;
	}

	public List<BankTransaction> getTransactions() {
		return this.transactions;
	}

	public void addTransaction(BankTransaction transaction) {
		if (transaction == null)
			return;
		this.transactions.add(transaction);
	}
}



Und hier ist mein Interface:

Java:
public interface IBankAccount {

	
	public Money getBalance();
	public List<BankTransaction> getTransactions();
	public void addTransaction(BankTransaction transaction);
}

Und hier nochmal die genaue Aufgabenstellung:
Code:
In Java lässt sich Information Hiding unter anderem mit Interfaces umsetzen. Geben Sie den
Code zu einem Interface an, das sich auf die unten angegebene Klasse BankAccount bezieht.


Ich bin mir jetzt leider absolut nicht sicher, ob mein Interface gut ist. Ich würde mich sehr Feedback freuen. Übrigens: Die Klasse wurde nicht von mir erstellt und daran soll auch nichts geändert werden.

Viele Grüße
NikeAir ;)
 

kaoZ

Top Contributor
Naja, wenn du die Methoden in einem Interface festlegst , musst du Sie in jeder Klasse oder Subklasse die dieses Interface implementiert , konkretisieren , da ja alle Methoden abstrakt sind.

Du müsstest also jedes mal festlegen wie z.B getBalance() in der jeweiligen klasse gehandhabt wird.
 

NikeAir

Mitglied
Okay, das ist mir ja klar, aber ich bin mir eben nicht ganz sicher, ob das bei diesem Beispiel sinnvoll umgesetzt wurde. Wir haben NUR diese Klasse und sollen dazu ein Interface erstellen, daher weiß ich ja gar nicht, was sich drumherum befindet. Findest du das Interface denn sinnvoll? angenommen, dass es wird von dieser Klasse implementiert (Details sind ja nicht bekannt)? :)
 

kaoZ

Top Contributor
Nehmen wir an, da wir ja die anderen klassen nicht kennen

BankKonto.java - implementiert dein Interface um auf Methoden wie
Code:
getBalance();
zuzugreifen,

dann macht es dies vielleicht anders als z.B in der Klasse

Sparbuch.java

die ebenfalls eine Methode
Code:
getBallance();
bräuchte

somit kannst du über ein Interface, Methoden bereitstellen die ähnlich sind(von mehreren klassen genutzt werden sollen), aber von den Klassen selbst anders umgesetzt(implementiert) werden müssen.

somit macht das schon sinn.


Bei dir geht es ja um Information Hidding also, Das Minimieren des wechselseitigen Wissens von Klassen übereinander
 
Zuletzt bearbeitet:

HansImGlück

Mitglied
Hallo,
Das sieht soweit ganz gut aus. In deinem Interface kannst du dir die Deklaration "public" sparen, da das Interface "public" und somit auch der Inhalt für alle aufrufenden Methoden sichtbar ist. Ebenso muss deine Klasse ihr Interface implementieren also:

Java:
public class BankAccount implements IBankAccount {
...
}

Das Interface wird in der Klasse in der die Methoden aufgerufen werden sollen Extended.

Java:
public class irgendeineKlasse extends IBankAccount {
private void myMethod(){
getBallance();
}
}

Alternativ zum "extenden" könntest du auch mit "dependencyInjections" arbeiten, je nach deinem Wissensstand ist das eher ungeeignet.
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Java:
public class irgendeineKlasse extends IBankAccount {
....
}

Das kann nicht funktionieren !

Enweder erweitert ein Interface ein Interface
Code:
extends
, oder wird in eine Klasse eingebunden
Code:
implements

Du versuchst hier ein Interface mit einer Klasse zu erweitern .

Das würde gehen :

Java:
public class irgendeineKlasse extends BankAccount implements IBankAccount{.....}
 
Zuletzt bearbeitet:

HansImGlück

Mitglied
Hi,
entschuldige du hast natürlich Recht, Interfaces können von Klassen nur implementiert werden... :bloed:

Java:
public class irgendeineKlasse extends BankAccount implements IBankAccount{.....}

ergibt allerdings auch keinen Sinn, da "BankAccount" bereits "IBankAccount" implementiert und somit auch in "irgendeineKlasse" verfügbar ist. Was jedoch nichts daran ändert das meine Aussage das Interface zu "extenden" falsch war.
Gruß
 

kaoZ

Top Contributor
wenn das die Ausgangssituation ist stimme ich dir zu, wenn BankAccount allerdings das Interface nicht implementieren würde, könnte er es so verfassen, das interface zu implementieren ist ja kein zwang ^^ , das gute daran ist allerdings, wenn

irgendeineKlasse BankAccount erweitert und BankAccount das Interface implementiert, ist z.B irgendeineKlasse nicht gezwungen die Methoden die in dem Interface festgelegt sind zu Implementieren, sondern er "Kann" anders als in BankAccount(also der Superklasse) die Methoden in den Subklassen implementieren und überschreiben.
 

HansImGlück

Mitglied
Zurück zu NikeAirs Frage...

Ob das Interface Sinn macht musst du dir überlegen...

Ein Interface soll die Klasse die es implementiert dazu zwingen die vorgegebenen Methoden zu implementieren. Wenn du also nur eine Klasse mit deinen Methoden hast mach ein Interface keinen Sinn. Hast du mehrere Klassen die auf jeden Fall alle definierten Methoden nutzen sollen ist ein Interface Sinnvoll.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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 Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
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
P 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
G Interface klasse Java Basics - Anfänger-Themen 4
D Interface namen bekommen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben