Семейство классов ShopProduct

Опубликовал read-php в 13.01.2011 Категория: Основные сведения об объектах php

Давайте изменим класс ShopProduct и его дочер­ние классы так, чтобы ограничить доступ к свойствам.

class ShopProduct {

private $title;

private $producerMainName;

private $producerFirstName,- protected $price;

private $discount = 0;

public function construct( $title, $firstName,

$mairiName, $price ) {

$this->title           = $title;

$this->producerFirstName = $firstName;

$this->producerMainName = $mainName;

$this->price = $price;

}

public function getProducerFirstName() {

return $this->producerFirstName;

}

public function getProducerMainName() {

return $this->producerMainName;

}

public function setDiscount( $num ) {

$this->discount=$num;

}

public function getDiscount() {

return $this->discount;

}

public function getTitleO {

return $this->title;

}

public function getPriceО {

return ($this->price – $this->discount) ,-

}

public function getProducer() {

return «{$this->producerFirstName} » . » {$this->producerMainName}» ;

}

public function getSummaryLine() {

$base = «{$this->title} ( {$this->producerMainName},

$base «{$this->producerFirstName} )»;

return $base;

class CDProduct extends ShopProduct {

private $playLength = 0;

public function construct( $title, $firstName,

$mainName,    $price, $playLength ) {

parent::construct( $title, $firstName,

$mainName, $price );

$this->playLength = $playLength;

}

public function getPlayLengthO {

return $this->playLength;

}

public function getSummaryLine() { $base = parent: :getSummaryLine()

$base .= «: Время звучания – {$this->playLength}»;

return $base;

class BookProduct extends ShopProduct { private $numPages = 0;

public function construct( $title, $firstName,

$mainName,    $price, $numPages ) {

parent::construct( $title# $firstName,

$mairiName, $price ); $this->numPages = $numPages;

}

public function getNumberOfPages() {

return $this->numPages;

}

public function getSummaryLine() {

$base = parent::getSummaryLine();

$base .= «: {$this->numPages} стр.»;

return $base,-

}

public function getPriceO {

return $this->price;

}

}

В этой версии семейства классов ShopProduct нет ничего существенно нового. Все методы были явно сделаны общедоступными, а все свойства теперь стали либо закрытыми, либо защищенными. И для завершенности мы добавили ряд методов доступа.

Комментариев нет

Добавить комментарий