Programmeren in Java/Geavanceerde klassen

Programmeren in Java In ontwikkeling. Revisiedatum: onbekend

Inleiding Redelijk ontwikkeld. Revisiedatum: 22 augustus 2008

Installatie In ontwikkeling. Revisiedatum: 26 decemeber 2020

Hulpmiddelen Nog vrijwel niets. Revisiedatum: 26 decemeber 2020
  1. Introductie Goed ontwikkeld. Revisiedatum: 19 januari 2021
  2. Klassen Redelijk ontwikkeld. Revisiedatum: 22 januari 2021
  3. Package Goed ontwikkeld. Revisiedatum: 28 januari 2021
  4. Private en Public Goed ontwikkeld. Revisiedatum: 27 december 2020
  5. Getters en Setters Goed ontwikkeld. Revisiedatum: 19 januari 2021
  6. Static Goed ontwikkeld. Revisiedatum: 16 maart 2021
  7. Overerving In ontwikkeling. Revisiedatum: 20 januari 2007
  8. Protected Nog vrijwel niets. Revisiedatum: 22 januari 2021
  9. Abstract Nog vrijwel niets. Revisiedatum: 22 januari 2021
  10. Interfaces Nog vrijwel niets. Revisiedatum: 19 januari 2021
  11. Enums Goed ontwikkeld. Revisiedatum: 15 augustus 2020
  12. Generics Nog vrijwel niets. Revisiedatum: 19 januari 2021
  13. Boxing en Unboxing Goed ontwikkeld. Revisiedatum: 22 januari 2021
  14. Optional Nog vrijwel niets. Revisiedatum: 21 december 2020
  15. Functionele interfaces Nog 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 https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.