On 10/10/07, Tony Marston <[EMAIL PROTECTED]> wrote:
>
>
> ""Nathan Nobbe"" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
> > On 10/9/07, Robert Cummings <[EMAIL PROTECTED]> 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