Classes maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer C# .NET

Functie omschrijving Software Developer C# .NET gezocht voor een dynamische organisatie! Ben jij net afgestudeerd of toe aan een volgende stap in je maatschappelijke carrière? Lees dan snel verder! Wij zijn op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die een organisatie in de regio Houten wil versterken. Je werkt in deze functie aan verschillende projecten en gaat vaak op bezoek bij klanten. In deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid verwachten. Bedrijfsprofiel Waar kom je te werken? Je komt te werken bij een organisatie dat gespecialiseerd is in

Bekijk vacature »

Front-end developer (React)

Functie Het frontend team bestaat momenteel uit 4 dedicated front-enders en is hard aan het groeien! Ook werken er diverse designers waar je veel mee schakelt. Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren, jij bent hierin de schakel tussen de eindgebruiker en de slimme backend. Je werkt in het frontend team samen met de backend teams en product owners om te zorgen dat onze applicaties een fijne gebruikerservaring opleveren. Ze werken o.a. met: React, Atomic design, Styled components, JavaScript / TypeScript, NPM, Webpack Blade templates, HTML, SCSS, Git flow. Eisen • HBO

Bekijk vacature »

T-SQL Database developer

Functie omschrijving Ben jij een ETL database specialist? Houd jij ervan om te puzzelen met Databases, Query's & Stored procedures? Zoek jij uitdaging, vrijheid en verantwoordelijkheid? Zoek dan niet verder! Wij zijn per direct op zoek naar medior en senior database developers. Je gaat werken voor een relatief klein softwarebedrijf in omgeving Tilburg. Samen met 12 collega's (allemaal techneuten), ga jij je bezig houden met het bouwen en/of onderhouden van database software. Deze software wordt internationaal ingezet voor het automatiseren van logistieke processen. Jouw werkzaamheden gaan er als volgt uit zien: Je bent in een klein team met developers, verantwoordelijk

Bekijk vacature »

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Gorinchem zijn wij op zoek naar versterking. Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met de back end werken! Bedrijfsprofiel Onze

Bekijk vacature »

3D BIM Add-on Developer

As a 3D BIM add- on developer at KUBUS, you will develop add-ons (called BCF- Managers) to the leading building information modeling (BIM) programs Revit, Navisworks, Archicad, AutoCAD and Tekla Structures. BCF Managers enable data transfer between BIM software and BIMcollab. You will work on both the front- and the back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Rotterdam! Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Binnen deze rol houdt jij je met het volgende bezig: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

.NET developer

Functie Als .NET developer wordt jij onderdeel van ons ICT team. In dit multidisciplinaire team ben jij samen met onze senior .NET ontwikkelaar en medior .NET ontwikkelaar verantwoordelijk voor ons ERP systeem. In dit systeem (Navision) ga jij leren ontwikkelen. Wij bieden jou dan ook een gedegen opleiding aan, samen met de ondersteuning van onze Senior .NET developer. Daarnaast ga jij aan de slag met ons portaal geschreven in Sharepoint. Verder ben jij verantwoordelijk voor EDI verkeer en het ontwikkelen binnen het ERP systeem en andere toepassingen en rapportages. Van jou wordt verwacht dat jij het proces goed leert kennen

Bekijk vacature »

Laravel Developer

Functie omschrijving Voor een gave organisatie in de buurt van Den Bosch zoek ik een PHP developer. Het is van belang dat je kennis/ervaring hebt met het framework Laravel. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Andere taken zijn onder andere: documentatie schrijven over applicaties/uitleg geven over software en applicaties/ klantcontact over bestaande applicaties/applicaties optimaliseren. Bedrijfsprofiel Deze organisatie zit in de regio van Den Bosch en is een klein bedrijf. Er werken circa

Bekijk vacature »

Junior Low-code ontwikkelaar gezocht omgeving Arnh

Bedrijfsomschrijving Wij zijn een dynamisch IT-bedrijf dat zich richt op het stroomlijnen van bedrijfsprocessen en het creëren van ondersteunende applicaties. Onze kracht ligt in het combineren van zakelijk inzicht met IT-expertise via gestroomlijnde procesontwerpen en wendbare applicatieontwikkeling met behulp van Low-code technologieën. Als jonge professional krijg je de kans om samen te werken met een team van 15 deskundige collega's, verspreid over nationale en internationale locaties. We bieden je een leerzame omgeving waar je je vaardigheden kunt ontwikkelen en groeien in je rol als Low-code ontwikkelaar. Word jij onze nieuwe Junior Low-code Ontwikkelaar (OutSystems)? Versterk ons team en draag bij

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer start jij in een development team met twee ervaren software ontwikkelaars. Jouw persoonlijke ontwikkeling is voor ons erg belangrijk en jij gaat dan ook meelopen met onze Senior .NET ontwikkelaar die jou met zijn kennis en ervaring een goede begeleiding kan aanbieden. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit

Bekijk vacature »

PHP Developer

Functieomschrijving Wij zijn op zoek naar een PHP Developer met Laravel ervaring! Voor een groeiende werkgever in regio Breda zijn wij op zoek naar een medior PHP developer met Laravel ervaring. Je gaat aan de slag met het ontwikkelen van maatwerk software voor klanten in een specifieke markt. Als PHP developer ben je samen met een gemotiveerd team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het innoveren van informatiesystemen voor klanten in een specifieke branche. Als software developer ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Om

Bekijk vacature »

Front end developer React Sportgames

Functie Als Front end developer ga jij aan de slag bij een gave en bekende organisatie op het gebied van sportgames. Jij gaat aan de slag in een scrumteam met 6 developers die gepassioneerd en actief bezig zijn om spelers kwalitatieve en mooie spelervaringen aan te bieden. Als scrumteam werken ze in drie wekelijkse sprints en begin je iedere ochtend met een stand-up. Als Front end developer werk jij bij deze organisatie voornamelijk met Javascript, html, css en React. Er wordt veel gebruikt gemaakt ook van C#, Docker en Kubernetes. Het team hecht veel waarde aan het leveren van hoogwaardige

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »

Traineeship Fullstack developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »
Johan Rombouts

Johan Rombouts

20/02/2015 22:24:20
Quote Anchor link
Hoi iedereen,

Ik ben nu al een tijdje bezig met me te verdiepen in OOP en Classes maken e.d.
Ik heb al menig tutorial bekeken en ook al wat werkends in elkaar gezet.
Maar ik begrijp niet goed wanneer je nu een class maakt of een class extend.
Even een voorbeeld:
Ik heb de volgende objecten:
- Artikelen (in dit geval een product)
- Onderdelen (artikel bestaat uit 1 of meer onderdelen)
- Materialen (onderdeel bestaat uit een bepaald materiaal van een bepaalde lengte)
- Bewerkingen (aan een onderdeel moeten 1 of meerdere bewerkingen worden gedaan)
- Pakbonnen (in een pakbon zitten 1 of meerdere artikelen)
- Facturen (in een factuur zitten 1 of meerdere pakbonnen)
Ik heb nog wel meerdere objecten maar laten we het hier even bij laten.
Even voor mijn beeldvorming: Is het nu de bedoeling dat ik van de bovenstaande objecten aparte classes maak? Of is het beter om bijvoorbeeld te zeggen dat onderdeel een child (extend) is van artikel?

Kan mij iemand een aanzetje geven?
Alvast bedankt.
Gewijzigd op 20/02/2015 22:25:17 door Johan Rombouts
 
PHP hulp

PHP hulp

24/11/2024 17:16:16
 
Wouter J

Wouter J

20/02/2015 23:56:55
Quote Anchor link
Extend is geen child/parent relatie in de vorm van een boomdiagram.

Er zijn in OO 2 relaties die je goed moet onthouden:
* IS_EEN
* HEEFT_EEN

Bij bijv. een webshop van een boekenwinkel kun je zeggen "een Boek IS_EEN Artikel". Je kan ook zeggen "een Boekenwinkel HEEFT_EEN Boek" (meerdere boeken, maar ten minste 1 boek). Je kunt niet zeggen "Een Boekenwinkel IS_EEN Boek" of "een Boek HEEFT_EEN Artikel" (tenzij je Artikel een andere betekenis geeft).

De IS_EEN relatie is degene waar je extend gaat gebruiken. Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
class Artikel
{
    // ... je kan je afvragen in hoeverre een artikel code heeft, een interface is wellicht beter
}

class Boek extends Artikel
{
}

?>


De HEEFT_EEN relatie duid een property aan die een andere class bevat:
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
<?php
class BoekenWinkel
{
    private $boeken = array();

    public function heeftBoek(Boek $boek)
    {

        $this->boeken[] = $boek;
    }
}


$hetWinkeltjeOpDeHoek = new BoekenWinkel();
$hetWinkeltjeOpDeHoek->heeftBoek(new Boek('Head First Design Patterns'));
$hetWinkeltjeOpDeHoek->heeftBoek(new Boek('Zomerhuis met Zwembad'));
?>


De meest gebruikte fout is het teveel gebruiken van extend. In heel veel gevallen kun je extend vervangen door een andere oplossing, die vaak veel flexibeler en correct is dan een extend. Je zou bijv. kunnen zeggen "een Admin IS_EEN User", maar als je echt naar het verschil tussen een Admin en een User kijkt dan zul je zien dat eigenlijk alleen zijn rechten anders zijn. Hetzelfde geld voor "een Moderator IS_EEN User". Daarom zou het in zo'n geval beter zijn om 1 User class te hebben, die een property "rechten" (roles) heeft, waarin staat wat ie mag en niet mag. Of beter, dat de user een groep krijgt en een andere class bepaald of die groep iets wel of niet mag.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/02/2015 00:54:50
Quote Anchor link
Wouter heeft het weer eens heel erg goed verwoordt en toch is het heel erg moeilijk om bij mensen die deze vraag stellen het kwartje te laten vallen dus waag ik nog een poging:

Als je een class schrijft die een andere class extend neem je in eerste instantie alle functionaliteiten over van de onderliggende class.

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
<?php
class A
{
    public function sayHello()
    {

        return 'Hello';
    }
}


class B extends class A
{
    // to do
}
?>


class B heeft nu EXACT dezelfde functionaliteit als class A.
Nu kunnen we deze gaan veranderen door methods (functies) te gaan overschrijven of door methods of properties (variabelen) er aan toe te voegen. We kunnen dus een 'uitgebreidere' versie van class A gaan maken:
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
18
<?php
class A
{
    public function sayHello()
    {

        return 'Hello';
    }
}


class B extends class A
{
    // uitbreiding op class A
    public function sayBye()
    {

        return 'Bye';
    }
}

?>


Vanaf nu heeft class B twee methods:
- sayHello() en
- sayBye()

Maar wanneer gebruik je dit nou? Eigenlijk alleen maar als je praat over soorten.
Ik kan zelf maar een paar voorbeeldjes noemen waarvan ik er hier één noem:

De validator
Als we een formulier maken en de gebruiker kan een aantal velden invullen dan willen we deze velden vaak valideren. Bijvoorbeeld als er een veld 'mailadres' in het formulier is dan willen we controleren of de ingevulde tekst wel voldoet aan een geldig mailadres. Een ander voorbeeld is een veld 'aantal'. Hier verwachten we uitsluitend een numerieke waarde. Hierop willen we dit veld tevens controleren (of valideren).

Zo zou je dan een basismodel validator kunnen maken. We noemen dit dan ook wel de baseclass. Daarnaast zou je van alle soorten validators een class kunnen aanmaken die de standaard functionaliteit van de baseclass overneemt door deze te extend-en:

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
18
19
20
21
22
23
24
25
26
27
<?php
class Validator
{
    public function validate($content)
    {

        return TRUE;
    }
}


class EmailValidator extends Validator
{
    // overschrijf de functie validate van de baseclass 'Validator'
    public function validate($content)
    {

        return filter_var($content, FILTER_VALIDATE_EMAIL);
    }
}


class NumericValidator extends Validator
{
    // overschrijf de functie validate van de baseclass 'Validator'
    public function validate($content)
    {

        return is_numeric($content);
    }
}

?>


In alle andere gevallen kun je beter de HEEFT-EEN gebruiken waar Wouter al over schreef. Voorbeeld:

Een klant heeft een postadres maar ook een afleveradres
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
class Address
{
    private $street;
    private $postcode;
    private $city;
    
    public function setAddress($street, $postcode, $city)
    {

        $this->street = $street;
        $this->postcode = $postcode;
        $this->city = $city;
    }
}


class Customer
{
    private $postaddress;
    private $deliveraddress;
    
    public function setPostaddress(Address $address)
    {

        $this->postaddress = $address;
    }

    
    public function setDeliveraddress(Address $address)
    {

        $this->deliveraddress = $address;
    }
}

?>
Gewijzigd op 21/02/2015 01:01:32 door Frank Nietbelangrijk
 



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.