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.

Nut van dit hoofdstuk[bewerken]

Ik zie niet goed wat de bedoeling was van dit hoofdstuk. Wat zijn "geavanceerde klassen"? Er worden hier uiteindelijk twee zaken besproken, relaties tussen objecten en intefaces wat op zich rechtstreeks niets met elkaar te maken heeft. Ik zou ofwel dit hoofdstuk herwerken naar een hoofdstuk over de basis van interfaces, ofwel een nieuw hoofstuk interfaces beginnen en dit als kandidaat voor verwijdering maken. Ik weet niet of/wanneer ik dit zal oppikken, als er iemand in de tussentijd er een mening over heeft hoor ik het graag. --DimiC88 (overleg) 26 dec 2020 12:42 (CET)Reageren[reageer]

Ik denk dat ik gewoon een nieuw hoofdstuk zal schrijven over interfaces en dan dit een kandidaat maken voor verwijdering. --DimiC88 (overleg) 22 jan 2021 10:45 (CET)Reageren[reageer]
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.