OOP - Juiste denk wijze.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Jasper DS

Jasper DS

07/10/2011 16:38:16
Quote Anchor link
Is deze opbouw OOP correct?

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
<?php

# errors weergeven
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);

class RekenMachiene
{
    public function optellen($a, $b)
    {

        $c = $a + $b;
        
        return $c;
    }

    
    public function aftrekken($a, $b)
    {

        $c = $a - $b;
        
        return $c;
    }

}


$optelling = new RekenMachiene;
$uitkomst = $optelling->optellen(5, 8);

echo $uitkomst; // weergeeft 13

?>
Gewijzigd op 07/10/2011 17:00:13 door Jasper DS
 
PHP hulp

PHP hulp

20/04/2024 09:58:42
 
Jacco Brandt

Jacco Brandt

07/10/2011 16:52:15
Quote Anchor link
Nee, als je alleen de functie-parameters gebruikt, en er daarna niets mee doet. Dan moet je de variabelen niet in de klasse zelf laden.
 
Jasper DS

Jasper DS

07/10/2011 17:00:34
Quote Anchor link
Dus kijk nu eens, ik heb
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    public $a;
    public $b;
    public $c;
?>


eruit gehaald.
 
- Mark -

- Mark -

07/10/2011 17:08:06
Quote Anchor link
Ik heb geen kaas gegeten van OOP dus het kan zijn dat ik onzin aan het uitkramen ben. Maar zijn de functies optellen en aftrekken niet wat beperkt? Wat als ik nu 3 of meer getallen wil optellen?
 
Jasper DS

Jasper DS

07/10/2011 17:09:45
Quote Anchor link
Ik ben maar aan het oefen op het OOP denken.. Stap voor stap dus Mark eerst dit checken. :)
 
Fabian M

Fabian M

07/10/2011 17:31:53
Quote Anchor link
Je kunt hem nu uitgebreider maken door een getal klasse te maken die wiskundige functies bevatten.

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
<?php
class Getal {
      private $value;

      public function __construct($getal) {
             $this->value = $getal;
      }
      

      public function optellen($anderGetal) {
             if (is_numeric($anderGetal)) {
                 $this->value = $this->uitkomst + $anderGetal;
             }
else if ($som instanceof Som) {
                 $this->value = $this->value + $anderGetal->value();
             }
      }


      public function value() {
             return $this->value;
      }


      public function __toString() {
             return (string) $this->value;
      }
}

?>
Gewijzigd op 07/10/2011 17:34:12 door Fabian M
 
Wouter J

Wouter J

07/10/2011 17:38:00
Quote Anchor link
1 foutje in de PHP code. error_reporting(E_ALL | E_NOTICE) Moet met 2 || (E_ALL || E_NOTICE)

Dit is niet OOP, maar een verzameling van functies. Daarvoor is het systeem ook veel te simpel. Probeer te beginnen met iets moeilijkers, dit is net iets te simpel voor OOP. (vind ik)
Daarnaast $optelling is niet het juiste woord. Je maakt daar een nieuw rekenmachine object aan, geen optel object.

Om het wat meer OOP te laten zijn zou ik het zo doen:
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
<?php
class Calculator
{
  protected $numbers;
  public function __contstruct( $nr, $nr1 )
  {

    $this->numbers = Array((int) $nr, (int) $nr);
  }


  public function som()
  {

    $result = 0;
    foreach( $this->numbers as $number )
    {

      $result += $number;
    }

    return $result;
  }

  // Enz...
}
?>
 
Fabian M

Fabian M

07/10/2011 19:19:17
Quote Anchor link
Wouter J op 07/10/2011 17:38:00:
1 foutje in de PHP code. error_reporting(E_ALL | E_NOTICE) Moet met 2 || (E_ALL || E_NOTICE)

Dit is niet OOP, maar een verzameling van functies. Daarvoor is het systeem ook veel te simpel. Probeer te beginnen met iets moeilijkers, dit is net iets te simpel voor OOP. (vind ik)
Daarnaast $optelling is niet het juiste woord. Je maakt daar een nieuw rekenmachine object aan, geen optel object.

Om het wat meer OOP te laten zijn zou ik het zo doen:
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
<?php
class Calculator
{
  protected $numbers;
  public function __contstruct( $nr, $nr1 )
  {

    $this->numbers = Array((int) $nr, (int) $nr);
  }


  public function som()
  {

    $result = 0;
    foreach( $this->numbers as $number )
    {

      $result += $number;
    }

    return $result;
  }

  // Enz...
}
?>


Ik ben het er niet mee eens dat dit geen OOP is.. Dit is OOP, maar simpel.
 
Jacco Brandt

Jacco Brandt

07/10/2011 20:51:15
Quote Anchor link
Oh, en probeer alles in het engels te doen, het zegt niets over OOP, maar het is gewoon netter.
 
Pim -

Pim -

07/10/2011 21:03:41
Quote Anchor link
Mwa, dat lijkt me vrij persoonlijk.
Ook moet je er wel toe in staat zijn, anders is er niemand die je code kan lezen.
 
- Mark -

- Mark -

07/10/2011 21:20:17
Quote Anchor link
Als je in het Nederlands programmeert dan zijn dat er ook niet veel. Ik gebruik eigenlijk alleen op phphulp Nederlands als ik iemand iets probeer uit te leggen. Voor de rest is alles wat ik schrijf in het Engels. Ik wil niet gebonden zijn aan 1 land.
 
Jacco Brandt

Jacco Brandt

07/10/2011 23:25:46
Quote Anchor link
Het is inderdaad persoonsgebonden, maar ik(en met mij nog vele anderen) prefereren engels. Daarbij is het door elkaar gebruiken van verschillende talen(Fabian) helemaal not done.
 
Fabian M

Fabian M

08/10/2011 09:54:38
Quote Anchor link
Jacco Brandt op 07/10/2011 23:25:46:
Het is inderdaad persoonsgebonden, maar ik(en met mij nog vele anderen) prefereren engels. Daarbij is het door elkaar gebruiken van verschillende talen(Fabian) helemaal not done.


Inderdaad, verschillende talen gebruiken was inderdaad verkeerd, maar omdat dit een Nederlands fora is, had ik paar Nederlandse woorden gebruikt om het iets duidelijker te maken.

Als ik 'echt' programmeer, dan gebruik ik alleen Engels.
 



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.