Overleg:Programmeren in Java/Geavanceerde klassen

Uit Wikibooks
Naar navigatie springen Naar zoeken springen

/* onbewerkte tekst: De klasse die een interface implementeert laat toe dat een andere klasse de public methoden van deze klasse kan aanspreken via een instantie van deze interface. Het object van de klasse weet immers dat als een andere klasse een interface implementeert dat deze over de methoden beschikt die beschreven staan in de interface en deze methoden dus kan aanspreken. Deze zekerheid bestaat doordat een interface een contract is dat aangeeft welke public members een klasse moet hebben die de interface implementeert. De public members kunnen constanten of methoden zijn.

  • /

concreet:

public interface interfaceA{

   void methodeA();
   void methodeC();

}

public class KlasseA implements interfaceA{ //implements interfaceA wil zeggen dat klasseA over alle methoden van de interface //moet

                                           //beschikken   
   public void methodeA(){
      System.out.println("methodeA aangeroepen");
   }
   public void methodeB(){
      System.out.println("methodeB aangeroepen");
   }
   public void methodeC(){
      System.out.println("methodeC aangeroepen");
   }

}

public class KlasseB{

    private interfaceA objectnaamA; 
    
    public KlasseB(){
      objectnaamA=new KlasseA(); //hier maak je een instantie van de interface waardoor klasseB weet dat klasseA over de methoden  
                                 //beschikt die door het contract (interface) zijn opgemaakt.
      objectnaamA.methodeA();    //hier roep je de public methode aan van de klasse die de interface implementeert.
                                 //merk op dat je via de instantie van de interface de methodeB niet kan aanspreken.
    }    

public static void main(String[] args){

   KlasseB objectnaamB=new KlasseB();    

} }

output: methodeA aangeroepen

public class KlasseC{

  public void methodeD(interfaceA item){
     item.methodeC(); 
  }

public static void main(String[] args){

  KlasseA objectnaamA=new KlasseA();
  KlasseC objectnaamC=new KlasseC();
  objectnaamC.methodeD(objectnaamA);

} }

output : methodeC aangeroepen

//TODO nakijken op (spellings)fouten en in de gewenste layout zetten zodra ik weet hoe men te werk gaat.

Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.