index.PHP

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <?php 
        require_once 'ContaBanco.php';
        $p1 = new ContaBanco(); // Jubileu
        $p2 = new ContaBanco(); // Creuza
        
        $p1->abrirConta("CC");
        $p1->setnumConta(1111);
        $p1->setDono("Jubileu");
        $p1->depositar(300);
        $p1->pagarMensal();

        $p2->abrirConta("CP");
        $p2->setnumConta(2222);
        $p2->setDono("Creuza");
        $p2->depositar(500);
        $p2->sacar(100);
        $ps->pagarMensal();
    ?>
</body>
</html>

ContaBanco.PHP

<?php 
    class ContaBanco {
        // Atributos 
        /* 
        + numConta
        # tipo
        - dono
        - saldo
        -status
        */
        public $numConta;
        protected $tipo;
        private $dono;
        private $saldo;
        private $status;

        // Métodos
        /* 
        + abrirConta()
        + fecharConta()
        + depositar()
        + sacar()
        + pagarMensal()
        */
        public function abrirConta($t) {
            $this->setTipo($t);
            $this->setStatus(true);
            if ($t == "CC") {
                $this->setSaldo(50);
            } elseif ($t == "CP") {
                $this->saldo = 150;
            }
        }
        public function fecharConta() {
            if ($this->getSaldo() > 0) {
                echo "<p>Conta ainda tem dinheiro, não posso fechá-la!</p>";
            } elseif ($this->getSaldo() < 0) {
                echo "<p>Conta está em débito. Impossível encerrar!</p>";
            } else {
                $this->setStatus(false);
                echo "<p>Conta de " . $this->getDono() . "Fechada com sucesso!</p>";
            }
        }
        public function depositar($v) {
            if ($this->getStatus()) {
                $this->setSaldo($this->getSaldo() + $v);
            } else {
                echo "<p>Conta fechada. Nã consigo depositar.</p>";
            }
        }
        public function sacar($v) {
            if ($this->getStatus()) {
                if ($this->getSaldo() >= $v) {
                    $this->setSaldo($this->getSaldo() - $v);
                    echo "<p>Saque de $v autorizado na conta de " . $this->getDono() . "</p>";
                } else {
                    echo "<p>Saldo insuficiente para saque.</p>";
                }
            } else {
                echo "<p>Não posso sacar de uma conta fechada</p>";
            }
        }
        public function pagarMensal() {
            if ($this->getTipo() == "CC") {
                $v = 12;
            } elseif ($this->getTipo() == "CP") {
                $v = 20;
            }
            if ($this->getStatus()) {
                $this->setSaldo($this->getSaldo() - $v);
                echo "<p>Mensalidade de R$ $v debitada na conta de " . $this-> getDono() . "</p>";
            } else {
                echo "<p>Problemas com a conta. Não posso cobrar.</p>";
            }
        }

        // Métodos Especiais
        public function __construct()
        {
            $this->setSaldo(0);
            $this->setStatus(false);
            echo "<p>Conta Criada com sucesso!</p>";
        }
        public function setnumConta($n) {
            $this->numConta = $n;
        }
        public function getnumConta() {
            return $this->numConta;
        }
        public function setTipo($t) {
            $this->tipo = $t;
        }
        public function getTipo() {
            return $this->tipo;
        }
        public function setDono($d) {
            $this->dono = $d;
        }
        public function getDono() {
            return $this->dono;
        }
        public function setSaldo($s) {
            $this->saldo = $s;
        }
        public function getSaldo() {
            return $this->saldo;
        }
        public function setStatus($s) {
            $this->status = $s;
        }
        public function getStatus() {
            return $this->status;
        }
    }
?>