Googlehupf
Erfahrenes Mitglied
Hallo zusammen!
Ja, ich hab gegoogelt und hab folgende Beschreibung gefunden:
http://www.java-forum.org/einfuehrungen-erste-schritte/117297-interfaces.html
Das Programm ohne Interface ist mir vollkommen klar, aber das mit dem Interface verwirrt mich ein wenig(Fragen sind in den Kommentaren der Programme).
Das Interface-Programm ist ja folgendermaßen aufgebaut:
Warum muss man denn "Buyable b"(das interface) mit "new Car" gleichstellen? Also übergeben(=gleichstellen). Also was passiert da genau?
Anders Programm mit Interface:
Ich denke was das Programm genau machen soll ist eigentlich egal, ansonsten bitte nachfragen.
Bitte versucht es bei beiden Programmen mir zu erklären, wenn ihr wollt könnt ihr noch zusätzlich ein Bsp-Programm zeigen
. Wäre sehr cool.
Danke im voraus!
mfg
Googlehupf
Ja, ich hab gegoogelt und hab folgende Beschreibung gefunden:
http://www.java-forum.org/einfuehrungen-erste-schritte/117297-interfaces.html
Das Programm ohne Interface ist mir vollkommen klar, aber das mit dem Interface verwirrt mich ein wenig(Fragen sind in den Kommentaren der Programme).
Das Interface-Programm ist ja folgendermaßen aufgebaut:
Java:
interface Buyable() {
public int getPrice();
}
class Car implements Buyable{
@Override
public int getPrice() {
return 15000;
}
}
class Truck implements Buyable{
@Override
public int getPrice() {
return 45000;
}
}
class Motorbike implements Buyable{
@Override
public int getPrice() {
return 8000;
}
}
class CarDealer {
private int billingAmount;
public void buyBuyable(Buyable b) { //an der stelle: "Buyable b" ="new Car()", also die Adressen sind von beiden dieselbe, oder? Wenn nicht wie nennt man das sonst? Ich begreif jetzt nicht wie jetzt "b.getPrice" die Auto-Klasse finden soll und halt dann darin die Funktion getPrice aufruft.
billingAmount += b.getPrice();
}
public void printBill() {
System.out.println("Der Betrag Ihres Einkaufs beläuft sich auf:");
System.out.println(billingAmount + " €.");
System.out.println("Danke für Ihren Einkauf bei MegaMüll Vehicles.");
}
}
Warum muss man denn "Buyable b"(das interface) mit "new Car" gleichstellen? Also übergeben(=gleichstellen). Also was passiert da genau?
Anders Programm mit Interface:
Java:
//Klasse1 die das interface implementiert hat:
bar = new Label_Scrollbar(easy,this);// hier meint man ja man übergibt die Adresse des Objektes von Klasse1, oder was hat macht das genau?
//Klasse 2:
public Label_Scrollbar(int level, LevelChangeObserver cb) { //man übergibt Klasse1, das ja ein Interface implementiert, weil man //in der Klasse 1 später irgendwann mal auf die Methode vom Interface zugreifen kann, aber was für Vorteile hat das hier jetzt in //dem Programm? Erklärt mir bitte die Zeile in KLasse 1 mit der Konstruktor-Zeile in Klasse 2 --> was passiert da genau?
super(JScrollBar.VERTICAL, 1, 1, 0, 3);
this.cb=cb;
this.level=level;
addAdjustmentListener(new Scrollbar_Listener());//frage nebenbei: theoretisch könnte man hier auch ein this. machen //oder? Man brauchst aber nicht, weils eh eindeutig ist, dass die Klasse "Label_Scrollbar" gemeint wird, richtig?
color_Change();
}
Interface:
public interface LevelChangeObserver {
public void change_level(int value);
}
Interface-Methode, die natürlich in der Klasse 1 steht:
public void change_level(int new_level) {
level = new_level;
}
Ich denke was das Programm genau machen soll ist eigentlich egal, ansonsten bitte nachfragen.
Bitte versucht es bei beiden Programmen mir zu erklären, wenn ihr wollt könnt ihr noch zusätzlich ein Bsp-Programm zeigen

Danke im voraus!
mfg
Googlehupf
Zuletzt bearbeitet: