Inleiding
Wat is OOP?
OOP staat voor Objectgeoriënteerd Programmeren. Het is een geheel andere manier van programmeren in vergelijking met lineair programmeren. Waar bij lineair programmeren de code een grote reeks is die van boven naar beneden wordt geparst en erg moeilijk herbruikbaar is, is OOP gemakkelijk herbruikbaar en zijn er objecten die een instantie van een klasse zijn. Een klasse beschrijft bijvoorbeeld een reactie op een gastenboek. Voor elke reactie wordt dan een object gemaakt van de instantie van de klasse. De klasse is dus als het waren een blauwdruk voor de objecten van die klasse. Een klasse bevat meestal functies, variabelen en constanten. Bijvoorbeeld hebben we een klasse die het gedrag van een mens beschrijft. Deze klassen noemen we clsMens. Deze klasse heeft de volgende variabelen:
En de volgende functies:
- getHealth();
- Geeft de variabele iHealth.
- setHealth();
- Geeft een andere waarde aan iHealth.
- getName();
- Geeft de variabele sName.
- setName();
- Geeft een andere waarde aan sName.
De code hiervoor is:
<?php
class clsMens
{
var $m_iHealth;
var $m_sName;
function getHealth()
{
return $this->m_iHealth;
}
function setHealth($p_iNewHealth)
{
$this->m_iHealth = $p_iNewHealth;
}
function setName($p_sNewName)
{
$this->m_sName = $p_sNewName;
}
function getName()
{
return $this->m_sName;
}
}
?>
Nu maken we een nieuw objecten, die we objBart en objJoost noemen. Dit doen we met de volgende code:
<?php
$objBart = new clsMens();
$objJoost = new clsMens();
?>
Zoals je kunt zien, kun je meerdere objecten van één klasse maken, die ook gescheiden variabelen hebben van elkaar.
<?php
$objBart->setName('Bart');
$objBart->setHealth(75);
echo 'Leven Bart: ' . $objBart->getHealth() . '<br />';
echo 'Leven Joost: '$objJoost->iHealth;
?>
Dit zal als uitkomst geven:
Leven Bart: 75
Leven Joost: 100
Zoals je kunt zien, kun je ook de variabelen ophalen zonder een functie te gebruiken (zoals bij $objJoost->iHealth).
Voor en nadelen van OOP
Het voordeel van OOP is de herbruikbaarheid, het is zelfs mogelijk om klassen van een compleet andere site te implanteren in je eigen website. Dit is erg moeilijk te realiseren met lineair programmeren. Echter doordat vaak OOP niet goed wordt gebruikt, is dit helaas niet altijd mogelijk. Een ander voordeel is de overzichtelijkheid, zo kan het zo zijn dat je graag van MySQL over wilt stappen op bijvoorbeeld SQLite, als je een speciale klasse of functies voor de data hebt gebouwd, is het zeer gemakkelijk om over te stappen op een ander databasetype.
Een nadeel aan OOP is dat het niet meer overzichtelijk is als je kleine dingen moet programmeren, dan wordt het overbodig om een speciale klasse en dat kost dan uiteindelijk alleen maar snelheid en komt de overzichtelijkheid ook niet ten goede.
Andere delen
- Inleiding
- Klassen en instantiaties