Avatar billede Slettet bruger
12. juli 2004 - 19:57 Der er 12 kommentarer og
1 løsning

Hvorfor oop?

Jeg har læst en del om oop i en bog jeg har, men jeg kan ikke se det geniale i det.

Er der nogen der kan fortælle mig hvorfor man skal vælge at bruge oop?
Avatar billede erikjacobsen Ekspert
12. juli 2004 - 20:02 #1
For at få struktur på tingene, og mulighed for genbrug.
Man behøver ikke OOP til småting.
Avatar billede 2c Nybegynder
13. juli 2004 - 00:43 #2
Læs eventuelt denne artikel:
http://www.udvikleren.dk/article.php?aid=14
Avatar billede Slettet bruger
13. juli 2004 - 13:32 #3
En ting, der er meget lettere med oop er at have en samling funktioner, som har nogle fælles variable. Hvis man ikke bruger oop, er disse variable nødt til at være globale eller blive sendt frem og tilbage mellem funktionerne og det omgivende script.
Avatar billede Slettet bruger
13. juli 2004 - 20:21 #4
tak for det sandbox, kan man gemme functioner i objecter uden at skrive global $var1, $var2; eller hvad?
Avatar billede Slettet bruger
13. juli 2004 - 21:39 #5
Fra http://dk.php.net/oop

<?php
class Cart {
  var $items;  // Items in our shopping cart
 
  // Add $num articles of $artnr to the cart

  function add_item($artnr, $num) {
      $this->items[$artnr] += $num;
  }
 
  // Take $num articles of $artnr out of the cart

  function remove_item($artnr, $num) {
      if ($this->items[$artnr] > $num) {
          $this->items[$artnr] -= $num;
          return true;
      } else {
          return false;
      }
  }
}
?>

Der er den fælles variabel, $items, som i dette tilfælde er et array.

De to funktioner har begge adgang til $items ved at skrive $this->items, og man kan have flere objekter af denne type uden at deres $items bliver rodet sammen. Derudover behøver resten af ens script ikke bekymre sig om hvordan objektet opbevarer oplysningerne.

Hvis man i stedet for at have et objekt benyttede normale funktioner, ville det kræve, at man enten:

1) benyttede global $items i hver funktion, og dermed ikke kunne have en variabel, der hed $items i det omkringliggende script. Man var altså tvunget til at tage hensyn til interne ting i funktionerne.

eller

2) sendte (og returnerede) en variabel for at kunne have flere sæt af samme type oplysninger.

Netop i dette eksempel med en indkøbskurv er det nok ikke så interessant med muligheden for flere forskellige sæt, men det er en stor fordel i oop, at funktionerne og deres tilhørende variabler er afgrænset fra det øvrige script.

En anden stor fordel er muligheden for at basere en ny klasse på en allerede eksisterende klasse.
Avatar billede Slettet bruger
20. juli 2004 - 09:48 #6
Er der en der kender et godt sted hvor man kan lære oop ?
Avatar billede Slettet bruger
20. juli 2004 - 11:46 #7
jeg forstår det godt sandbox, og har læst det der 20 gange :D, men jeg kan ikke finde ud af f.eks hvordan man får adgang til en variabel uden for classen...
Avatar billede erikjacobsen Ekspert
20. juli 2004 - 12:07 #8
"et godt sted" - prøv et sted man underviser i det. Fx. datamatikeruddannelsen
Avatar billede Slettet bruger
20. juli 2004 - 12:20 #9
nej.. mente ikke helt sådan :D.. jeg har læst alt på php.net(der har noget med oop at gøre) og så har jeg læst nogle turtorials, men der er stadig nogle (mange) ting jeg ikke helt forstår
Avatar billede Slettet bruger
21. juli 2004 - 02:07 #10
Den vigtigste ting at forstå er, at en klasse ikke er noget i sig selv, og i princippet ikke har variable endnu. Den er bare en "skabelon", man bruger til at lave et objekt med - eller som grundmodel for udvidede klasser.

Først når man laver et objekt, kommer der til at eksistere variable. Man laver objektet på denne måde:

$minkurv= new Cart;

Dermed har vi et objekt af klassen Cart, og dermed kan vi tilgå dens interne variabel via den variabel, vi brugte til objektet:

foreach($minkurv->items as $varenummer => $antal){
  echo $varenummer . ': ' . $antal . "\n"
}

Hvis man skal bruge oop helt korrekt, bør man faktisk ikke tilgå et objekts variable direkte, men bør benytte funktioner til at ændre eller aflæse dem. (Funktioner i et objekt kaldes forresten metoder, og variablerne kaldes egenskaber.)
Avatar billede Slettet bruger
22. juli 2004 - 18:31 #11
tak sandbox.

smid svar ^^
Avatar billede Slettet bruger
22. juli 2004 - 23:11 #12
Kommer her.
Avatar billede Slettet bruger
23. juli 2004 - 08:32 #13
ok :P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester