# Interface inplementierne und in anderer Klasse verwenden



## BabCom (5. Mai 2015)

Hi leute, ich hab da ein Problem mit interfaces und dessen implementierung bzw korrekten benutzung. Nur schon mal vorweg es handel sich um ein problem mit einer praktikumsaufgabe in der UNI ich erwarte kein komplettlösung oder sowas.  zum Problem: wir sollen eine Klasse erstellen und in dierer ein Interface implemntieren (zunächst nur als dummy.) Dieses wird dann später an eine GUI übergeben (wird ebenfalls gestellt)  Hierbei handelt es sich um eine Java Class Libary  
	
	
	
	





```
package entitys;
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

import edu.whs.dvi.ApplicationException;
import edu.whs.dvi.aufgabe1.dataaccess.DataAccessObject;
import edu.whs.dvi.aufgabe1.entities.Artikel;
import edu.whs.dvi.aufgabe1.entities.Bestellung;
import edu.whs.dvi.aufgabe1.entities.Kategorie;
import edu.whs.dvi.aufgabe1.entities.Kunde;
import java.util.Collection;
import java.util.Map;

/**
 *
 * @author jp
 */
public class dao implements DataAccessObject {

    public dao() {
        
    }
    
    @Override
    public Collection<Kategorie> getAllKategorie(Kategorie oberkategorie) {
        return null;
    }

    @Override
    public Bestellung startBestellung(Map<Artikel, Integer> artikel, long kundennr) throws ApplicationException {
        return null;    
    }

    @Override
    public Bestellung startBestellung(Map<Artikel, Integer> artikel, String name, String vorname, String strasse, String plz, String wohnort, String email) throws ApplicationException {
        return null;
    }

    @Override
    public Collection<Bestellung> getAllBestellungFor(long kundennummer) throws ApplicationException {
        return null;    
    }

    @Override
    public Collection<Kunde> getAllKunde() {
        return null;
    }

    @Override
    public void removeKunde(long kundennummer) throws ApplicationException {
    
    }

    @Override
    public void updateKunde(long kundennummer, String name, String vorname, String strasse, String plz, String wohnort, String email) throws ApplicationException {
    
    }

    @Override
    public void close() throws ApplicationException {
  
    } 
}
```

Dies Klasse wird dann in der main gui beim erstellen der GUI verwendet.  


```
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package dvi.p1;
import entitys.dao;
import edu.whs.dvi.ui.ShopMainFrame;
/**
 *
 * @author jp
 */
public class DVIP1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        
        new ShopMainFrame(new dao()).setVisible(true);
        
    }
    
}
```

Ich hoffe irgend wer kann mich auf den richtigen weg schubsen..  PS: der Konstruktor von mainframegui 
	
	
	
	





```
public ShopMainFrame(edu.whs.dvi.aufgabe1.dataaccess.DataAccessObject dao) {        /*auf den code habe ich keinen zugriff*/     }
```
    PPS: im anhang befinden sich das verwendete projekt + bibiliotheken  mfg BabCom


----------



## Varthor (6. Mai 2015)

Was ist denn genau deine Frage?

Das Interface hast du doch bereits in die Klasse dao implementiert und die implementierten Methoden übernommen / überschrieben.
Dadurch das du die Klasse dao in die Klasse DVIP1 importierst, kannst du ein Objekt dieser Klasse erzeugen z.b.: dao x = new dao() und die Methoden der Klasse benutzen.

---
Weiterhin brauchbar:
Code Conventions for the Java Programming Language: 9. Naming Conventions


----------

