Ir ao conteúdo
  • Cadastre-se
Matheus Santana_482153

Encapsulamento / Netbeans - Helpp :(

Recommended Posts

É 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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).  

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×