quinta-feira, 22 de julho de 2010

Classe Calculadora versão 0.1 beta - PHP Developer

/**
* todos os métodos de uma interface são declarados como público
* e não possuem corpo nos métodos.
*/
interface SomaSubtrair
{
  public function somar();
  public function subtrair();
}

/**
* classes abstratas não são instanciadas diretamente,
* se pelo menos um método da classe for
* abstrata a classe também deverá ser abstrata.
* uma classe abstrata pode ter métodos não abstratos, ou seja,
* métodos com implementação (que tenha {})
*/
abstract class DividirMultiplicar
{
  public abstract function dividir();
  public abstract function multiplicar();
}

class Calculadora extends DividirMultiplicar implements SomaSubtrair
{
  private $numero_1;
  private $numero_2;
  private $resultado;
  private $operacao;

 public function __construct($p1 ,$p2, $p3)
 {
  $this->numero_1 = $p1;
  $this->numero_2 = $p2;
  $this->operacao = $p3;
 }

 public function somar()
 {
  $this->resultado = $this->numero_1 + $this->numero_2;
 }

 public function subtrair()
 {
  $this->resultado = $this->numero_1 - $this->numero_2;
 }

 public function dividir()
 {
  $this->resultado = $this->numero_1 / $this->numero_2;
 }

 public function multiplicar()
 {
  $this->resultado = $this->numero_1 * $this->numero_2;
 }

 public function realizarOperacao()
 {
  $this->{$this->operacao}();
 }

 public function retornarResultado()
 {
  return $this->resultado;
 }
}

$calc = new Calculadora(1, 5, 'subtrair');
$calc->realizarOperacao();
echo $calc->retornarResultado(); // saída -4

Nenhum comentário:

Postar um comentário