login  Naam:   Wachtwoord: 
Registreer je!
 Tutorials

Tutorials > Java


Gegevens:
Geschreven door:
nemesiskoen
Moeilijkheidsgraad:
Normaal
Hits:
11314
Punten:
Aantal punten:
 (3.67)
Aantal stemmen:
6
Stem:
Niet ingelogd
Nota's:
 Lees de nota's (0)
 


Tutorial:

JAVA OOP

1. Beginwoord
2. OOP?
3. Klein Voorbeeldje
4. Uitgewerkt voorbeeld met extends
 top
1. Beginwoord

OOP in Java trekt heel hard op OOP in PHP.
Ik zal hier ook ineens het werken met extends (dus het 'samenvoegen' van meerdere classes) uitleggen.
Ik raad je ook aan de OOP in PHP tutorial eerst te lezen, en weten hoe het in elkaar zit.
Die mensen kunnen ineens overschakelen naar STAP 3.
Degeen die nog nooit OOP hebben gezien, ga verder naar STAP 2.

2. OOP?

Eerst en vooral, wat is OOP.
OOP staat voor Object Orientated Programming, en alles draait rond objecten.
Allemaal mooi en wel, maar wat zijn objecten.
Een object moet je beschouwen als een soort SUPER VARIABELE, misschien zelfs een SUPER FUNCTIE.
Deze SUPER FUNCTIE kan een hele hoop informatie bevatten.
BV. een functie zelf, of meerdere functies, variabelen, input, output...

OOP wordt gebruikt om "netjes" te programeren en vooral omdat het heel gemakelijk is voor te programeren eens je je 'object' hebt aangemaakt.
Dan moet je gewoon elke keer je 'object' aanroepen en kan je de functies hierin gebruiken.
Dit klinkt misschien allemaal heel ingewikkeld, maar daarom deze tutorial ook, om het uit te leggen.

3. Klein Voorbeeldje
Ik ga dit voorbeeldje uit leggen met de allom bekende 'gegeven - gevraagd - oplossing'-techniek.

Gegeven: (wat heb ik (nodig))
Een kleine kennis van Java.
Het is echt wel vereist te weten hoe je een functie zelf in een zet, want dat ga ik hier redelijk veel gebruiken, en om dat elke keer uit te leggen...
Een Java compiler.
Een klein beetje geduld.
Goesting om dit hieronder even te lezen.

Gevraagd: (probleemstelling)
Er wordt aan mij gevraagd een programma te maken waarin ik gegevens van autos in kan opslaan.
Al deze gegevens zijn verschillend per auto.
We hebben drie types gegevens: PK (paardekracht), Kleur, aantal deuren.

Nu kan ik elke keer die gegevens gaan declareren, per nieuwe auto.
Alle gegevens voor de audi, alle gegevens voor de honda, etc.
Of ik kan alles 1x maal declareren en dit gewoon per nieuwe auto 1x aanroepen.

Dus wat doen we, we maken een soort van "functie", oftewel een CLASS aan die de declaratie bevat.
Dan ga ik elke auto als een nieuw OBJECT declareren, en de declaratie gebeurt automatisch voor de gegevens die in die CLASS zaten.

Oplossing: (het programma zelf)
import java.io.*;    //Overerving van eigenschappen en methoden

class auto{         //de class auto aanmaken en dan de volgende gegevens erin steken
              //eigenschappen van de auto
   
public int deuren;    //declaratie van deuren
   
public int kleur;    //declaratie van kleur (hexadecimaal, zodat we het als integer kunnen declareren)
   
public int pk;    //declaratie van het aantal PK
}

class
autotest{        //uitvoeren
   
public static void main (String[] args){//de main maken

      //object audi en honda uit de klasse auto maken
      
auto audi = new auto();
      
auto honda = new auto();

      
//eigenschappen van audi instellen
      
audi.pk = 150;
      
audi.kleur = 000000; //hexadecimaal: ZWART
      
audi.deuren = 5;

      
//eigenschappen van honda instellen
      
honda.pk = 120;
      
honda.kleur = ffffff; //hexadecimaal: WIT
      
honda.deuren = 4

      
//weergave van de gevraagde eigenschappen
      
System.out.println("De audi heef " +audi.pk + " PK");
   }
}


4. Uitgewerkt voorbeeld met extends

Nu gaan we classes met elkaar linken.
Ik ga hier bewust niet gebruik maken van 'gegeven - gevraagd - oplossing'-techniek omdat het anders veel te veel wordt.
Maar toch eerst even een probleemstelling, want die is er altijd.

Probleemstelling: (wat wil je bereiken)
We gaan weer eens terug naar die autos.
Stel we willen gegevens hebben over enkele autos, een vliegtuig, en enkele vrachtwagens.
1. Het vliegtuig is zeker geen auto, en kan niet in de class van autos.
2. Het zijn alle drie voertuigen, dus is het misschien het beste een class te maken met info over voertuigen.
3. Een vrachtwagen is ook weeral geen auto, maar heeft wel meer dingen gemeen met een auto dan met een vliegtuig.
Bv. Deuren etc.

Dus wat doen we.
We willen een class voertuigen aanmaken, laten we dat dan ineens doen:
class Voertuigen{//de class voertuigen maken
   //Eigenschappen geven
   
protected String naam;
   
protected int pk;

   
//Methoden
   //set-get-naam
   
public String getNaam(){
      return
naam; //de naam terugsturen, zorgen dat de naam wordt weergegeven bij het aanroepen
   
}

   
public void setNaam(String name){
      
naam = name;//een waarde aan de naam geven
   
}

   
public int getPK(){
      return
pk;//pk terugsturen
   
}

   
public void setPK(int k){
      
pk = k;//waarde aan pk geven
   
}
}

We maken de class voertuigen aan, deze gaan we nu verder opsplitsen door het gebruik van extends:
class Vierwielers extends Voertuigen{//je maakt hier de class vierwielers aan, deze bevat alle eigenschappen van de classe voertuigen, en er worden er nieuwe aan toegevoegt. Wat het woord extend eigelijk zegt: vergroten

   //Eigenschappen
   
protected int banden;

   
//Constructor
   
public Vierwielers(){
      
banden = 4;
   }

   
//Methoden
   //set-get nbanden
   
public int getbanden(){
      return
banden;
   }

   
public void setnbanden(int r){
      
banden = r; //waarde aan banden geven, als keuze is: invoeren
   
}
}

Nu kunnen we deze nog onderverdelen, in bv vrachtwagens:
class Vrachtwagen extends Vierwielers{//aanmaken
   //Eigenschappen
   
protected int laadgewicht;

   
//Constructor
   
public Vrachtwagen(){
      
laadgewicht = 0;
   }
   
   
//Methoden
   
public int getlaadgewicht(){
      return
laadgewicht;
   }

   
public void setlaadgewicht(int la){
      
laadgewicht = la;//ingevoerde waarde geven
   
}
}

En niet vergeten alles weer te geven:
class Vrachtwagentest{
   
public static void main(String[] args){
      
Vrachtwagen een = new Vrachtwagen();
      
      
een.setNaam("Trucker");//waarde geven, door de functie die we in de class voertuigen hebben gemaakt
      
een.setPK(600);//hier weer de waarde geven, doormiddel vd functie setPK
      
een.setnbanden(6);//aantal banden geven, door de functie die we in de extende class van voertuigen hebben gemaakt: vierwielers
      
een.setlaadgewicht(15000);//en dan nog een waarde geven, die we in een extende class van vierwielers hebben gemaakt: vrachtwagen

      
System.out.println("Vrachtwagen: " + een.getNaam() );//en alles mooi weergeven
      
System.out.println("PK         : " + een.getPK() );//en alles mooi weergeven
      
System.out.println("N banden   : " + een.getbanden() );//en alles mooi weergeven
      
System.out.println("Laadgewich : " + een.getlaadgewicht() );//en alles mooi weergeven
   
}
}

En daar is dan je eerste JAVA OOP programma(of misschien het zo veelste al :))
Heb je nog vragen? Stel deze dan op het forum.

Thanks to Remco voor foutverbetering. Enkele toepassingen met JAVA zijn bv. JSP, meer info daarover: JSP Tutorials  top

Volgende tutorial : JAVA Deel 1 (Inleiding) »

© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.015s