Naar inhoud springen

Programmeren in Java/Geavanceerde klassen

Uit Wikibooks

Programmeren in JavaIn ontwikkeling. Revisiedatum: onbekend

InleidingRedelijk ontwikkeld. Revisiedatum: 22 augustus 2008

InstallatieIn ontwikkeling. Revisiedatum: 26 decemeber 2020

HulpmiddelenNog vrijwel niets. Revisiedatum: 26 decemeber 2020
  1. IntroductieGoed ontwikkeld. Revisiedatum: 19 januari 2021
  2. KlassenRedelijk ontwikkeld. Revisiedatum: 22 januari 2021
  3. PackageGoed ontwikkeld. Revisiedatum: 28 januari 2021
  4. Private en PublicGoed ontwikkeld. Revisiedatum: 27 december 2020
  5. Getters en SettersGoed ontwikkeld. Revisiedatum: 19 januari 2021
  6. StaticGoed ontwikkeld. Revisiedatum: 16 maart 2021
  7. OverervingIn ontwikkeling. Revisiedatum: 20 januari 2007
  8. ProtectedNog vrijwel niets. Revisiedatum: 22 januari 2021
  9. AbstractNog vrijwel niets. Revisiedatum: 22 januari 2021
  10. InterfacesNog vrijwel niets. Revisiedatum: 19 januari 2021
  11. EnumsGoed ontwikkeld. Revisiedatum: 15 augustus 2020
  12. GenericsNog vrijwel niets. Revisiedatum: 19 januari 2021
  13. Boxing en UnboxingGoed ontwikkeld. Revisiedatum: 22 januari 2021
  14. OptionalNog vrijwel niets. Revisiedatum: 21 december 2020
  15. Functionele interfacesNog vrijwel niets. Revisiedatum: 19 januari 2021
Appendices

Is een en Heeft een relaties

[bewerken]

Is een en Heeft een relaties beschrijven de relaties tussen 2 verschillende objecten.

Is een relatie (IS-A)

[bewerken]

Een is een relatie betekent dat een object van een ander object overerft. Met die eenvoudige woorden kun je ook achterhalen of een object kan overerven van een ander object. Stel je hebt 2 objecten genaamd auto en voertuig. Als je het volgende zinnetje zegt auto is een voertuig dan weet je meteen dat auto kan overerven van voertuig. Als je het volgend zinnetje zegt voertuig is een auto weet je meteen dat het niet klopt en zal voertuig hoogstwaarschijnlijk niet overerven van auto. Dit is een handige test als je wilt zien of je een object wilt laten overerven van een ander object. Als het die test niet overleeft is het afgeraden om de objecten te laten overerven.

Heeft een relatie (HAS-A)

[bewerken]

Een heeft een relatie betekent dat één object de eigenschap is van een ander object. Auto heeft een stuur dit zinnetje betekent dat een stuur object een eigenschap is van het auto object.

Interface

[bewerken]

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:

Java-code: interfaceA.java

1:	public interface interfaceA{
2:	    void methodeA();
3:	    void methodeC();
4:	}


Java-code: KlasseA.java

1:	public class KlasseA implements interfaceA{ // 
2:	    public void methodeA(){
3:	       System.out.println("methodeA aangeroepen");
4:	    }
5:	    public void methodeB(){
6:	       System.out.println("methodeB aangeroepen");
7:	    }
8:	    public void methodeC(){
9:	       System.out.println("methodeC aangeroepen");
10:	    }
11:	}

Regel 1: implements interfaceA wil zeggen dat KlasseA over alle methoden van de interface moet beschikken

Java-code: KlasseB.java

1:	public class KlasseB{
2:	     private interfaceA objectnaamA; 
3:	     
4:	     public KlasseB(){
5:	       objectnaamA=new KlasseA(); 
6:	       objectnaamA.methodeA();    
7:	     }    
8:	public static void main(String[] args){
9:	    KlasseB objectnaamB=new KlasseB();    
10:	}
11:	}

output: methodeA aangeroepen

Regel 5: hier maak je een instantie van de interface waardoor KlasseB weet dat KlasseA over de methoden beschikt die door het contract (interface) zijn opgemaakt.

Regel 6: 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.

Java-code: KlasseC.java

1:	public class KlasseC{
2:	
3:	   public void methodeD(interfaceA item){
4:	      item.methodeC(); 
5:	   }
6:	
7:	public static void main(String[] args){
8:	   KlasseA objectnaamA=new KlasseA();
9:	   KlasseC objectnaamC=new KlasseC();
10:	   objectnaamC.methodeD(objectnaamA);
11:	}
12:	}

output : methodeC aangeroepen

Informatie afkomstig van Wikibooks NL, een onderdeel van de Wikimedia Foundation.