Re: Beginner Tutorials for using CLASSES in PHP4
| From: | Nathan Nobbe | Date: | Wed, 10 Oct 2007 14:15:06 +0000 |
| Subject: | Re: Beginner Tutorials for using CLASSES in PHP4 | ||
| References: | 1 2 3 4 5 6 7 8 9 10 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-263041@lists.php.net to get a copy of this message | ||
On 10/10/07, Tony Marston <tony@marston-home.demon.co.uk> wrote:
>
>
> ""Nathan Nobbe"" <quickshiftin@gmail.com> wrote in message
>
> news:7dd2dc0b0710091950i62159761le400b3839677bebd@mail.gmail.com...
> > On 10/9/07, Robert Cummings <robert@interjinn.com> wrote:
> >>
> >> On Tue, 2007-10-09 at 21:37 -0400, Nathan Nobbe wrote:
> >> >
> >> > does a lawn mower not have blades; and gas and a control panel; does
> it
> >> not
> >> > have
> >> > wheels? my object modeling of a lawn mower would certainly have
> these
> >> > things;
> >> > and most likely i would mark components of the engine as private.
> >> > and what does a lawn mower cut anyway; grass; i thought that was it.
> >> > so
> >> if
> >> > there
> >> > was no grass could there still be an algorithm to cut it?
> >> > i say grass is part of the grass-cutting algorithm.
> >>
> >> Well it helps to refine the algorithm, but let's say we use fingers
> >> instead as our measure... I'm sure we would find that we could cut
> grass
> >> also >:)
> >
> >
> > good point.
> > the lawn mower is still consistent of its own parts and they
> > comprise its implementation.
> >
> > -nathan
>
> Yes, but a lawnmower does not contain grass, it is used to cut grass.
> Whole
> grass goes in and cut grass comes out. The lawnmower does not have any
> grass
> in its construction, therefore grass is not part of the implementation.
yes, you are right about the grass not being part of the implementation; i
agree.
however; the mower as i pointed out has its own member variables that
comprise its
implementation; and earlier you suggested that member variables dont
constitute the
implementation of a class; which is wrong;
here is my example; note; no grass; but it has member variables which
comprise its implementation.
<?php
class Lawnmower {
const GAS_MIN = 0;
const GAS_MAX = 10;
private $engineOn = false;
private $gasLevel = 5;
public function turnOn() {
if($this->canRun()) {
$this->engineOn = true;
} else {
echo 'you need to add gas to run the mower!';
}
}
public function mowGrass() {
echo 'the grass [or pehaps fingers] are being cut...';
}
public function turnOf() {
$this->enginOn = false;
}
public function addGas($amountOfGas) {
if(($amountOfGas + $this->gasLevel) > self::GAS_MAX) {
$this->amountOfGas += $amountOfGas;
} else {
echo 'you will overflow the tank w/ all that gas.';
return false;
}
}
public function checkGasLevel() {
return $this->gasLevel;
}
private function canRun() {
$canRun = false;
if($this->gasLevel > self::GAS_MIN) {
$canRun = true;
}
return $canRun;
}
}
?>
-nathan