Interface einfügen und Code kürzen

ersti[09]

Mitglied
Hallo ihr lieben, ich hab mal wieder ein Problem und zwar hab ich folgenden Code:

Java:
class Start {

  public static void main(String[] args) {
    /* Bonbontuete meineBonbons = new Nascherei(80); */
    Nascherei meineNascherei = new Bonbontuete(15);
    /* Out.println(meineNascherei.istLeer()); */
    /* meineNascherei.naschen(3); */
    meineNascherei.naschen();
    ((Nascherei) meineNascherei).naschen();
    test(meineNascherei);
    test((Bonbontuete) meineNascherei);
    meineNascherei.setzeMenge(15);
    ((Bonbontuete) meineNascherei).setzeMenge(15);
    /*
    HatPreis gekauft1 = new Nascherei(99);
    Out.println("Preis: " + gekauft1.gibPreis());
    */
    /*
    HatPreis gekauft2 = new Jeans(5299);
    Out.println("Preis: " + gekauft2.gibPreis());
    */
  }

  static void test(Nascherei nascherei) {
    if (nascherei instanceof Bonbontuete) {
      Out.println("Meine Nascherei sind Bonbons.");
    }
  }

  static void test(Bonbontuete bonbons) {
    Out.println("Bonbons getestet.");
  }

}

public class Nascherei {

  int preis;  // in Cent
  double gewicht;

  public Nascherei() { }
  public Nascherei(int preis) { this.preis = preis; }

  public void naschen() {
    Out.println("Ich habe genascht.");
  }

  public int gibPreis() {
    return preis;
  }

  public void setzeMenge(double gewicht) {
    this.gewicht = gewicht;
  }

}

public class Bonbontuete extends Nascherei {

  int anzahlBonbons;

  public Bonbontuete(int anzahlBonbons) {
    this.anzahlBonbons = anzahlBonbons;
  }

  /* 
  public Bonbontuete(int preis) {
    super(preis);
  }
  */ 

  public void naschen() {
    if (!istLeer()) {
      super.naschen();
      anzahlBonbons--;
    }
  }

  public void naschen(int anzahlBonbons) {
    if (!istLeer()) {
      super.naschen();
      this.anzahlBonbons -= anzahlBonbons;
    }
  }

  public boolean istLeer() {
    return anzahlBonbons <=0;
  }

  public void setzeMenge(int anzahlBonbons) {
    this.anzahlBonbons = anzahlBonbons;
    gewicht = anzahlBonbons * 0.02;
  }

}public class Bonbontuete extends Nascherei {

  int anzahlBonbons;

  public Bonbontuete(int anzahlBonbons) {
    this.anzahlBonbons = anzahlBonbons;
  }

  /* 
  public Bonbontuete(int preis) {
    super(preis);
  }
  */ 

  public void naschen() {
    if (!istLeer()) {
      super.naschen();
      anzahlBonbons--;
    }
  }

  public void naschen(int anzahlBonbons) {
    if (!istLeer()) {
      super.naschen();
      this.anzahlBonbons -= anzahlBonbons;
    }
  }

  public boolean istLeer() {
    return anzahlBonbons <=0;
  }

  public void setzeMenge(int anzahlBonbons) {
    this.anzahlBonbons = anzahlBonbons;
    gewicht = anzahlBonbons * 0.02;
  }

}

Und nun muss ich ein Interface "HatPreis" einfügen. Weiß aber nicht so ganz wo ich das einfügen könnte. Außerdem soll die Zeilen 14-17 beseitigt werden, indem die Klasse Nascherei.java angepasst wird.

Wäre um ein paar hilfreiche Tipps sehr dankbar.
 
T

Tomate_Salat

Gast
^^ ganz die Aufgabe mache ich dir nicht, aber mal zu deinem ersten Problem (zum zweiten bin ich noch nicht gekommen...zeitgründe^^):

[c] class Start implements HatPreis[/c]

mehrere Interfaces trennt man mit einem Komma.

MFG

Tomate_Salat

Edit ach ja: in einer java-Datei kann nur eine Klasse [c]public[/c] sein.
 
Zuletzt bearbeitet von einem Moderator:

ersti[09]

Mitglied
ja aber ich brauch doch erstmal mein interface

Java:
interface HatPreis {
int preis;
void Nascherei();
void gibPreis();
}

Wäre das schonmal richtig?
 
T

Tomate_Salat

Gast
ersti[09];605809 hat gesagt.:
ja aber ich brauch doch erstmal mein interface

Java:
interface HatPreis {
int preis;
void Nascherei();
void gibPreis();
}

Wäre das schonmal richtig?

ich würde hier noch die Zugriffsmodifizatoren setzen:

Java:
interface HatPreis 
{
    private int preis;
    public void Nascherei();
    public void gibPreis();
}

wobei ich hier preis als [c]float[/c] und [c]gibPreis();[/c] die variable [c]preis[/c] zurückgeben lassen.

Java:
interface HatPreis 
{
    private float preis;
    public void Nascherei();
    public float gibPreis();
}

Mfg

tomate_salat
 

ersti[09]

Mitglied
Vielen dank, jetzt weiß ich aber leider nicht richtig, was ich in die implementiere Klasse schreiben soll :(
Einfach das:
Java:
HatPreis gekauft1 = new Nascherei(99);
    Out.println("Preis: " + gekauft1.gibPreis());
?
 
T

Tomate_Salat

Gast
ähm halt nein konstanten und variablen kommen nicht rein, nur funktionsköpfe, willst du auch funktionsrümpfe + konstanten etc dann musst du mit abstrakten klassen arbeiten...also das interface kann hier nur so ausschauen:

Java:
interface HatPreis 
{
    public void Nascherei();
    public float gibPreis();
}

du kannst das ganze aber [c]abstract[/c] lösen:

Java:
abstract class HatPreis 
{
    private float preis;
    public abstract void Nascherei();
    public float gibPreis() 
   {
        return preis;
   } 
}

edit die Klasse die [c]HatPreis[/c] implementiert muss dann halt noch [c]Nascherei()[/c] definieren, weil sie als [c]abstract[/c] markiert ist.
 

ersti[09]

Mitglied
Mh, danke, dann hab ich das wohl anfangs falsch verstanden. Aber ich uss das doch in die Start-Klasse implementieren
Java:
class Start implement HatPreis {
...

Danke nochmal
 
J

JohannisderKaeufer

Gast
Java:
class Start implements HatPreis
macht irgendwie wenig Sinn. Und die Methode "void Nascherei()" im Interface HatPreis finde ich auch etwas Merkwürdig.

Die Methode gibPreis im Interface HatPreis würde ich für völlig ausreichend halten.

Jetzt fragt sich nur was sinnvollerweise das Interface bekommt.

Da Nascherei eine Methode gibPreis enthält, könnte man ihr das Interface ruhigen gewissens geben.

Java:
public class Nascherei implements HatPreis ...
und 
public class Jeans implements HatPreis ...

zu deinen test-Methoden kannst du dann noch eine
Java:
public static void test(HatPreis gekauftes){
Out.println("Preis "+gekauftes.gibPreis());
}
schreiben.

Zeile 41 würde ich entfernen, wenn jede Nascherei ihren Preis haben soll.

Den Bonbontütenkonstruktor würde sowas ersetzen
Java:
public Bonbontuete(int anzahlBonbons, float preis) {
    super(preis);
    this.anzahlBonbons = anzahlBonbons;
  }
 
T

Tomate_Salat

Gast
wieder was dazugelernt. Stimmt sie können Konstanten. Bin bisher nur von Variablen ausgegangen und habe das warum auch immer auf Konstanten übertragen :oops::autsch:
 
Ä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
N Interface Interface (sinnvoll) erzeugen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben