Ir ao conteúdo
  • Cadastre-se

Encapsulamento / Netbeans - Helpp :(


Posts recomendados

É desejável um programa que trabalhe a pena com números naturais.  É sabido que um número natura são os inteiros positivos.
Implemente a classe Natural, esta classe deve permitir a realização das seguintes operações: adição, multiplicação, subtração e media. A classe deve possuir um atributo que guarde o valor e permitir que as operações citadas acima sejam executadas entre ele e outro número, que deve ser passado como parâmetro na chamada da função; Um exemplo de uma declaração de uma função de soma poderia ser:
public void soma(int B) ou public int soma(int B)
dependendo da modelagem que você adotar. A classe também deve permitir que o seu valor (atributo) seja mudado (para qualquer numero natural) e acessado.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Bem, você não especificou a linguagem (Provavelmente Java). Não faz muita diferença. A seguir descrevo uma implementação do seu problema usando PHP. A resolução do problema foi feita da seguinte forma:;

Foi criada uma interface Numero (Responsavel por definir o comportamento de qualquer classe numerica, como Reais, naturais, ...)

Ela possui dois métodos um para obter o atributo privado (getAtributo) e outra para mudar o vlaor do atributo (setAtributo).

 

Foi criada a interface Operacao que define o comportamento que ualuer classe que realize uma operação matematica deve ter (Somar, divir, ...)

Ela possui apenas o metodo operacao (Que recebe um objeto do tipo da interface Numero, mais um numero inteiro e retorna uma soma, sutração ...)

 

Exemplo em codigo:

interface Numero.php<?php/* * Interface que define o formato de qualuer tipo de número (Natural, Inteiro, etc.) */interface Numero{    /*     * @parametro $atributo Integer     */    public function setAtributo($atributo);        /*     * @[member=Return] $atributo Integer     */    public function getAtributo();}
classe Natural.php<?php/* * Implementação da classe número */include_once './Numero.php';class Natural implements Numero {    private $atributo = 0;    public function getAtributo() {        return $this->atributo;    }    public function setAtributo($atributo) {        $this->atributo = $atributo;    }}
interface Operacao.php<?php/* * Interface que define o formato de cada classe ue realiza operações matematicas * (soma, subtração, etc...) */interface Operacao {    /* O método ue realiza a operação deve receber uma implementação da interface Numero como parametro     * E um número natural também     *      * @parametro Numero $numero, $valor Integer     * @[member=Return] $resultado Integer     */    public function operacao(Numero $numero, $valor);}
Classe Soma.php<?php/* * Implementação da classe soma (Interface Operacao) */class Soma implements Operacao {    /*     * Esse método recebe uma implementação da interface Numero, que oferece um método para      * Obter o atributo (De acordo com a descrição do seu problema)     * E também recebe um numero natural     * Retornando uma soma     */    public function operacao(Numero $numero, $valor) {        return $numero->getAtributo() + $valor;    }}
Classe Subtracao.php<?php/* * Implementação da classe subtracao (Interface Operacao) */class Subtracao implements Operacao {    /*     * Esse método recebe uma implementação da interface Numero, que oferece um método para      * Obter o atributo (De acordo com a descrição do seu problema)     * E também recebe um numero natural     * Retornando o resultado de uma subtração     */    public function operacao(Numero $numero, $valor) {        return $numero->getAtributo() - $valor;    }}
Classe multiplicacao.php<?php/* * Implementação da classe subtracao (Interface Operacao) */class Multiplicacao implements Operacao {    /*     * Esse método recebe uma implementação da interface Numero, que oferece um método para      * Obter o atributo (De acordo com a descrição do seu problema)     * E também recebe um numero natural     * Retornando o resultado de uma multiplicação     */    public function operacao(Numero $numero, $valor) {        return $numero->getAtributo() * $valor;    }}

Por fim um teste do sistema:

Arquivo Teste.php<?php/* * Testando o sistema */include_once './Natural.php';include_once './Soma.php';include_once './Subtracao.php';include_once './Multiplicacao.php';//Primeiro cria uma instancia de uma implementação da interface Numero//que no caso é a classe Natural$numeroNatural = new Natural();//altera o valor do atributo$numeroNatural->setAtributo(15);//Agora cria instancias de uma implementação da interface Operacao$operacaoMatematicaSoma = new Soma();$operacaoMatematicaSubtracao = new Subtracao();$operacaoMatematicaMultipli = new Multiplicacao();//Faz uma soma$resultadoSoma = $operacaoMatematicaSoma->operacao($numeroNatural, 12);//Faz uma subtração$resultadoSubtracao = $operacaoMatematicaSubtracao->operacao($numeroNatural, 11);//Faz uma multiplicação$resultadoMultiplicacao = $operacaoMatematicaMultipli->operacao($numeroNatural, 10);echo $resultadoSoma;echo "<br>";echo $resultadoSubtracao;echo "<br>";echo $resultadoMultiplicacao;

Acho que isso resolve o seu problema (Claro tem muita coisa que não é abordado pelo seu exercicio).  

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...