Praktisch voorbeeld public/private/protected

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

New Business Developer voor maatsoftware club OTE

Sta jij stevig in de schoenen en vind je het prettig om nieuwe zakelijke relaties aan te gaan? Zie jij jezelf als een partner in plaats van een sales type? Mooi laten we dan in contact komen! Deze is vacature is ontstaan naar aanleiding het gaat namelijk om een vervanging. Om je alvast een idee te geven, verklap ik alvast een aantal steekwoorden. Het betreft nl. een software club (circa 20 FTE) met meer dan 20 jaar bestaansrecht. Ze hebben zowel landelijke-, als kleine- accounts waarbij ze focussen om partners te helpen met bedrijfsprocessen te automatiseren. Het gaat meestal om

Bekijk vacature »

Starter/Junior Java backend Ontwikkelaar

ORGANISATIE / AFDELING Bij deze partij zoek ik een Java Software Ontwikkelaar. Het gaat hier niet om de doorsnee software ontwikkelaar. Ze zoeken iemand die de beste software op mobiliteitstechniek zal gaan maken. Samen met een man of 65 kan je best stellen dat dit een flinke partij is. Met de nadruk op verkeerskunde zijn ze de specialist als het gaat om alles wat met het verkeer te maken heeft. Een interessante positie met een hoog verantwoordelijkheidsgevoel is wat ze bieden. FUNCTIE-INFORMATIE Zo zal je als ontwikkelaar samen in teams de sprintmethodes toepassen. Er worden kleine tot grote projecten opgepakt

Bekijk vacature »

Jr. SharePoint Implementation Consultant (PMO)

Jr. SharePoint Implementation Consultant (PMO) As a Jr. SharePoint Implementation Consultant, you play an important role in helping client account teams to realize their goals. You will take a guiding role in Project and Process management process analyses, process optimization, methods and tools for our teams. From the heart of the department you are responsible for the functional and technical implementation of SharePoint based tooling created to support PMO teams to manage and run PMO processes. You guide, coordinate and support colleagues to transition to automated processes, change the way they deliver their work and keep helping them to focus

Bekijk vacature »

Java Lead developer / Micro-services die draaien o

Functieomschrijving Bouw mee aan een van de meest innovatieve development omgevingen van Nederland met ruim 8 miljoen unieke gebruikers! Ga aan de slag met Kubernetes in de Google Cloud, Apache Spark, Apache Beam, Terraform, Big Data, Java en diverse Google Cloud producten. Je bent onderdeel van een multidisciplinair team, waarin je nauw samen werkt met diverse engineers en analisten aan innovatieve oplossingen; Je denkt actief mee en adviseert over vraagstukken mbt de cloud architectuur; Je maakt ontwerpen voor nieuwe functionaliteiten en manieren voor data verwerking obv microservices architectuur; Als lead Java developer ben je ook verantwoordelijk voor het beheren en

Bekijk vacature »

.NET C# web developer gezocht met focus op gebruik

Ben je op zoek naar een baan binnen een klein softwarebedrijf? Een bedrijf met een informele, persoonlijke en familiaire sfeer? Waar je je als developer zowel richt op de back- als frontend? Wellicht dat deze vacature dan iets voor jou is. Voor een softwarebedrijf, gevestigd in het centrum van Rotterdam, zijn we momenteel op zoek naar .NET C# web developer. Dit mag iemand zijn die net van school komt, maar ook iemand die al behoorlijk wat ervaring heeft. Het bedrijf bestaat inmiddels ruim 10 jaar en en door de aanhoudende groei zijn ze opzoek naar versterking van 1 a 2

Bekijk vacature »

Medior C++ / Vision ontwikkelaar Eindhoven Groente

Organisatie & Afdeling Wereldwijd worden er duizenden soorten groenten en fruit verbouwd. Het proces om te sorteren op grootte, kleur en rijpheid is simpel, maar lang niet altijd accuraat. Door moderne technologie toe te voegen aan deze machines, kunnen wij dit proces verbeteren en nog veel meer te weten komen. De organisatie is knus, gezellig en typisch Brabants. Met een sterk team ervaren ontwikkelaars, een aantal TU afgestudeerde en een gezellige HR-dame heerst er altijd een prettige en professionele sfeer. In de pauze wordt er gezamenlijk gegeten, tafelvoetbal gespeeld en op vrijdag bakken we friet. Functie Door gebruik te maken

Bekijk vacature »

Grote onderwijs instelling zoekt Medior C# develop

Organisatie Voor een van PHIND’s business partners ben ik opzoek naar een Medior .NET C# Developer. Vijf minuten fietsen vanuit het centrum van Den Haag ligt een schitterend kantoorpand. Groot, luxueus en modern. Hier vinden we de IT afdeling van een van de grootste onderwijsinstellingen van Nederland. Hier wordt met ongeveer 400 man gewerkt aan deze instelling nog groter maken. Van die 400 FTE hebben er ongeveer 100 een IT functie. Die functies verschillen van supportmedewerkers, technische consultants, maar ook jou toekomstige afdeling: software development. Dit doe je allemaal voor de core business, namelijk, het aanbieden van opleidingen. Momenteel zijn

Bekijk vacature »

Senior PHP developer voor een internationaal famil

Functieomschrijving Vind jij het leuk om binnen een professional team aan de slag te gaan met ontwikkelen van een applicatie voor drukken, printen en afwerken? En wil je dit doen bij een internationaal familiebedrijf met echte vak specialisten? Lees dan snel verder! Door ontwikkelen van een complexe applicatie voor drukken, printen en afwerken, gebouwd in PHP i.c.m Laravel; Het verbeteren van de interne processen; De kwaliteit van de code waarborgen; Onderhouden van de huidige software; Testen van de software die wordt geleverd; Het op de hoogte blijven van de nieuwste technieken. Functie-eisen HBO werk- en denkniveau; Je hebt minimaal vier

Bekijk vacature »

PER DIRECT! Medior / Senior Drupal Developer Helmo

PER DIRECT! Medior / Senior Drupal Developer Helmond €2500 – €3700 Voor onze opdrachtgever ben ik opzoek naar een Drupal developer met minimaal 5 jaar ervaring. Onze opdrachtgever specialiseert zich al 20 jaar in het ontwerpen en ontwikkelen van websites, webshops en online applicaties is Drupal met de modernste technieken. In de afgelopen jaren heeft dit bedrijf grote stappen gemaakt waarbij zij voor verschillende A-merken grootschalige projecten realiseren. Het bedrijf is een professioneel,informeel bedrijf met een zeer open cultuur en een moderne pand waar bijna alles van glas is! Je zal werken in een team van 6 developers, 2 front-end

Bekijk vacature »

Ervaren C# (WPF) developer gezocht, omgeving Ridde

Voor een softwarebedrijf in de omgeving van Ridderkerk, dat zich richt op een specifiek branche binnen de logistieke sector, zijn we zoek naar een ervaren .NET C# developer met bij voorkeur kennis van WPF en MVVM. Het gaat hier om een bedrijf van circa 20 mensen met een informele leuke bedrijfscultuur en korte lijnen. Er werken meerdere .NET developers maar het team waarbinnen je komt te werken bestaat uit 3 .NET developers. Het product waar je aan komt te werken is bedrijfskritisch en wordt 24/7 gebruikt. Het is een innovatief product dat recentelijk in de markt is gezet maar waar

Bekijk vacature »

OutSystems developer gezocht voor zeer vernieuwend

Functieomschrijving Heb jij kennis van databases, kun jij programmeren en wil jij een nieuwe techniek leren genaamd Outsystems? Ben jij leergierig en toe aan een nieuwe uitdaging? Reageer dan direct! Spreken met gebruikers en keyusers om te begrijpen hoe de processen lopen; Ontwikkelen en bouwen in Outsystems; Verantwoordelijk voor het hele traject van functioneel ontwerpen tot de oplevering; Contact houden met de business over de technische haalbaarheid van oplossingen; Meedenken over systeemarchitectuur; Deelname aan projecten. Functie-eisen Aantoonbare ervaring met of kennis van OutSystems of Mendix; Kennis van Oracle, PL SQL is een sterke pre; Ervaring in het vertalen van requirements

Bekijk vacature »

Lead .NET developer met ervaring in e-commerce

Vrijheid , Korte lijnen , Modern en Hip zonder Hiërarchieën. Dit is een korte beschrijving hoe de bedrijfscultuur er van binnen uit ziet. Voor deze groeiende organisatie in Utrecht ben ik op zoek naar een gezellige en communicatief vaardige Lead software developer met meer dan 5 jaar C# / .Net ervaring, Je gaat werken bij een organisatie dat zich voornamelijk bezig houdt met het ontwikkelen van maatwerk software die zij geheel zelf ontwerpen en aanleveren bij grote klanten. Denk hierbij aan gemeentes, Universiteiten , Ziekenhuizen en tal van andere sectoren. Flexibiliteit is belangrijk omdat de ontwikkelaars gewend zijn om vrijheid

Bekijk vacature »

Senior .Net Developer Financiële sector Azure

Senior .Net Developer Financiële Sector Azure & Xamarin Wat ga je doen? Als senior .Net devloper ga jij aan de slag binnen een platte organisatie die software oplossingen ontwikkelt voor financiële instellingen. Heel het bedrijf werkt uit één en hetzelfde pakket die software levert op aanvraag van de klanten. Zo ontwikkelen ze bijvoorbeeld software die inzicht geeft in de klant zijn kosten, uitgaven, facturen, uren werknemers en aandelen. Een paar grote klanten zijn ABN Amro, Nationale Nederlanden, CZ, Achmea en Delta Lloyd. Je zal hier voornamelijk aan de slag gaan met C#, ASP.NET, Azure en Xamarin. Wat wordt jou geboden?

Bekijk vacature »

Java developer die intern grote projecten wil doen

Functieomschrijving Vind jij het leuk om applicaties te ontwikkelen voor grote bekende bedrijven? Word jij enthousiast van de nieuwste technieken op het gebied van Java? Vind je het leuk om te werken bij een bedrijf dat voor 95% uit developers, testers en informatieanalisten bestaat? Reageer dan meteen! Als Java Developer ben je onder andere verantwoordelijk voor: Ontwikkelen van software in Java (maatwerk); Integreren met andere software; Bouwen van regressietesten; In een Scrumteam samenwerken met teamgenoten; Indien gewenst is er in overleg met de teamleden de mogelijkheid tot sparren met klanten over problemen en oplossingen. Functie-eisen Als Java specialist wordt het

Bekijk vacature »

Junior PHP developer Maatwerkplatform

Organisatie De business partner waarmee wij in contact staan is gevestigd in Lelystand en marktleider in hun niche. Naast dat het kantoor van alle gemakken is voorzien zit het op een locatie die ook nog is gemakkelijk te bereiken is. Op dit moment bestaan zij ruim 15 jaar en hebben zo’n 50 man in dienst. Hun missie is het leven van de klanten makkelijker te maken. Hun manier van werken omschrijven zij als eenvoudig, eerlijk en eigenwijs. Zij bieden betrouwbare producten en diensten van hoge kwaliteit zodat jij er zelf iets moois van kunt maken zonder afhankelijk te zijn van

Bekijk vacature »
Lorre Mertens

Lorre Mertens

23/08/2015 17:14:04
Quote Anchor link
Beste forummers,

Ik ben OOP aan het leren. Ik snap de basis nu, maar kan me moeilijk inbeelden hoe het praktisch gebruikt kan worden.

Kan iemand een praktisch voorbeeld geven van hoe een visibility property bijvoorbeeld nuttig kan zijn?

Mvg
 
PHP hulp

PHP hulp

18/10/2018 01:55:49
 
- Ariën -
Beheerder

- Ariën -

23/08/2015 17:21:11
Quote Anchor link
Lees de OOP-tutorial van phptuts.nl eens door.
 
Lorre Mertens

Lorre Mertens

23/08/2015 17:32:05
Quote Anchor link
Dat heb ik gedaan, een goede tutorial.

Maar; het voorbeeld is daar private $username. Waarom zou je ervoor willen zorgen dat $username niet meer direct te benaderen is? Welk voordeel levert dat op? Beveiliging?
Gewijzigd op 23/08/2015 17:32:13 door Lorre Mertens
 
Wouter J

Wouter J

23/08/2015 18:04:50
Quote Anchor link
Binnen je class wil je een gecontroleerde omgeving hebben. Stel we hebben een BlogPost class die een property $tags heeft, met daarin een array van Tag classes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
class BlogPost
{
    public $tags = array();

    // ...
}
?>


Hij is nu publiek, dus niks weerhoud ons ervan om hier lekker andere waardes in te gooien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$blogPost
= new BlogPost('De titel', $content);
$blogPost->tags[] = 'een string mag niet';
$blogPost->tags[] = $blogPost; // een blog post die zichzelf als tag heeft mag ook niet echt...
?>


We hebben dus geen gecontroleerde omgeving meer binnen deze class. Wanneer we de property nu protected maken hebben weer een, voorlopig, gecontroleerde omgeving:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
class BlogPost
{
    protected $tags = array();

    public function addTag(Tag $tag)
    {

        // ... we kunnen hier bijv. ook controleren of de tag niet
        // al was toegevoegd

        $this->tags[] = $tag;
    }
}


$post = new BlogPost('De titel', $content);
$post->addTag(new Tag('phphulp'));
$post->addTag('een string'); // Error: Expected instance of Tag, got "string"
?>


We kunnen nu echter nog steeds de class extenden en verkeerde waardes toevoegen, dus maken we er private van zodat we erg echt zeker van zijn dat addTag() de enige manier is om tags toe te voegen aan de BlogPost.
 
Lorre Mertens

Lorre Mertens

23/08/2015 18:20:42
Quote Anchor link
Bedankt voor de heldere uitleg Wouter, het is nu veel duidelijker.
 

23/08/2015 22:35:28
Quote Anchor link
Ik vind PHP in vergelijking met andere talen een onhandige taal om de voordelen van OOP uit te leggen.

Het 'probleem' van een web-omgeving is dat PHP telkens eenmalig reageert op een verzoek van een browser. Dat is nogal procedureel en 'immer gerade aus'. Dan ben je ook nog eens de enige ontwikkelaar, en is het eigenlijk best wel handig dat je overal bij kunt. Private variabelen is dan gewoon onzin. Waarom zou je objecten in het geheugen vasthouden? Geen idee. Lukt ook prima zonder.

Als je deze weg blijft volgen loop je vanzelf tegen een probleem aan, ondanks hergebruik van code via include en require(_once) statements. Afhankelijk van hoe groot je programma wordt, wordt je code steeds meer spaghetti omdat je voor elk scherm weer andere code moet maken. Je kunt alleen nog maar snelheidswinst in programmeren krijgen door je eerdere code te copy-pasten. En als je dan bugs aan de ene kant gaat oplossen ontstaan ze weer aan de andere kant en vice versa. Het schiet niet op, je bent vastgelopen in je eigen denkwerk.

Om code uit elkaar te houden en gestructureerd (als een soort adresboek in familieboomstamvorm) is het concept van OOP geintroduceerd. Wat je dan doet is je code opdelen in zo klein mogelijke stukjes. Dat heeft als voordeel dat die stukjes heel overzichtelijk en foutvrij worden. Je zet die stukjes in een functie (methode) en je groepeert functies die samenwerken in een object. Als je de methoden benoemt naar wat ze doen, kan je je eigen code als een soort pseudo-code lezen, en wordt het voor jezelf volstrekt duidelijk wat de code precies in welke volgorde doet. Documentatie van code heb je dan bijna niet meer nodig.

Om variabelen binnen een naamruimte (namespace ;) qua naam en inhoud per functie gescheiden te houden, heb je een variabele scope met de keuze om variabelen private te houden. Zo van: 'die variabele is niet bedoeld om direct door andere code veranderd te worden', want dan weet je het op een gegeven moment zelf ook niet meer.

Naast dan OOP jezelf ontlast van de internals van je eigengeschreven code, geldt dat ook voor jou met code van anderen en andersom; je hoeft alleen nog maar elkaars API aan te roepen en je bent klaar. Dat vergroot de schaalbaarheid en onderhoudbaarheid van de code enorm. Daarbij worden de objecten/API's een soort zelfbedachte LEGO-stukjes, die niet als spaghetti maar met nopjes aan elkaar hangen, je kunt de code eenvoudig vervangen voor andere code die dezelfde nopjes heeft.

De praktische voorbeelden volgen vanzelf als je code schrijft.
Gewijzigd op 23/08/2015 22:37:12 door
 
Lorre Mertens

Lorre Mertens

23/08/2015 22:50:42
Quote Anchor link
Bedankt An tje, erg waardevol antwoord!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.