Praktisch voorbeeld public/private/protected

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frontend developer

Functieomschrijving Voor Zorg van de Zaak zijn wij op zoek naar een front-end developer om de ontwikkelafdeling te versterken. We zoeken een ervaren webontwikkelaar (3+ jaar ervaring) die komt te werken in een klein team van interne en externe ontwikkelaars. Zorg van de Zaak werkt in de bedrijfsgezondheidzorg. Als je bijvoorbeeld ziek bent geworden en je kan voor een bepaalde periode niet werken dan is er een grote kans dat je met de arbodienst van Zorg van de Zaak te maken krijgt. Je maakt bijvoorbeeld een afspraak met de Arboarts. Dit doe je via een portaal. Als front-end developer ga

Bekijk vacature »

Java Custom Software Developer

Jouw rol Voor deze ‘leading edge’ technology practice zijn we op zoek naar een Senior Custom Software Developer. Echte IT-freaks die de ontwikkelingen in het vakgebied nauwkeurig volgen en weten wat er speelt. Die kunnen werken op de grens van het onmogelijke en zo onze nationale en internationale klanten een beslissende voorsprong geven in hun markt. Je adviseert over innovatie en werkt mee aan de agile ontwikkeling en implementatie van state-of-the-art oplossingen, gebaseerd op .Net, Java en/of Mendix. Het gaat vaak om nieuwe technieken, veel eindgebruikers en complexe omgevingen, waarin de lat hoog ligt. Snelheid en topkwaliteit zijn bij deze

Bekijk vacature »

Junior Java developer bij tof en energiek marketin

Functieomschrijving Als junior Java developer word je onderdeel van een team bestaande uit meerdere developers, een software tester, een product owner en een scrum master. Volgens de Agile Scrum methode werken jullie in tweewekelijkse sprints aan het optimaliseren van bestaande en het ontwikkelen van nieuwe applicaties. Binnen het team zijn er altijd medioren/senioren aanwezig waarvan je kunt leren en die jou gaan helpen bij je ontwikkeling. Zo kun je onder de vleugels van hun expertise verder uitgroeien tot een volwaardig, zelfstandige developer. Daarnaast wordt jouw persoonlijke inbreng gewaardeerd. Ze staan open voor verbetervoorstellen en vinden het juist erg fijn wanneer

Bekijk vacature »

Java / Oracle Software Ontwikkelaar

Kun jij ideeën omzetten in intuïtieve software? Adem je code en omarm je Scrum? Werk dan mee aan het succesvolle epd USER van Impulse Info Systems in Twente voor de Geestelijke Gezondheidszorg! Functie omschrijving Op de afdeling Ontwikkeling & Kwaliteit bouwen we iedere dag aan ons informatiesysteem voor de geestelijke gezondheidszorg: USER. Als ontwikkelaar ben je betrokken bij het ontwerp en maak je de oplossingen waarmee onze klanten hun tijd kunnen besteden aan het bieden van goede zorg aan cliënten. Je werkt in een scrumteam aan onze doelen. Enkele taken: Analyseer hoe we gebruikerswensen het beste kunnen implementeren Ontwikkel intuïtieve

Bekijk vacature »

Software Ontwikkelaar C#.NET

Software Ontwikkelaar C#.NET Zit het ontwikkelen van innovatieve applicaties in C#.NET, JAVA of PHP in jouw bloed en wil jij je kennis toepassen binnen uitdagende projecten in kantoorautomatisering of industrie. Dan kan MA-IT mogelijk iets voor je betekenen, aangezien wij uitbreiding zoeken in ons IT team van Software Engineer voor onze vestigingen in Deventer, Son en Gorinchem. Functie-eise Software Ontwikkelaar C#.NET Dit is wat je gaat doen Als C#, JAVA of PHP Developer ontwikkel je binnen een SCRUM omgeving, het hart van de producten die (inter)nationaal gebruikt worden. Het betreft complexe software waarbij je op een hoog abstractieniveau software ontwikkelt.

Bekijk vacature »

Mobile Web Developer

Apps om te betalen met je vingerafdruk, de rekening in de bar te delen of je huiskamer een sfeer kleurtje te geven met licht! Wil jij Mobile Apps realiseren die mensen echt raken? Apps maken die het leven van ons als gebruikers vereenvoudigen? Wij stellen onszelf ten doel dat we op elke smartphone in NL een App van onze hand kunnen aanwijzen. En jij? Wil jij dat soort gave projecten ook doen bij de Nederlandse topbedrijven? Impact met Apps Bij Sogeti Mobile zitten we super dicht op de huid van de gebruiker. We leveren gebruiksvriendelijke oplossingen op jouw favoriete kanaal.

Bekijk vacature »

PHP Developer voor state-of-the-art webapplicatie

Functieomschrijving Werk jij graag met de nieuwste technieken? Wil jij graag een bijdrage leveren aan de maatschappij? Wil jij een applicatie van scratch af aan opbouwen? Lees dan snel verder! Ontwikkelen van een PHP objectgeoriënteerde applicatie; Meedenken in de architectuur; Keuzes maken over de te gebruiken tooling; Requirements verzamelen; Ontwikkelen van nieuwe functionaliteiten; Ontwikkelen van nieuwe modules; Zo nu en dan een legacy code onderhouden. Functie-eisen HBO werk en denk niveau; Minimaal 5 jaar werkervaring als PHP ontwikkelaar (OO); Ervaring met frameworks; Je ontwikkelt clean code; Je bent communicatief vaardig. Bedrijfsomschrijving De organisatie waar je komt te werken is een

Bekijk vacature »

Software Ontwikkelaar C#.NET

Software Ontwikkelaar C#.NET Zit het ontwikkelen van innovatieve applicaties in C#.NET, JAVA of PHP in jouw bloed en wil jij je kennis toepassen binnen uitdagende projecten in kantoorautomatisering of industrie. Dan kan MA-IT mogelijk iets voor je betekenen, aangezien wij uitbreiding zoeken in ons IT team van Software Engineer voor onze vestigingen in Deventer, Son en Gorinchem. Functie-eise Software Ontwikkelaar C#.NET Dit is wat je gaat doen Als C#, JAVA of PHP Developer ontwikkel je binnen een SCRUM omgeving, het hart van de producten die (inter)nationaal gebruikt worden. Het betreft complexe software waarbij je op een hoog abstractieniveau software ontwikkelt.

Bekijk vacature »

Web Ontwikkelaar PHP, Nijmegen

Contactpersoon Roel Kavelaar rkavelaarATsearch-consult.nl 0243528815 0644949337 Organisatie Jong, gezond en sterk groeiende bedrijf dat webbased multimedia oplossingen bouwt in de omgeving Nijmegen. Het bedrijf bouwt voor klanten o.a. geavanceerde websites, webwinkels, webapplicaties en specifieke webbased software. Het bedrijf ontwikkelt en onderhoudt ook verschillende bekende Nederlandse websites. Op dit moment hebben zij een groeiende en brede klantenkring opgebouwd. Met betrekking tot programmeer-, onderhoud-, ontwerp-werkzaamheden wordt een PHP ontwikkelaar gezocht met kennis van contentmanagementsysteemen en frameworks. Locatie Nijmegen Verantwoordelijkheden (Her)Ontwerpen en (her)ontwikkelen in PHP ten behoeve van websites voor klanten, project klussen, onderhoud en specifieke klantwensen (Her)Ontwerpen en (her)ontwikkelen in PHP, PHP

Bekijk vacature »

Java backend developer voor mode branche Interne f

Functieomschrijving Je gaat hier werken aan de backend van een webportaal gebouwd in Java dat gebruikt wordt door zeer bekende mode merken. Je komt in een team met een ux designer en een senior Java developer en er zijn ook nog 2 mobile developers actief die de mobile apps voor hun rekening nemen. Je gaat werken met o.a. wicket, webservices, tomcat en angular. De functie is intern dus je ziet ook het resultaat van je werk, je gaat geen file rijden en lekker op tijd weer naar huis! Functie-eisen - Je hebt een afgeronde HBO (IT) - Je hebt goede

Bekijk vacature »

Graduate class Cyber Security

Graduate class Cyber Security - Start 1 maart 2019 CGI heeft de slagkracht en de grootte om zelfs de meest ambitieuze IT-carrières vorm te geven. Doordat wij een stabiele en groeiende organisatie zijn, kunnen wij je uitstekende kansen bieden om in een ondersteunende omgeving te werken aan projecten die daadwerkelijk impact hebben op onze wereld. Wat ga je doen Op 1 maart start jij met de Graduate Class. Met deze Cyber Security Graduate Class wil CGI investeren in jou om het belang van een goede Cyber Security kracht bij te zetten. Naast hetgeen jij hebt geleerd op je opleiding, wil

Bekijk vacature »

Java Developer / Overheidsinstelling / Utrecht

Functieomschrijving Ben jij als Java Developer toe aan een stabiele organisatie zonder commercieel doeleinde? Ga jij voor kwaliteit, collegialiteit en stabiliteit? Dan is dit jouw baan! Ontwikkelen van nieuwe en bestaande webservices; Uitbreiden van functionaliteiten binnen de producten- en dienstenportefeuille; Als het in jouw interessegebied ligt kan je betrokken worden bij het vormgeven van verantwoordingsrapportages; Werken aan gegevensuitwisseling met SOAP, ervaring hierin met Apache Synapse/Axis2 is een pre; Werken aan Java web GUI ontwikkeling, ervaring hierin met GWT, Bootstrap, Javascript, HTML en CSS is een pre; Werken met testframeworks, ervaring hierin met JUnit en Selenium is een pre; Ervaring met

Bekijk vacature »

Front-End Developer

Functieomschrijving Omdat onze opdrachtgever blijft groeien, zijn we op zoek naar een medior Front-End Developer. Je gaat deel uitmaken van het UX/UI team dat verantwoordelijk is voor webportals en -applicaties. Daarnaast werk je regelmatig samen met andere (internationale) back- en front-end teams. Jouw vertrekpunt is het prototype opgeleverd door de UX/UI Designer. Je transformeert prototypes met mooie grafische afbeeldingen in en met code. In gesprek met de backend worden alle animaties en afbeeldingen omgezet in semantisch HTML, CSS (SASS) en JavaScript. Als Front-End Developer ben je vanaf het begin van de creatie van een webapplicatie betrokken, en ontwikkelt zo de

Bekijk vacature »

Rijswijk - Java Developer - inhouse

Ben je op zoek bent naar een rol met uitdagende en afwisselende projecten, maar wil je niet gedetacheerd zitten bij een klant? Als je in een gezellig team wilt werken aan innovatieve software oplossingen, lees dan verder! Als je ervaring hebt met het werken in Java 8 en populaire frameworks zoals Spring en Hibernate en passie hebt voor innovatieve oplossingen met de nieuwste tech stack, kan dit de juiste mogelijkheid voor je zijn. Deze leider op het gebied van innovatieve software gericht op functionele IT-oplossingen in de omgeving den Haag: Java Developer 40 uur Overzicht In de rol van Java

Bekijk vacature »

Java Developer (Software Specialist)

Wat doe je als Java Developer (Software Specialist) bij TenneT? Samen met vakbroeders en softwarespecialisten, ben je verantwoordelijk voor de ontwikkelijking van o.a. een nieuw Java platform. Je begeeft je binnen een complexe en uitdagende omgeving waar creativiteit en initiatief voor nieuwe ideeën op prijs wordt gesteld. Je levert een duurzame bijdrage aan de transitie naar DevOps en Agile werken. Je ziet resultaat van je werk en draagt bij aan lange termijn oplossingen. TenneT kent een groot en complex applicatielandschap, variërend van oud en nieuw en uiteenlopend van ontwikkel tot beheerwerkzaamheden. Samen met je collega's zijn jullie de grondleggers 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

22/02/2019 14:42:53
 
- 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.