interface Probleme

nata

Bekanntes Mitglied
Hallo Leute,
ich habe folgende angabe
Klasse ProduktId
Jedes Produkt hat eine ProduktId; jedes Objekt der Klasse ProduktId speichert einen Code, der aus 10 – 14 Zeichen besteht. Der Code beginnt mit dem Kategorie-Code, der aus 3 Großbuchstaben besteht. Nach einem weiteren Bindestrich folgt das Datum der Produkteinführung, 1001 steht für Jänner 2010, 0912 für Dezember 2009. Nach noch einem Bindestrich folgt eine 1- bis 5-stellige eindeutige Zahl. Beispiele für den Produktcode sind GEM-2010-7, FLE-9004-812 oder TEI-9305-12.
Schreibe die Klasse ProduktId. Die ProduktId muss ihren Code im Konstruktor überprüfen und kann ihn danach nicht mehr ändern. Die ProduktId kann den Code entweder vollständig oder in seinen Teilen zurück geben (Kategorie-Code, Datum-Code, laufende Nummer).

Interface Produkt
Jedes Produkt hat eine ProduktId, einen Namen, ein Gewicht und einen Preis (jeweils double). Entwerfe Produkt als Interface. Der Gewicht und der Preis müssen positiv sein. Außerdem hat die Klasse Produkt einen Namen, der nicht leer sein darf und aus Groß- und Kleinbuchstaben, Ziffern, Binde- und Unterstrichen bestehen darf.

Klasse BasisProdukt
Implementiere das Interface Produkt in der Klasse BasisProdukt.

Klasse AktionsProdukt
Ein Objekt der Klasse AktionsProdukt stellt ein verbilligtes Produkt dar (und implementiert Produkt). AktionsProdukt speichert zuerst das Produkt, welches verbilligt werden soll. Dazu wird als int gespeichert, um wie viel Prozent das Produkt verbilligt werden soll (muss positiv sein). Alle Methoden von AktionsProdukt geben die Werte des gespeicherten Produkts zurück. Nur beim Preis werden noch so viel Prozent abgezogen, wie gespeichert sind.


Klasse MengenRabattProdukt
Ein MengenRabattProdukt erlaubt ist auch ein Produkt und erlaubt wie AktionsProdukt einen Nachlass. Der Nachlass wird aber erst beim Kauf einer bestimmen Menge gewährt. Das MengenRabattProdukt speichert das verbillige Produkt, den neuen Preis pro Stück als double, sowie die Menge, die der Kunde kaufen muss, um den Nachlass zu bekommen. Die Methoden werden so überschrieben, dass das Produkt jetzt den neuen Gesamtpreis zurück gibt, das Gesamtgewicht, im Namen wird die Stückanzahl ergänzt – aus „Cola-Dose“ wird „25 x Cola-Dose“.




ich bin so vorgegangen
1) habe ich classe ProduktId() implementiert
2) habe ich classe Basisprodukt implementiert mit konstruktor :
public BasisProdukt(String name, double gewicht, double preis, ProduktId produktId)
und methoden getName(), getGewicht() und getPreis()

3)public class AktionsProdukt extends BasisProdukt mit methode getAktuellePreis()
4)public class MengenRabattProdukt extends BasisProdukt mit methode getNeuePreis()

5) habe ich interface Produkt erstellt
Java:
public interface Produkt {
	
	String getProduktId();
	String getName();
	double getGewicht();
	double getPreis();

}

meine frage lautet folgendermassen ob ich interface richtig implementiert habe und wollte ich fragen ob ich bei klassen was ich erwähnt habe dazu implements Produkt schreiben soll
falls ich nicht gut verfasst habe, kann ich meine codes posten

danke euch für eure hilfe
lg nata
 

nata

Bekanntes Mitglied
ich habe so gemacht, aber ich bekomme jede menge fehlermeldungen, wenn die methoden die in der interface Produkt sind und in der Klassen nicht sind, bekomme ich dass ich diese methoden auch implementieren soll ;(
 

Ziegenpeter

Aktives Mitglied
Ja, das ist ja der Sinn eines Interfaces. Ein Interface schreibst du um sicherzustellen, dass bestimmte Klassen (nämlich die, die das Interface implementieren) bestimmte, gleichen Funktionen zur Verfügung stellen (aber mit unterschiedlicher Funktionalität, sprich du kannst die Methoden in jeder Klasse anderst implementieren).

Um bei deiner Aufgabe zu bleiben: Deine 3 verschiedenen Produktklassen, die verschieden Produkte repräsentieren, haben ja etwas gemeinsam. Denn jedes Produkt, ob nun Basis oder ermäßigt oder was auch immer, nämlich genau die Dinge, die in deinem Interface stehen. Jedes bekommt eine ProuktID, jedes hat einen Preis usw.

Edit: Schon wieder zu spät...
 
Zuletzt bearbeitet:

nata

Bekanntes Mitglied
Hallo,
ich schicke meine codes ohne überprüfungendamit es nicht so viel ist. meine Frage ist folgende,ob die notwendige methooden sind und ob die klassenaufrufe richtig sind. Meine Frage wäre folgende, Wie sollte in der interface Produkt objekt ProduktId aufrufen?
Ich bin euch sehr sehr dankbar, für die Zahlreiche hilfe die ihr geleistet habt
Java:
public  class BasisProdukt{

	private ProduktId produktId;
	private String name;
	protected double gewicht;
	protected double preis;
	
	public BasisProdukt(String name, double gewicht, double preis,ProduktId produktId) {
	
		this.gewicht = gewicht;
		this.preis = preis;
		setName(name);
		this.produktId = produktId;
		
	}
	 
	public double getGewicht(){
		return gewicht;
	}
	
	public double getPreis(){
		return preis;
	}
	
	public String getName(){
		return name;
	}
	
	public void setName(String name) {
		
		this.name = name;		
	}
}

Java:
public interface Produkt {
	
	
	String getName();
	double getGewicht();
	double getPreis();

}

Java:
public class AktionsProdukt extends BasisProdukt implements Produkt{
	
	
	private int prozentAnsatz;
	
	public AktionsProdukt(String name, double gewicht, double preis,
							int prozentAnsatz, ProduktId produktId)  {
		super(name, gewicht, preis,produktId);
		this.prozentAnsatz = prozentAnsatz;
		
	}
	
	public double getAktuellePreis(){
		
		return getPreis()*(1-prozentAnsatz/100.0);
	}

	
}


Java:
public class MengenRabattProdukt extends BasisProdukt implements Produkt {
	
	private double neuePreis;
	private int anzahl;
	
	public MengenRabattProdukt(String name, double gewicht, double preis,
			 double neuePreis, int anzahl, ProduktId produktId) {
		super(name, gewicht, preis, produktId);
		this.neuePreis = neuePreis;
		this.anzahl = anzahl;	
		
	}
	
	public double getNeuePreis(){
		return neuePreis * anzahl;
	}
}

Java:
public class ProduktId {
	private String produktId;
	
	public ProduktId(String produktId) {
			
		this.produktId = produktId;		
		
	}
	
		
	public String getProduktId(){
		return produktId;
	}

}
 
M

maki

Gast
Java:
public  class BasisProdukt implements Produkt {
...
 

nata

Bekanntes Mitglied
danke vielmals. Jetzt habe ich verstanden was du gemeint hast

wie kann ich in interface ein Objekt vom Typ ProduktId zurück geben.? gester habe ich so gemacht dass ProduktId hat methode getProduktId erhalten und dann habe ich in interface mit andere methoden String getProduktId(); gehabt. Wäre das so richtig?
 

Final_Striker

Top Contributor
Java:
public interface Produkt {
    
    public ProduktId getProduktId();
    public String getName();
    public double getGewicht();
    public double getPreis();

}

public class ProduktId {
    private String produktId;
    
    public ProduktId(String produktId)
    {
        this.produktId = produktId; 
    }
     
    public String getProduktId()
    {
        return produktId;
    }
 
}

public class BasisProdukt implements Produkt{
	 
    private ProduktId produktId;
    private String name;
    private double gewicht;
    protected double preis;
    
    public BasisProdukt(String name, double gewicht, double preis, ProduktId produktId)
    {
        this.gewicht = gewicht;
        this.preis = preis;
        this.name = name;
        this.produktId = produktId;
        
    }

	public ProduktId getProduktId()
	{
		return produktId;
	}

	public String getName()
	{
		return name;
	}

	public double getGewicht()
	{
		return gewicht;
	}

	public double getPreis()
	{
		return preis;
	}

}

public class AktionsProdukt extends BasisProdukt
{
    
    private int prozentAnsatz;
    
    public AktionsProdukt(String name, double gewicht, double preis, int prozentAnsatz, ProduktId produktId)
    {
        super(name, gewicht, preis,produktId);
        this.prozentAnsatz = prozentAnsatz;
    }
    // Methode get Preis wird überschrieben
    public double getPreis()
    {
        return preis * (1 - prozentAnsatz / 100.0);
    }
}

public class MengenRabattProdukt extends BasisProdukt{
    
    private double neuePreis;
    private int anzahl;
    
    public MengenRabattProdukt(String name, double gewicht, double preis, double neuePreis, int anzahl, ProduktId produktId)
    {
        super(name, gewicht, preis, produktId);
        this.neuePreis = neuePreis;
        this.anzahl = anzahl;   
    }

    ... // selber weiter machen
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Interface referenz probleme Java Basics - Anfänger-Themen 10
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
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
G Interface klasse Java Basics - Anfänger-Themen 4

Ähnliche Java Themen


Oben