OOP vragen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer Zorg-ICT

Complexe software ontwikkelen: dat is jouw ding! Voor onze vestiging in Heerenveen zoeken wij fanatieke junior en senior .NET Developers die met de laatste Microsoft-tools en -technieken willen werken. Jij bent gemotiveerd en draagt graag verantwoordelijkheid voor je 'eigen' software, die wordt ingezet in ziekenhuizen door heel Nederland. Jouw baan Je bent verantwoordelijk voor het ontwerpen, ontwikkelen, ondersteunen en onderhouden van jouw eigen module. Dit gaat om complexe ICT-producten die feilloos moeten functioneren binnen de complexe omgeving van een zorgorganisatie. Je werkt zelfstandig of in een klein team. ChipSoft maakt gebruik van een zelf ontwikkeld multi tier framework. Tijdens een

Bekijk vacature »

Webcoördinator KB.nl

Ben je een vernieuwer die de ontwikkeling van de nieuwe website kb.nl realiseert? Verbind je de stem van de klant aan de organisatiedoelen dan zijn wij op zoek naar jou! Wat ga je bij ons doen? Je realiseert de vernieuwde webstrategie voor kb.nl. Je begrijpt de centrale rol van een website in het totale digitale landschap van de KB. Als Webcoördinator KB.nl zet je niet alleen in op een goede werking en vindbaarheid van de website maar bovenal op een optimale klantervaring omdat deze bijdraagt aan onze merkbeleving en het realiseren van de doelstellingen. Je optimaliseert de online klantreis voor

Bekijk vacature »

Stage Web Developer

Klaar voor een te gekke uitdaging bij Stimmt? Kom vanaf september voor 5 maanden ons team versterken als front- of back-end developer! Tijdens een stage bij Stimmt krijg jij de ruimte om jouw skills als developer los te laten op veelzijdige praktijkopdrachten. Je werkt als stagiair in een team samen met designers en developers die samen met jou de tofste projecten ontwikkelen. Stimmt bouwt websites, webshops en webapplicaties voor ongeveer 150 klanten, waaronder Nedap, Van Merksteijn, Freshtival, SciSport, boxers.nl, Sigmax, Switch en Sam Feldt. Stimmt is gevestigd in Enschede (hoofdkantoor) en Amsterdam. Stimmt is ruim 10 jaar geleden opgericht en

Bekijk vacature »

C# Developer/ SQL Server/ Visual Studio/Javascript

Functieomschrijving Ben jij een gedreven en enthousiaste .NET Developer (C#) met gevoel voor design en usability? Wil jij als C# Ontwikkellaar jouw skills graag inzetten op de development afdeling van een innovatieve, flexibele organisatie met een groot bereik? Lees dan snel verder! Je gaat aan de slag in het websites team of portals team waarin je je bezighoudt met concept & design, implementatie en ook een stukje bugfixing en onderhoud; Je werkt met je team volgens de Scrum werkwijze; Zo adviseer je ook de PO & Scrum Master over de technische architectuur, koppelingen en integratie met externe systemen en API’s;

Bekijk vacature »

Java Developer / Webservices / Overheid

Functieomschrijving Ben jij als Java Ontwikkelaar 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 »

Senior Java Developer

Functie omschrijving Je werkt met de nieuwste technologie om de online dienstverlening van de organisatie steeds verder te verbeteren. Er is veel gelegenheid voor eigen inbreng om zelf en met het team aan de realisatie daarvan te werken. Ook is er ruimte om verbetervoorstellen te doen en hier mee aan de slag te gaan. Je past je technische kennis toe op de webapplicaties en de benodigde tooling. Je ontwerpt en ontwikkelt applicaties met behulp van Java, Angular, Spring, JUnit en andere open source technologieën. Als Java Developer kom je te werken in een multidisciplinair team dat continu werk oplevert middels

Bekijk vacature »

Senior Java Developer vacature

Jij volgt ontwikkelingen op de voet. Sterker nog: jij bent er onderdeel van. Jij loopt voorop. Jij denkt met klanten mee en helpt hen innoveren. Zo kun jij een bijdrage leveren aan de Rabobank-app, de beveiliging van treinen voor Pro-rail verbeteren of de website van ING een boost geven. Vergaderen? Liever gewoon zorgen dat het werkt! Hoe omschrijft men een Sogetist? Gedreven, resultaatgericht en niet snel tevreden. Wat niet wil zeggen dat je nooit met hem of haar kunt lachen. Integendeel. Plezier hoort wat ons betreft net zo goed bij werken. Maar we gaan op de eerste plaats voor de

Bekijk vacature »

Lead Developer

Discipline Information Technology Location Utrecht (NL) Hours a week 40 As our Lead Developer You are a key figure in creating enterprise applications. We are continuously looking for ways to improve our development methodologies and architecture and we welcome fresh ideas and techniques. You will be working on applications build using Node.js OpenAPI based microservices with Vue.js frontends. We are in the process of migrating to the Google Cloud where we utilize functionalities like Kubernetes/Terraform and a CI/CD pipeline to facilitate feature base releasing. We are a data-driven Agile organization which operates in 11 Scrum teams of 7 people each,

Bekijk vacature »

High Tech Software Developer C# (Mathematics, Algo

Software Developer C# High Tech Organization Are you challenged by delivering solutions to complex engineering problems in a multi-disciplinary team-effort? Do you enjoy capitalizing on .NET software technology in an Agile development context to create solutions that our customers appreciate? Would you like to contribute to the world’s most advanced chip production metrology equipment? Then read on! For our client, a fast dynamic technical company delivering high value machines, we are looking for C# Software Engineers. Job Description Within business line Applications, software groups address the area of complex machine control software. You will be end-to-end responsible for realization of

Bekijk vacature »

Senior .NET Developer voor innovatieve marktleider

Functieomschrijving Jij en de 10 a 15 andere Ontwikkelaars werken samen op Agile wijze aan het verder uitbouwen en het verbeteren van de applicatie. Naast de 'hoofdapplicatie' zijn er nog een heleboel kleinere modules omheen. Ook deze moeten allemaal onderhouden en verder uitgebouwd worden. Je werkzaamheden zijn dus heel divers; de ene dag bouw je een volledige nieuwe module, de andere dag fix je bugs en weer een andere dag Wekelijks wordt er een duidelijke planning opgesteld waarin de doelen voor die week worden vastgelegd. Elke ochtend is er een standup waarin de voortgang besproken wordt. Uiteraard wordt dit ook

Bekijk vacature »

ICT Systeemspecialist Netwerk

ICT Systeemspecialist Netwerk Standplaats Kralingen, Rotterdam Fte 1,00 Einddatum (werkenbij) 14-04-2020 Solliciteren Solliciteren Ongekend uitdagend Evides ICT heeft als missie de afdelingen van Evides te helpen in het optimaal bedienen van klanten. Het team Generieke IT houdt zich bezig met beheren van de IT Infrastructuur. Binnen het team Generieke IT is een vacature ontstaan voor ICT Systeemspecialist Netwerk. De inzet van IoT en daarmee dus ook van IoT-netwerken zal de komende tijd toenemen. Het upgraden van het Wi-Fi-netwerk vormt een actuele belangrijke uitdaging. De juiste keuze in de aanleg van breedband-WAN vereist continu aandacht. Daarnaast is het mobiele netwerk (met

Bekijk vacature »

Front-end Developer / React / Innovatie / Finance

Front-end Developer / React / Innovatie / Finance Functieomschrijving Ben jij een Front-end Developer met ongeveer 3 jaar ervaring en wil jij aan de slag bij een van de grootste en meest gerenommeerde financiële organisatie wereldwijd? Wil jij je richten op projecten waar je van scratch af aan inhouse de meest innovatieve oplossingen gaat bedenken en uitvoeren met o.a. React en Node.js voor digitale oplossingen (op bijvoorbeeld het gebied van Machine Learning en Artificial Intelligence) voor gerenommeerde organisaties? Lees dan nu verder! Het ontwikkelen van de front-end van fully responsive webapplicaties en webdesign met uiteenlopende tools en technieken, o.a. React,

Bekijk vacature »

Developer / GIS / Esri / Ingenieursbureau

Functieomschrijving Ben jij een Software Developer met minimaal drie jaar ervaring en wil jij aan werken aan toonaangevende GIS software? Spreekt het jou aan om binnen een innovatief ingenieursbureau te werken aan uiteenlopende projecten voor diverse grote en bekende namen in Nederland? Lees dan nu verder! Ontwikkelen van nieuwe GIS software met behulp van Esri; Ontwikkelen en bedenken van nieuwe koppelingen en mobiele oplossingen; Werken aan uiteenlopende projecten voor grote en bekende organisaties in Nederland; Samenwerken in zelfsturende Agile teams; Werken aan innovatie en kennisdeling. Functie-eisen Minimaal HBO en/of WO werk- en denkniveau; Minimaal 3 jaar ervaring als Developer met

Bekijk vacature »

Senior Solution Integrity Analyst – Finance

Cargill Position Purpose & Summary The Cargill Animal Nutrition and Health enterprise has an ambitious agenda to implement an SAP S/4 template across all businesses and in multiple regions. The instance team consists of Operations, Commerce and Finance application management teams. For the Finance Application management team, Cargill is looking for an experienced Financial Accounting consultant (aka Solution Integrity Analyst) that can take a lead role. Principal Accountabilities Solution Management Lead Instance solution architecture, solution integrity and the functional relationship across multiple concurrent projects and sustain activities Drive strategic integrated solutions which in turn deliver the business requirements and associated

Bekijk vacature »

.NET Developer / Angular / React

Functieomschrijving Haal jij als .NET Developer energie uit het ontwikkelen van bedrijfskritische .NET applicaties en vind jij het ook leuk om de door jouw gebouwde .NET applicaties te beheren en door te ontwikkelen, waarmee je de kwaliteit van de .NET applicaties weet te waarborgen? Lees dan snel verder Het ontwikkelen van bedrijfskritische applicaties; Het onderhouden en beheren van de applicaties; Het uitvoeren van patches, testen, change- en incidentmanagement; Meedenken over technische ontwikkelingen; Het pro-actief aandragen van verbeteringen. Functie-eisen Hbo denk- en werkniveau; Minimaal 2 jaar ervaring met .NET; Aantoonbare ervaring met het ontwikkelen en beheer van van applicaties; Aantoonbare ervaring

Bekijk vacature »
Zim Zim

Zim Zim

30/12/2006 11:36:00
Quote Anchor link
Zo eindelijk gebruik maken vanhet OOP topic.
Ik ben bezig met OOP leren met het PHP Superboek, alleen ik kom een paar vraagjes tegen die niet staan uitgelegd (of ik snap de uitleg niet).
Mijn eerste vraag staat op blz 72 en 73 van het hierboven genoemde boek.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
class clsBD {
   var
$M_conDB;
   const dbName = "MyDB";
   //constructor
   function __construct($_p_sHost, $p_sUser, $p_sPassword) {
     // Open a regular connection
     $this->m_conDB = mysql_connect($p_sHost, $p_sUser, $p_sPassword);
     mysql_select_db(clsDB::dbName);
   }

?>

Maar eerste vraag is over: var en const. Ik heb mensen horen praten dat de variabele in een class niet meer aangemaakt moet worden, en wat is 'const dbName' verschil tussen $dbName?
Verder vind ik de regel met $this raar (of ik snap het niet helemaal). Wat doet hij presies met de regel? de regel uitvoeren of opslaan in m_conDB? en waarom moet de regel eronder niet ook met $this->m_conDB staan?

Mijn andere vraag gaat over iets wat verder staat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if($this->m_conDB){
?>

Wat betekend dat? als de waarde niet leeg is?
 
PHP hulp

PHP hulp

03/04/2020 12:37:24
 
Martijn B

Martijn B

30/12/2006 11:52:00
Quote Anchor link
vraag 1:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
var $blaat; //(PHP4)
public $blaat; //(PHP5)
?>

$blaat is een attribuut van de klasse en is variabel. En is public of wel voor alles en iedereen te gebruiken. Alle atributen van een klasse zouden private moeten zijn als je PHP5 gebruik.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
const blaat = 'blaat';
?>

blaat is een constante en kan dus niet meer worden veranderd.

vraag 2:

$this is het object van de klasse. $this zou je kunnen vergelijken met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$this
= new MijnKlasse;
?>


Alleen kun je met de $this in de klasse alle attributen en methodes benaderen ook al zijn ze private.
In PHP4 is de $this (van de code hierboven) een kopie en in PHP5 is dit een referentie.

vraag 3:

We gaan niet in de if als $this->m_conDB gelijk is aan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$this
->m_conDB = false; //of
$this->m_conDB = ''; //of
$this->m_conDB = array(); //of
$this->m_conDB = null; //of
$this->m_conDB = 0; //of
?>


Alle waardes zijn leeg ofwel hebben hetzelfde gedrag als boolean false in een expressie.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Jan Koehoorn

Jan Koehoorn

30/12/2006 11:56:00
Quote Anchor link
Hoi Zim. Je vragen:

1) var en const
Je kunt een variabele in een class prima aanmaken, waarom niet? Met const definieer je een klasse-constante. Vergelijk hem maar met een define in PHP.

2) die regel met $this is ook raar, want er staat een spelfout in. De hoofdletter M is ineens een kleine letter m geworden. Het keyword this verwijst altijd naar het huidige object, in dit geval de klasse zelf. De functie __construct wordt automatisch uitgevoerd als je een nieuwe klasse aanmaakt. In dit geval maakt hij dus verbinding met je DB.

3) Je kunt de Scope Resolution Operator (dat zijn die dubbele dubbele puntjes) gewoon binnen een klasse gebruiken, dus met regel 9 is er niets aan de hand.

4) $this->m_conDB bevat de returnwaarde van mysql_connect (regel 8)
Als die connectie fout gaat, retourneert mysql_connect de waarde false. Daar is die if dus voor.
 
Martijn B

Martijn B

30/12/2006 12:02:00
Quote Anchor link
Quote:
3) Je kunt de Scope Resolution Operator (dat zijn die dubbele dubbele puntjes) gewoon binnen een klasse gebruiken, dus met regel 9 is er niets aan de hand.

Paamayim Nekudotayim veel betere naam :D
 
Jan Koehoorn

Jan Koehoorn

30/12/2006 12:05:00
Quote Anchor link
Ja, die kan ik nooit onthouden. Die Hebreeuwse jongens praten veel te moeilijk :-)
 
Zim Zim

Zim Zim

30/12/2006 12:06:00
Quote Anchor link
Ok, ik ben weer heel wat duidelijker, alleen mijn derde vraag snap ik nog niet helemaal, want Jan ik snap wat de :: betekenen (stond wel uitgelegd), maar ik snap niet waarom je die functie 'los' uitvoer, terwijl je die regel erboven nog $this->m_conDB... staat.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
     $this
->m_conDB = mysql_connect($p_sHost, $p_sUser, $p_sPassword);
     mysql_select_db(clsDB::dbName);
?>

waarom niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
     mysql_connect($p_sHost, $p_sUser, $p_sPassword);
     mysql_select_db(clsDB::dbName);
?>

of
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
     $this
->m_conDB = mysql_connect($p_sHost, $p_sUser, $p_sPassword);
     $this->m_conDB =  mysql_select_db(clsDB::dbName);
?>

Ik zie het nu zo, de eerste regel wordt een 'nieuwe' connectie gemaakt (door $this->), en de database wordt in de regel onder geopend, maar waarom moet je ook niet een 'nieuwe' database selecteren?
 
Jelmer -

Jelmer -

30/12/2006 14:15:00
Quote Anchor link
mysql_connect geeft een resource-identifier terug. Of false waneer het is mislukt. Deze resource-identifier hoor je eigenlijk in de volgende functies zoals mysql_select_db & mysql_query te gebruiken. Waarom ze dat in het boek niet snap ik ook niet helemaal.

mysql_select_db geeft alleen maar terug of het gelukt is of niet. Dus om de resource-identifier die je net hebt opgeslagen te vervangen met deze boolean, beetje nutteloos.
 
Zim Zim

Zim Zim

30/12/2006 14:26:00
Quote Anchor link
Ik begin te begrijpen wat je bedoelt.
Ik vond nog een eigennaardigheid in het boek (of dat lijkt mij):
Dit voorbeeld staat op blz 90 van het Superboek.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
public funtion __construct() {
  $this->m_sTitle= "Titel";
  $this->m_sText= "text van het bericht";
}

?>

Het rare vind ik dat als je een class aanroept, hij eerst de constructor aanroept, en dan worden de variabele m_sTitle gedefinieerde waardes, maar het lijkt mij dat die waardes variabel moeten zijn, anders heeft elk artikel de titel: Titel en tekst "text van het bericht".

Hetzelfde doen ze op blz 75, en dat is eigenlijk nog raardes (lijkt mij):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
class clsCalendar {
  var
$m_nDay;
  var
$m_nMonth;
  var
$m_nYear;

  function
__construct() {
      $this->m_nDay = -1;
      $this->m_nMonth = -1;
      $this->m_nYear = -1;
   }

?>

Hierzo worden eerste variabele gedefineerd, en daarna word de contructor aangeroepen en worden de variabele een vaste waarde (-1), of zie ik dat verkeerd?
Gewijzigd op 01/01/1970 01:00:00 door Zim Zim
 
Jelmer -

Jelmer -

30/12/2006 14:32:00
Quote Anchor link
In dat laatste voorbeeld zou het kunnen dat hij later in andere functies die daarna worden aangeroepen die variabelen nog herdefinieert.

In veel talen kan je namelijk niet bij de declaratie van een variabele (regel 2/3/4) al een waarde opgeven, dus moet dat in de constructor. En waarschijnlijk zet hij die 3 eigenschappen op -1 omdat 0 een mogelijk antwoord is, en -1 later herkenbaar is als een fout antwoord waar eventueel makkelijk op gecontroleerd kan worden en waarna een foutmelding kan volgen.

Wat ik dan weer raar vind: Waarom prefixt dat boek al zijn klassen met 'cls'. Wat kan het anders zijn dan een klasse :/
 
Willem vp

Willem vp

30/12/2006 22:17:00
Quote Anchor link
Jelmer schreef op 30.12.2006 14:32:
Wat ik dan weer raar vind: Waarom prefixt dat boek al zijn klassen met 'cls'. Wat kan het anders zijn dan een klasse :/
Met het gevaar dat ik hier antwoord geef op een retorische vraag: waarschijnlijk heeft de auteur ooit eens gehoord van "Hungarian Notation" en probeert hij dat nu toe te passen.

Hij ziet daarbij over het hoofd dat HN voor OO-omgevingen nutteloos is, omdat variabelen in een OO-taal type-loos zijn; ze bevatten objecten, en het type daarvan hangt af van het object en niet van de variabele.
 
Winston Smith

Winston Smith

31/12/2006 00:11:00
Quote Anchor link
Quote:
Hij ziet daarbij over het hoofd dat HN voor OO-omgevingen nutteloos is, omdat variabelen in een OO-taal type-loos zijn; ze bevatten objecten, en het type daarvan hangt af van het object en niet van de variabele.
afgezien daarvan zou uit de naamgeving van variabelen of properties al duidelijk moeten zijn wat voor type het is, en je kan natuurlijk ook nog templates hebben :)
 
Maarten de Boer

Maarten de Boer

02/01/2007 01:22:00
Quote Anchor link
Toch is het wel makkelijk om bijvoorbeeld zulke namen te hebben "classTest" etc. Voor functies in een class is dit niet nodig natuurlijk :)

Ook voor variabelen kan het handig zijn, zo kunt u bijvoorbeeld als u een bestand aan het doorbladeren bent met fopen "$result = fopen(" etc ... en je wilt ook nog tegelijkertijd wat uit de database halen "$result1 = mysql_query" etc .. dan kan dat behoorlijk verwarrend zijn. Gebruik bijvoorbeeld gewoon "$fileResult = fopen(" en "$sqlResult = mysql_query" etc ... dan weet u meteen waar het van is, WAt het is dat is niet zo heel erg belangrijk.
 
Pim Vernooij

Pim Vernooij

02/01/2007 09:13:00
Quote Anchor link
Voor class namen is het gebruik van dit soort prefixes af te raden imo. Een object steld 'iets' voor. Bijvoorbeeld: $oUser = new User(); Het is duidelijk dat dit een nieuw user object is. Maak je er "new clsUser();" van, dan is die denkwijze meteen weg.
 
Jelmer -

Jelmer -

02/01/2007 09:41:00
Quote Anchor link
Het zieltje van Kasper had ik al eerder op het IRC-kanaal gewonnen, waar ik al jaren het gebruik en de misopvatting dat de HN beter/de beste is bestrijd. ^^,

Maar het was inderdaad een vraag die moest aanzetten tot nadenken. Het antwoord op de vraag zelf wist ik al, heb ik al vaak genoeg moeten aanhoren :)
 
Willem vp

Willem vp

02/01/2007 11:19:00
Quote Anchor link
Quote:
$result = fopen(" etc

Tsja, wat moet ik hierop zeggen? Zelf vind ik $result hier sowieso een verkeerd gekozen naam, omdat je van fopen geen resultaat terugkrijgt, maar een filehandle. Ik zou dan ook eerder kiezen voor $fh, maar omdat ik ooit ben opgegroeid in een C-omgeving, gebruik ik in de praktijk $fp (file pointer).

Bij gebruik van meerdere file pointers tegelijk komt daar dan nog de functie achter te staan: $fpIn, $fpOut, $fpErr, $fpLog, etc. Kort en (m.i.) duidelijk.

Quote:
dan weet u meteen waar het van is, WAt het is dat is niet zo heel erg belangrijk.


Ook hierover verschillen we van mening ;-)

Om terug te komen op je query: stel dat je even later gaat fetchen. Het is dan niet belangrijk om te weten waar je data vandaan komt (database, csv-file, watdanook) maar je wilt wel weten of het bijvoorbeeld een array of een object is.

En nee, $mysqlFetchObjectResult = mysql_fetch_object($sqlResult) vind ik geen goed voorbeeld van een duidelijke naamgeving :)
 



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.