17. Karbantarthatóság
- a kódoknak egyszer kell szerepelniük
- minden kódnak jól meghatározható hely
- lehetőség egységtesztekre
+ a kommentek fontosak
26. $circle1 = new Circle();
$circle2 = new Circle();
$circle3 = new Circle();
...
27. “
Az objektum egy valós, vagy absztrakt,
azonosítható, egyedi entitás, amely a vizsgált
környezet egy jól definiált szereplője
28. “
Az adat és a rajta értelmezett művelet együttese
29. “
Az objektum egy rendszer egyedileg
azonosítható szereplője, amelyet a külvilág felé
mutatott viselkedésével, belső struktúrájával és
állapotával jellemezhetünk
59. class SomethingWrong
{
public function makeSandwich() { /.../ }
public function countApples() { /.../ }
public function deleteOldEntries() { /.../ }
public function someOtherSillyThing() { /.../ }
}
81. class Fruit
{
public function eat()
{
echo “nyami”;
}
}
class Orange extends Fruit
{
}
$orange = new Orange();
$orange->eat();
// Eredmény: nyami
82. Dinamikus kötés
class A
{
protected $text = ‘Hello!’;
public function sayHello()
{
echo $this->text;
}
}
class B extends A
{
protected $text = ‘Namaste!’;
}
$b = new B();
$b->sayHello();
Namaste!
83. Óvatosan a hierarchia kialakításával!
(http://www.snopes.com/humor/nonsense/kangaroo.asp)
92. class Fruit
{
public function eat()
{
echo 'nyam-nyam';
}
}
class Apple extends Fruit
{
public function eat()
{
echo 'nyum-nyum';
parent::eat();
}
}
// Eredmény: nyam-nyamnyum-nyum
117. class Apple
{
protected static $number = 0;
public function __construct()
{
self::$number = self::$number + 1;
}
public static function getNumberOfApples()
{
return self::$number;
}
}
$a = new Apple();
echo Apple::getNumberOfApples();
119. class A
{
protected static $text = ‘Hello!’;
public static function sayHello()
{
echo self::$text;
}
}
class B extends A
{
protected static $text = ‘Namaste!’;
}
B::sayHello();
121. Statikus tag SOHA nem ér el objektumszintű tagot
122. class Apple
{
protected $color = ‘red’;
public function __construct($color)
{
$this->color = $color;
}
public static function getColor()
{
return $this->color;
}
}
$a = new Apple(‘green’);
Apple::getColor();
HIBA
169. class Container2 extends Container
{
public function __isset($name)
{
return isset($this->data[$name]);
}
public function __unset($name)
{
unset($this->data[$name]);
}
}
$a = new Container();
isset($a->name);
unset($a->name);