<ole>
Jeg er et objekt - en instans af klassen
Menneske:
$olebole = new Menneske();
Jeg har egenskaber/properties: Køn, alder, krop (som i sig selv er et objekt, med masser af metoder og properties, som igen kan være objekter, som har ...), osv.
Nogle af disse egenskaber får mine omgivelser at se, mens andre er meget private - men de har ofte indflydelse på mine 'offentligt tilgængelige' egenskaber og ting, andre kan få mig til at udføre.
Jeg har også metoder (ting, jeg kan gøre): Spise, gå, skrive kode, osv. Også her gør jeg ting indeni og/eller i mit helt private liv, som har indflydelse på de ting, andre kan få mig til at gøre.
Jeg har properties og methods, som er både private og public. Det er endda lykkedes mig at instatiere tre child objekter, som alle har arvet nogle af mine egenskaber og metoder =)
Alt omkring dig kan opfattes/beskrives som objekter - hvorfor OOP er en afspejling af vores måde at opfatte omgivelserne på. Derfor virker OOP ekstremt logisk, når man først har fået øje på, hvad det er.
"- koden modellerer virkeligheden" er Arnes yderst præcise måde at udtrykke det på.
Forestil dig et helt ultra simpelt eksempel. Du klikker ind på din profil her på E:
class User {
// Her hentes bruger info
// fra DB og sættes som
// properties på objektet
}
$user = new User();
Så kan man i resten af dokumentet printe de forskellige properties ud med:
<tr>
<td>Navn:</td>
<td><?php print $user->name ?></td>
</tr>
<tr>
<td>Adresse:</td>
<td><?php print $user->address ?></td>
</tr>
Al din kode omkring det at vise en bruger er så samlet i én klasse - som sagtens kan gøre brug af andre klasser (f.eks. til DB håndtering). Du får samlet din kode i logiske blokke - og du holder dit globale namespace overskueligt. Din
User klasse kan desuden extendes, hvis du i anden sammenhæng skal vise en bruger med flere informationer eller, hvad ved jeg?
Ved ikke, om det evt. hjælper lidt på forståelsen =)
/mvh
</bole>