CINXE.COM
Objectgeoriënteerd - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="nl" dir="ltr"> <head> <meta charset="UTF-8"> <title>Objectgeoriënteerd - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )nlwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t.",".\t,"],"wgDigitTransformTable":["",""], "wgDefaultDateFormat":"dmy","wgMonthNames":["","januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"wgRequestId":"c20eea80-64cb-44fc-a0b8-646a72a64f5b","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Objectgeoriënteerd","wgTitle":"Objectgeoriënteerd","wgCurRevisionId":67919104,"wgRevisionId":67919104,"wgArticleId":7643,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Objectgeoriënteerd programmeren"],"wgPageViewLanguage":"nl","wgPageContentLanguage":"nl","wgPageContentModel":"wikitext","wgRelevantPageName":"Objectgeoriënteerd","wgRelevantArticleId":7643,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgRedirectedFrom":"Objectgeoriënteerde_programmeertaal","wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick" :true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"nl","pageLanguageDir":"ltr","pageVariantFallbacks":"nl"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":10000,"wgInternalRedirectTargetUrl":"/wiki/Objectgeori%C3%ABnteerd","wgRelatedArticlesCompat":[],"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q2011845","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready" ,"user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["mediawiki.action.view.redirect","ext.cite.ux-enhancements","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.Direct-link-to-Commons","ext.gadget.ProtectionTemplates","ext.gadget.InterProjectLinks","ext.gadget.hoofdbetekenis-titelwijziging","ext.gadget.switcher","ext.gadget.OpenStreetMapFrame","ext.gadget.subpages","ext.urlShortener.toolbar","ext.centralauth.centralautologin","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth", "ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=nl&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=nl&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=nl&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.5"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Objectgeoriënteerd - Wikipedia"> <meta property="og:type" content="website"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//nl.m.wikipedia.org/wiki/Objectgeori%C3%ABnteerd"> <link rel="alternate" type="application/x-wiki" title="Bewerken" href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (nl)"> <link rel="EditURI" type="application/rsd+xml" href="//nl.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://nl.wikipedia.org/wiki/Objectgeori%C3%ABnteerd"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.nl"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom-feed" href="/w/index.php?title=Speciaal:RecenteWijzigingen&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Objectgeoriënteerd rootpage-Objectgeoriënteerd skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Naar inhoud springen</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Hoofdmenu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Hoofdmenu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Hoofdmenu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">naar zijbalk verplaatsen</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">verbergen</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigatie </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage" class="mw-list-item"><a href="/wiki/Hoofdpagina" title="Naar de hoofdpagina gaan [z]" accesskey="z"><span>Hoofdpagina</span></a></li><li id="n-zoekartikel" class="mw-list-item"><a href="/wiki/Portaal:Navigatie"><span>Vind een artikel</span></a></li><li id="n-today" class="mw-list-item"><a href="/wiki/28_november"><span>Vandaag</span></a></li><li id="n-Etalage" class="mw-list-item"><a href="/wiki/Wikipedia:Etalage"><span>Etalage</span></a></li><li id="n-categories" class="mw-list-item"><a href="/wiki/Categorie:Alles"><span>Categorieën</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Speciaal:RecenteWijzigingen" title="Een lijst met recente wijzigingen in deze wiki. [r]" accesskey="r"><span>Recente wijzigingen</span></a></li><li id="n-newpages" class="mw-list-item"><a href="/wiki/Speciaal:NieuwePaginas"><span>Nieuwe artikelen</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Speciaal:Willekeurig" title="Een willekeurige pagina bekijken [x]" accesskey="x"><span>Willekeurige pagina</span></a></li> </ul> </div> </div> <div id="p-navigation2" class="vector-menu mw-portlet mw-portlet-navigation2" > <div class="vector-menu-heading"> Informatie </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-portal" class="mw-list-item"><a href="/wiki/Portaal:Gebruikersportaal" title="Informatie over het project: wat u kunt doen, waar u dingen kunt vinden"><span>Gebruikersportaal</span></a></li><li id="n-Snelcursus" class="mw-list-item"><a href="/wiki/Wikipedia:Snelcursus"><span>Snelcursus</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/Portaal:Hulp_en_beheer" title="Hulpinformatie over deze wiki"><span>Hulp en contact</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Hoofdpagina" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="de vrije encyclopedie" src="/static/images/mobile/copyright/wikipedia-tagline-nl.svg" width="120" height="13" style="width: 7.5em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Speciaal:Zoeken" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Doorzoek Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Zoeken</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Doorzoek Wikipedia" aria-label="Doorzoek Wikipedia" autocapitalize="sentences" title="Doorzoek Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Speciaal:Zoeken"> </div> <button class="cdx-button cdx-search-input__end-button">Zoeken</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Persoonlijke hulpmiddelen"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Uiterlijk"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="De lettergrootte, breedte en kleur van de pagina wijzigen" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Uiterlijk" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Uiterlijk</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_nl.wikipedia.org&uselang=nl" class=""><span>Doneren</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Speciaal:GebruikerAanmaken&returnto=Objectgeori%C3%ABnteerd" title="Registreer u vooral en meld u aan. Dit is echter niet verplicht." class=""><span>Account aanmaken</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Speciaal:Aanmelden&returnto=Objectgeori%C3%ABnteerd" title="U wordt van harte uitgenodigd om aan te melden, maar dit is niet verplicht [o]" accesskey="o" class=""><span>Aanmelden</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Meer opties" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Persoonlijke hulpmiddelen" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Persoonlijke hulpmiddelen</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="Gebruikersmenu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_nl.wikipedia.org&uselang=nl"><span>Doneren</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Speciaal:GebruikerAanmaken&returnto=Objectgeori%C3%ABnteerd" title="Registreer u vooral en meld u aan. Dit is echter niet verplicht."><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Account aanmaken</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Speciaal:Aanmelden&returnto=Objectgeori%C3%ABnteerd" title="U wordt van harte uitgenodigd om aan te melden, maar dit is niet verplicht [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Aanmelden</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pagina's voor uitgelogde redacteuren <a href="/wiki/Help:Inleiding" aria-label="Meer leren over bewerken"><span>meer lezen</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Speciaal:MijnBijdragen" title="Bijdragen IP-adres [y]" accesskey="y"><span>Bijdragen</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Speciaal:MijnOverleg" title="Overlegpagina van de anonieme gebruiker van dit IP-adres [n]" accesskey="n"><span>Overleg</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Inhoud" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Inhoud</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">naar zijbalk verplaatsen</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">verbergen</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Top</div> </a> </li> <li id="toc-Geschiedenis" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Geschiedenis"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Geschiedenis</span> </div> </a> <ul id="toc-Geschiedenis-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Concept" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Concept"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Concept</span> </div> </a> <button aria-controls="toc-Concept-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Concept-subkopje inklappen</span> </button> <ul id="toc-Concept-sublist" class="vector-toc-list"> <li id="toc-Overerving_en_polymorfisme" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Overerving_en_polymorfisme"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Overerving en polymorfisme</span> </div> </a> <ul id="toc-Overerving_en_polymorfisme-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Inkapselen_van_data_(encapsulatie)" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Inkapselen_van_data_(encapsulatie)"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Inkapselen van data (encapsulatie)</span> </div> </a> <ul id="toc-Inkapselen_van_data_(encapsulatie)-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Programmeertalen" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Programmeertalen"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Programmeertalen</span> </div> </a> <ul id="toc-Programmeertalen-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Objectgeoriënteerde_gebruikersinterface" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Objectgeoriënteerde_gebruikersinterface"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Objectgeoriënteerde gebruikersinterface</span> </div> </a> <ul id="toc-Objectgeoriënteerde_gebruikersinterface-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Zie_ook" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Zie_ook"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Zie ook</span> </div> </a> <ul id="toc-Zie_ook-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Referenties" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Referenties"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Referenties</span> </div> </a> <ul id="toc-Referenties-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Inhoud" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Inhoudsopgave omschakelen" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Inhoudsopgave omschakelen</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Objectgeoriënteerd</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Ga naar een artikel in een andere taal. Beschikbaar in 7 talen" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-7" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">7 talen</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D8%AC%D9%8A%D9%87_%D9%83%D8%A7%D8%A6%D9%86%D9%8A" title="توجيه كائني – Arabisch" lang="ar" hreflang="ar" data-title="توجيه كائني" data-language-autonym="العربية" data-language-local-name="Arabisch" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Objektorientering" title="Objektorientering – Deens" lang="da" hreflang="da" data-title="Objektorientering" data-language-autonym="Dansk" data-language-local-name="Deens" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Objektorientierung" title="Objektorientierung – Duits" lang="de" hreflang="de" data-title="Objektorientierung" data-language-autonym="Deutsch" data-language-local-name="Duits" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Object-orientation" title="Object-orientation – Engels" lang="en" hreflang="en" data-title="Object-orientation" data-language-autonym="English" data-language-local-name="Engels" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91" title="オブジェクト指向 – Japans" lang="ja" hreflang="ja" data-title="オブジェクト指向" data-language-autonym="日本語" data-language-local-name="Japans" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Obiektowo%C5%9B%C4%87" title="Obiektowość – Pools" lang="pl" hreflang="pl" data-title="Obiektowość" data-language-autonym="Polski" data-language-local-name="Pools" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Orienta%C3%A7%C3%A3o_a_objetos" title="Orientação a objetos – Portugees" lang="pt" hreflang="pt" data-title="Orientação a objetos" data-language-autonym="Português" data-language-local-name="Portugees" class="interlanguage-link-target"><span>Português</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q2011845#sitelinks-wikipedia" title="Taalkoppelingen bewerken" class="wbc-editpage">Koppelingen bewerken</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Naamruimten"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Objectgeori%C3%ABnteerd" title="Inhoudspagina bekijken [c]" accesskey="c"><span>Artikel</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Overleg:Objectgeori%C3%ABnteerd" rel="discussion" title="Overleg over deze pagina [t]" accesskey="t"><span>Overleg</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Taalvariant wijzigen" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Nederlands</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Weergaven"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Objectgeori%C3%ABnteerd"><span>Lezen</span></a></li><li id="ca-ve-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&veaction=edit" title="Deze pagina bewerken [v]" accesskey="v"><span>Bewerken</span></a></li><li id="ca-edit" class="collapsible vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=edit" title="Broncode van deze pagina bewerken [e]" accesskey="e"><span>Brontekst bewerken</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=history" title="Eerdere versies van deze pagina [h]" accesskey="h"><span>Geschiedenis weergeven</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Paginahulpmiddelen"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Hulpmiddelen" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Hulpmiddelen</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Hulpmiddelen</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">naar zijbalk verplaatsen</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">verbergen</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="Meer opties" > <div class="vector-menu-heading"> Handelingen </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Objectgeori%C3%ABnteerd"><span>Lezen</span></a></li><li id="ca-more-ve-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&veaction=edit" title="Deze pagina bewerken [v]" accesskey="v"><span>Bewerken</span></a></li><li id="ca-more-edit" class="collapsible vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=edit" title="Broncode van deze pagina bewerken [e]" accesskey="e"><span>Brontekst bewerken</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=history"><span>Geschiedenis weergeven</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> Algemeen </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Speciaal:VerwijzingenNaarHier/Objectgeori%C3%ABnteerd" title="Lijst met alle pagina's die naar deze pagina verwijzen [j]" accesskey="j"><span>Links naar deze pagina</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Speciaal:RecenteWijzigingenGelinkt/Objectgeori%C3%ABnteerd" rel="nofollow" title="Recente wijzigingen in pagina's waar deze pagina naar verwijst [k]" accesskey="k"><span>Gerelateerde wijzigingen</span></a></li><li id="t-upload" class="mw-list-item"><a href="//commons.wikimedia.org/wiki/Special:UploadWizard?uselang=nl" title="Bestanden uploaden [u]" accesskey="u"><span>Bestand uploaden</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Speciaal:SpecialePaginas" title="Lijst met alle speciale pagina's [q]" accesskey="q"><span>Speciale pagina's</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&oldid=67919104" title="Permanente koppeling naar deze versie van deze pagina"><span>Permanente koppeling</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=info" title="Meer informatie over deze pagina"><span>Paginagegevens</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Speciaal:Citeren&page=Objectgeori%C3%ABnteerd&id=67919104&wpFormIdentifier=titleform" title="Informatie over hoe u deze pagina kunt citeren"><span>Deze pagina citeren</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Speciaal:UrlShortener&url=https%3A%2F%2Fnl.wikipedia.org%2Fwiki%2FObjectgeori%25C3%25ABnteerd"><span>Verkorte URL verkrijgen</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Speciaal:QrCode&url=https%3A%2F%2Fnl.wikipedia.org%2Fwiki%2FObjectgeori%25C3%25ABnteerd"><span>QR-code downloaden</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Afdrukken/exporteren </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=Speciaal:Boek&bookcmd=book_creator&referer=Objectgeori%C3%ABnteerd"><span>Boek aanmaken</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Speciaal:DownloadAsPdf&page=Objectgeori%C3%ABnteerd&action=show-download-screen"><span>Downloaden als PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&printable=yes" title="Printvriendelijke versie van deze pagina [p]" accesskey="p"><span>Afdrukversie</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In andere projecten </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q2011845" title="Koppeling naar item in verbonden gegevensrepository [g]" accesskey="g"><span>Wikidata-item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Paginahulpmiddelen"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Uiterlijk"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Uiterlijk</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">naar zijbalk verplaatsen</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">verbergen</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">Uit Wikipedia, de vrije encyclopedie</div> </div> <div id="contentSub"><div id="mw-content-subtitle"><span class="mw-redirectedfrom">(Doorverwezen vanaf <a href="/w/index.php?title=Objectgeori%C3%ABnteerde_programmeertaal&redirect=no" class="mw-redirect" title="Objectgeoriënteerde programmeertaal">Objectgeoriënteerde programmeertaal</a>)</span></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="nl" dir="ltr"><p><b>Objectgeoriënteerd</b>, vaak afgekort tot <b>OO</b> als afkorting voor het Engelse <i>object-oriented</i>, is een <a href="/wiki/Programmeerparadigma" title="Programmeerparadigma">paradigma</a> dat gebruikt wordt bij het <i>objectgeoriënteerd programmeren</i> en de <i>objectgeoriënteerde opslag</i> van data. Bij deze benadering wordt een <a href="/wiki/Systeem_(systeemtheorie)" title="Systeem (systeemtheorie)">systeem</a> opgebouwd uit <a href="/wiki/Object_(informatica)" title="Object (informatica)">objecten</a>. </p><p>Eenvoudig gezegd bestaat een object uit bepaalde gegevens en de programmatuur die gebruikt wordt om die gegevens te verwerken. Bij voorkeur zijn die gegevens uitsluitend te benaderen via de bijbehorende programmatuur. Een bestand kan bijvoorbeeld als object worden gedefinieerd, waarbij de gebruiker van het object slechts lees- en schrijfopdrachten kan geven, en interne gegevens zoals de "handle" van het bestand aan het zicht worden onttrokken. Kenmerkend voor objecten is ook dat zij in een hiërarchisch verband tot elkaar kunnen staan: zo is een invoerbestand een <i>soort</i> bestand. </p><p>Zuiver technisch biedt objectgeoriënteerd programmeren <i>niet</i> de mogelijkheid om een nieuw soort toepassingen te implementeren. Het dient uitsluitend om programma's beter te structureren, met het oog op de overzichtelijkheid, onderhoudbaarheid en herbruikbaarheid van componenten. Als dusdanig is het objectgeoriënteerde paradigma een opvolger van <a href="/wiki/Gestructureerd_programmeren" title="Gestructureerd programmeren">gestructureerd programmeren</a>. Gestructureerd programmeren heeft veel klein- en middelschalige softwareprojecten tot een goed einde helpen brengen, maar bleek minder succesvol bij de grootschalige projecten die gebruikelijker werden tegen het einde van de jaren 1980.<sup id="cite_ref-Schach_1-0" class="reference"><a href="#cite_note-Schach-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> </p><p>Het objectgeoriënteerde paradigma kende een opmars in het begin van de <a href="/wiki/1990-1999" title="1990-1999">jaren 90</a>. Vele talen ondersteunen tegenwoordig objectgeoriënteerd programmeren. </p><p>Belangrijke voorzieningen in het objectgeoriënteerd programmeren zijn: </p> <ul><li>Informatie verbergen: het kunnen verbergen van de interne werking van objecten, waarmee modulariteit afdwingbaar wordt.</li> <li><a href="/wiki/Modulariteit" title="Modulariteit">Modulariteit</a>: programma's bestaan uit onderdelen die onafhankelijk kunnen worden aangepast zolang hun <a href="/wiki/Interface" title="Interface">interface</a> hetzelfde kan blijven; zo kan programmatuur gemakkelijker hergebruikt en uitgebreid worden.</li> <li><a href="/wiki/Overerving_(informatica)" title="Overerving (informatica)">Overerving</a>: de definitie van een <a href="/wiki/Klasse_(informatica)" title="Klasse (informatica)">klasse</a> als een uitbreiding of aanpassing van een andere klasse.</li> <li><a href="/wiki/Polymorfisme_(informatica)" title="Polymorfisme (informatica)">Polymorfisme</a>: bij het aanroepen van een functie kan gekozen worden uit verschillende implementaties, vaak pas tijdens programmauitvoering.</li></ul> <p>De eerste twee voorzieningen zijn niet specifiek voor objectoriëntatie, maar worden ook gebruikt in modulaire programmeertalen zoals Modula, Ada en CLU. De specifieke kenmerken van overerving en polymorfisme zijn tegelijk de meest controversiële. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Geschiedenis">Geschiedenis</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&veaction=edit&section=1" title="Bewerk dit kopje: Geschiedenis" class="mw-editsection-visualeditor"><span>bewerken</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=edit&section=1" title="De broncode bewerken van de sectie: Geschiedenis"><span>brontekst bewerken</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Het objectgeoriënteerde programmeerparadigma werd voor het eerst gebruikt in de programmeertaal <a href="/wiki/Simula" title="Simula">Simula</a> van <a href="/wiki/Ole-Johan_Dahl" title="Ole-Johan Dahl">Ole-Johan Dahl</a> en <a href="/wiki/Kristen_Nygaard_(computerpionier)" title="Kristen Nygaard (computerpionier)">Kristen Nygaard</a> in de jaren 60 van de 20e eeuw. Deze taal was een uitbreiding van de <a href="/wiki/Imperatief_programmeren" title="Imperatief programmeren">imperatieve</a> taal <a href="/wiki/Algol-60" class="mw-redirect" title="Algol-60">Algol</a> met objectgeoriënteerde elementen. </p><p>Een tweede, veel radicaler objectgeoriënteerde taal is <a href="/wiki/Smalltalk_(programmeertaal)" title="Smalltalk (programmeertaal)">Smalltalk</a>, ontwikkeld in de jaren 70 bij <a href="/wiki/Xerox" title="Xerox">Xerox</a> <a href="/wiki/Palo_Alto_Research_Center" title="Palo Alto Research Center">PARC</a>. Smalltalk is veel populairder geworden dan Simula, vooral voor <a href="/w/index.php?title=Prototyping&action=edit&redlink=1" class="new" title="Prototyping (de pagina bestaat niet)">prototyping</a>; voor ontwikkeling van productiesoftware is de taal minder geschikt. </p><p>Objectgeoriënteerd programmeren kwam in een stroomversnelling terecht rond 1986, wat vooral bleek uit de ruime belangstelling voor twee conferenties: <i>de Object Oriented Programming Workshop</i> van <a href="/wiki/IBM" title="IBM">IBM</a> en de <i>1st International Conference on Object-Oriented Programming Languages, Systems and Applications</i> (OOPSLA) te <a href="/wiki/Portland_(Oregon)" title="Portland (Oregon)">Portland (Oregon)</a>. Die plotse belangstelling had verschillende redenen, maar de belangrijkste was de opkomst van <a href="/wiki/Werkstation" title="Werkstation">werkstations</a>. De <a href="/wiki/Grafische_gebruikersomgeving" title="Grafische gebruikersomgeving">grafische gebruikersomgeving</a> van werkstations stelt de programmeur voor specifieke problemen waarop objectgeoriënteerd programmeren een antwoord biedt.<sup id="cite_ref-Blair_2-0" class="reference"><a href="#cite_note-Blair-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> </p><p>De eerste objectgeoriënteerde taal die grootschalige aanhang verwierf onder professionele softwareontwikkelaars was <a href="/wiki/C%2B%2B" title="C++">C++</a>, ook tegenwoordig een van de meest gebruikte programmeertalen. Naast C++ ontstonden in de jaren 80 ook <a href="/wiki/Object_Pascal" title="Object Pascal">Object Pascal</a>, <a href="/wiki/Objective_C" class="mw-redirect" title="Objective C">Objective C</a> en andere veelgebruikte objectgeoriënteerde talen. De principes vonden zeer breed ingang in de ontwikkelpraktijk. </p><p>Van de nieuwere objectgeoriënteerde talen zijn de meest gebruikte <a href="/wiki/Java_(programmeertaal)" title="Java (programmeertaal)">Java</a> (bekend vanaf 1995) en <a href="/wiki/C_Sharp" title="C Sharp">C#</a> (vanaf 2001). </p> <div class="mw-heading mw-heading2"><h2 id="Concept">Concept</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&veaction=edit&section=2" title="Bewerk dit kopje: Concept" class="mw-editsection-visualeditor"><span>bewerken</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=edit&section=2" title="De broncode bewerken van de sectie: Concept"><span>brontekst bewerken</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In objectgeoriënteerde talen die gebruik maken van strenge <a href="/wiki/Datatype" title="Datatype">typering</a> worden objecten gemodelleerd als elementen ("instanties") van een <a href="/wiki/Klasse_(informatica)" title="Klasse (informatica)">klasse</a>. </p><p>Een klasse is een blauwdruk voor objecten. Een klasse definieert: </p> <ol><li><a href="/wiki/Attribuut_(informatica)" title="Attribuut (informatica)">attributen</a> om de eigenschappen en toestand van objecten mee vast te leggen;</li> <li><a href="/wiki/Methode_(objectori%C3%ABntatie)" title="Methode (objectoriëntatie)">methoden</a>: <a href="/wiki/Functie_(informatica)" class="mw-redirect" title="Functie (informatica)">functies</a> om die toestand uit te lezen of aan te passen, waarmee elk aan het object toe te rekenen gedrag wordt gespecificeerd; berekeningen, bewerkingen, acties, replieken etc.</li></ol> <p>Met een speciale <i>constructor</i>-functie kunnen objecten worden <i>geïnstantieerd</i>. Elk object heeft zijn eigen waarden van eigenschappen en toestand. </p><p>Deze aanpak doet natuurlijk aan omdat we op een vergelijkbare manier over de wereld denken. Bijvoorbeeld: de tafel waaraan u nu zit kunnen we beschouwen als een <i>object</i> van de <i>klasse</i> tafel; een specifieke <i>cirkel</i> in de <a href="/wiki/Meetkunde" title="Meetkunde">meetkunde</a> als een object van de klasse cirkel. </p><p>Als we in een programma een tafel of een cirkel nodig hebben, kunnen we die als klassen definiëren. Attributen zullen bijvoorbeeld de plaats van de tafel, of cirkel, vastleggen; methoden kunnen bijvoorbeeld het object verplaatsen of bepalen of een gegeven ander object zich erop bevindt. </p> <div class="mw-heading mw-heading3"><h3 id="Overerving_en_polymorfisme">Overerving en polymorfisme</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&veaction=edit&section=3" title="Bewerk dit kopje: Overerving en polymorfisme" class="mw-editsection-visualeditor"><span>bewerken</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=edit&section=3" title="De broncode bewerken van de sectie: Overerving en polymorfisme"><span>brontekst bewerken</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Een van de krachtige instrumenten van OO is de mogelijkheid tot <a href="/w/index.php?title=Hi%C3%ABrarchische_classificatie&action=edit&redlink=1" class="new" title="Hiërarchische classificatie (de pagina bestaat niet)">hiërarchische classificatie</a>. Een superklasse op het hoogste niveau kan in meerdere niveaus opgesplitst worden in lagere klassen. Daarbij 'erft' elke klasse op het lagere niveau de attributen en methoden van de klassen op het niveau boven de klasse. Dat mechanisme noemen we <a href="/wiki/Overerving_(informatica)" title="Overerving (informatica)">overerving</a> (inheritance). </p><p>Overerving laat ook toe <i>varianten</i> van klassen te maken. We spreken dan van basis- en specifiekere klassen. In sommige situaties kan de basisklasse aangeven welke operaties mogelijk zijn op een object, terwijl een specifieke klasse een specifieke implementatie van de operatie geeft. Zo kan een basisklasse <code>figuur</code> gemaakt worden, met methoden zoals"<code>hoogte</code>, <code>breedte</code>, <code>spiegel</code> en <code>draai</code>. Daarvan kunnen specifieke implementaties worden gemaakt zoals <code>cirkel</code> en <code>vierkant</code>, die misschien heel verschillend werken (<code>spiegel</code> en <code>draai</code> hoeven bijvoorbeeld voor een cirkel niets te doen), terwijl code die een <code>figuur</code> gebruikt daar niets van hoeft te weten. Dit concept wordt <a href="/wiki/Polymorfisme_(informatica)" title="Polymorfisme (informatica)">polymorfisme</a> genoemd. </p> <div class="mw-heading mw-heading3"><h3 id="Inkapselen_van_data_(encapsulatie)"><span id="Inkapselen_van_data_.28encapsulatie.29"></span>Inkapselen van data (encapsulatie)</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&veaction=edit&section=4" title="Bewerk dit kopje: Inkapselen van data (encapsulatie)" class="mw-editsection-visualeditor"><span>bewerken</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=edit&section=4" title="De broncode bewerken van de sectie: Inkapselen van data (encapsulatie)"><span>brontekst bewerken</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Objecten vormen de koppeling tussen enerzijds gegevens en anderzijds bewerkingen die op die gegevens worden uitgevoerd. We spreken van <a href="/wiki/Encapsulatie" class="mw-redirect" title="Encapsulatie">inkapselen</a> of <i>encapsulatie</i> als andere programma-eenheden de gegevens niet rechtstreeks aanspreken, maar wel via de tussenlaag van een bewerking. Programmeurs die een object gebruiken hoeven zich slechts bewust te zijn van de interface van dat object, terwijl de implementatie alleen een zaak is van de programmeurs die het object ontwikkelen.<sup id="cite_ref-Stiller_3-0" class="reference"><a href="#cite_note-Stiller-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> </p><p>Bij klasse-gebaseerde talen betekent encapsulatie dat de programmeur die een object van een klasse gebruikt, niet hoeft na te denken over de interne werking van die klasse. Een cirkelklasse kan bijvoorbeeld zijn <a href="/wiki/Attribuut_(informatica)" title="Attribuut (informatica)">attribuut</a> "<code>diameter</code>" niet publiek maken maar de verschillende <a href="/wiki/Methode_(objectori%C3%ABntatie)" title="Methode (objectoriëntatie)">methoden</a> om de oppervlakte op te vragen of de diameter te veranderen wel. De cirkelklasse zou dan eenvoudig aangepast kunnen worden om toch in plaats van de diameter intern de straal op te slaan, zonder dat de gebruiker van de cirkelklasse dit hoeft te weten: de publieke toegang tot de klasse is immers niet veranderd. </p> <div class="mw-heading mw-heading2"><h2 id="Programmeertalen">Programmeertalen</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&veaction=edit&section=5" title="Bewerk dit kopje: Programmeertalen" class="mw-editsection-visualeditor"><span>bewerken</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=edit&section=5" title="De broncode bewerken van de sectie: Programmeertalen"><span>brontekst bewerken</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>C-achtige syntaxis <ul><li><a href="/wiki/C%2B%2B" title="C++">C++</a></li> <li><a href="/wiki/C_sharp" class="mw-redirect" title="C sharp">C#</a></li> <li><a href="/wiki/Java_(programmeertaal)" title="Java (programmeertaal)">Java</a></li> <li><a href="/wiki/Objective-C" title="Objective-C">Objective-C</a></li></ul></li> <li>Pascal-achtige syntaxis <ul><li><a href="/wiki/Oberon_(programmeertaal)" title="Oberon (programmeertaal)">Oberon</a> (<a href="/wiki/Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a>)</li> <li><a href="/wiki/Object_Pascal" title="Object Pascal">Object Pascal</a> (<a href="/wiki/Borland_(softwarebedrijf)" title="Borland (softwarebedrijf)">Borland</a>, Embarcadero)</li></ul></li> <li>Diversen <ul><li><a href="/wiki/Smalltalk_(programmeertaal)" title="Smalltalk (programmeertaal)">Smalltalk</a> de eerste echte OO-programmeertaal.</li> <li><a href="/wiki/Eiffel_(programmeertaal)" title="Eiffel (programmeertaal)">Eiffel</a></li> <li><a href="/wiki/Swift_(programmeertaal)" title="Swift (programmeertaal)">Swift</a>, <a href="/wiki/Apple_Inc." title="Apple Inc.">Apples</a> eigen programmeertaal, uitgebracht op de <a href="/wiki/WWDC" class="mw-redirect" title="WWDC">WWDC</a> van 2014.</li></ul></li> <li><a href="/wiki/CODESYS" title="CODESYS">CODESYS</a></li> <li>Objectgeoriënteerde scriptingtalen <ul><li><a href="/wiki/Perl_(programmeertaal)" title="Perl (programmeertaal)">Perl</a></li> <li><a href="/wiki/Python_(programmeertaal)" title="Python (programmeertaal)">Python</a></li> <li><a href="/wiki/Ruby_(programmeertaal)" title="Ruby (programmeertaal)">Ruby</a></li> <li><a href="/wiki/PHP" title="PHP">PHP</a></li> <li><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a></li></ul></li></ul> <div class="mw-heading mw-heading2"><h2 id="Objectgeoriënteerde_gebruikersinterface"><span id="Objectgeori.C3.ABnteerde_gebruikersinterface"></span>Objectgeoriënteerde gebruikersinterface</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&veaction=edit&section=6" title="Bewerk dit kopje: Objectgeoriënteerde gebruikersinterface" class="mw-editsection-visualeditor"><span>bewerken</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=edit&section=6" title="De broncode bewerken van de sectie: Objectgeoriënteerde gebruikersinterface"><span>brontekst bewerken</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Een geheel ander soort objectgeoriënteerdheid treft men aan in de objectgeoriënteerde gebruikersinterface. Dit is een vorm van een <a href="/wiki/Grafische_gebruikersomgeving" title="Grafische gebruikersomgeving">grafische gebruikersomgeving</a> waarbij de nadruk niet ligt op de programma's die gebruikt worden om taken uit te voeren, maar op de documenten of bestanden waarmee men werkt. De Workplace Shell van <a href="/wiki/OS/2" title="OS/2">OS/2</a> is een voorbeeld van een dergelijke interface. </p> <div class="mw-heading mw-heading2"><h2 id="Zie_ook">Zie ook</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&veaction=edit&section=7" title="Bewerk dit kopje: Zie ook" class="mw-editsection-visualeditor"><span>bewerken</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=edit&section=7" title="De broncode bewerken van de sectie: Zie ook"><span>brontekst bewerken</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Member" title="Member">Member</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="Referenties">Referenties</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&veaction=edit&section=8" title="Bewerk dit kopje: Referenties" class="mw-editsection-visualeditor"><span>bewerken</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Objectgeori%C3%ABnteerd&action=edit&section=8" title="De broncode bewerken van de sectie: Referenties"><span>brontekst bewerken</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="reflist" style="list-style-type: decimal;"><div class="mw-references-wrap"><ol class="references"> <li id="cite_note-Schach-1"><span class="mw-cite-backlink"><a href="#cite_ref-Schach_1-0">↑</a></span> <span class="reference-text">Stephen R. Schach, hoofdstuk 9 in "Classical and Object-Oriented Software Engineering," 3de internationale uitgave, McGraw-Hill 1996.</span> </li> <li id="cite_note-Blair-2"><span class="mw-cite-backlink"><a href="#cite_ref-Blair_2-0">↑</a></span> <span class="reference-text">Gordon Blair, John Gallagher, David Hutchison en Doug Shepherd (reds.), "Object-Oriented Languages, Systems and Applications," Pitman 1991.</span> </li> <li id="cite_note-Stiller-3"><span class="mw-cite-backlink"><a href="#cite_ref-Stiller_3-0">↑</a></span> <span class="reference-text">Evelyn Stiller en Cathie LeBlanc, "Objectgeoriënteerde Software Engineering - een projectmatige aanpak," Pearson 2002, vertaling van "Project-Based Software Engineering, an object-oriented approach"</span> </li> </ol></div></div> <!-- NewPP limit report Parsed by mw‐web.eqiad.main‐75c465f4c6‐hwk9f Cached time: 20241125093632 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.032 seconds Real time usage: 0.041 seconds Preprocessor visited node count: 154/1000000 Post‐expand include size: 146/2097152 bytes Template argument size: 0/2097152 bytes Highest expansion depth: 5/100 Expensive parser function count: 0/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 1483/5000000 bytes Lua time usage: 0.002/10.000 seconds Lua memory usage: 586363/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 17.476 1 Sjabloon:References 100.00% 17.476 1 -total --> <!-- Saved in parser cache with key nlwiki:pcache:7643:|#|:idhash:canonical and timestamp 20241125093632 and revision id 67919104. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1&useformat=desktop" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Overgenomen van "<a dir="ltr" href="https://nl.wikipedia.org/w/index.php?title=Objectgeoriënteerd&oldid=67919104">https://nl.wikipedia.org/w/index.php?title=Objectgeoriënteerd&oldid=67919104</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Categorie:Alles" title="Categorie:Alles">Categorie</a>: <ul><li><a href="/wiki/Categorie:Objectgeori%C3%ABnteerd_programmeren" title="Categorie:Objectgeoriënteerd programmeren">Objectgeoriënteerd programmeren</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> Deze pagina is voor het laatst bewerkt op 3 aug 2024 om 22:26.</li> <li id="footer-info-copyright">De tekst is beschikbaar onder de licentie <a rel="nofollow" class="external text" href="//creativecommons.org/licenses/by-sa/4.0/deed.nl">Creative Commons Naamsvermelding/Gelijk delen</a>, er kunnen aanvullende voorwaarden van toepassing zijn. Zie de <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use/nl">gebruiksvoorwaarden</a> voor meer informatie.<br /> Wikipedia® is een geregistreerd handelsmerk van de <a rel="nofollow" class="external text" href="https://www.wikimediafoundation.org">Wikimedia Foundation, Inc.</a>, een organisatie zonder winstoogmerk.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacybeleid</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia">Over Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:Algemeen_voorbehoud">Disclaimers</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Gedragscode</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Ontwikkelaars</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/nl.wikipedia.org">Statistieken</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookieverklaring</a></li> <li id="footer-places-mobileview"><a href="//nl.m.wikipedia.org/w/index.php?title=Objectgeori%C3%ABnteerd&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobiele weergave</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-59bbd5969d-qg95r","wgBackendResponseTime":150,"wgPageParseReport":{"limitreport":{"cputime":"0.032","walltime":"0.041","ppvisitednodes":{"value":154,"limit":1000000},"postexpandincludesize":{"value":146,"limit":2097152},"templateargumentsize":{"value":0,"limit":2097152},"expansiondepth":{"value":5,"limit":100},"expensivefunctioncount":{"value":0,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":1483,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 17.476 1 Sjabloon:References","100.00% 17.476 1 -total"]},"scribunto":{"limitreport-timeusage":{"value":"0.002","limit":"10.000"},"limitreport-memusage":{"value":586363,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-75c465f4c6-hwk9f","timestamp":"20241125093632","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Objectgeori\u00ebnteerd","url":"https:\/\/nl.wikipedia.org\/wiki\/Objectgeori%C3%ABnteerd","sameAs":"http:\/\/www.wikidata.org\/entity\/Q2011845","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q2011845","author":{"@type":"Organization","name":"Bijdragers aan Wikimedia-projecten"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2003-01-23T11:24:46Z","dateModified":"2024-08-03T21:26:03Z","headline":"paradigma dat gebruikt wordt bij het objectgeori\u00ebnteerd programmeren en de objectgeori\u00ebnteerde opslag van data"}</script> </body> </html>