Ir ao conteúdo
  • Cadastre-se

Java Como faria soma em abstracao


Posts recomendados

Eu tenho uma dúvida, como por exemplo eu faria  para criar um método somador que recebe dois valores numéricos e faz a soma destes. Usando o conceito de classes abstratas,  e o método receberá dois valores de um tipo abstrato e executa a soma destes. os valores terão que ser tipo Float, Integer, Decimal.

 

 

Eu faria uma classe abstrata soma e faria essas coisas? 
 

Link para o comentário
Compartilhar em outros sites

@JorgeGus olha eu nem ouso questionar os professores, já me ferrei bastante por ter duvidas e questionar e falar que o que ele fazia n tava na ementa,

 

mas vou tentar melhorar a minha duvida:

 

Objetivo: criar um método somador que recebe dois valores numéricos e faz a soma destes. Usando o conceito de classes abstratas, este método receberá dois valores de um tipo abstrato e executa a soma destes.

Tipos aceitos: os valores numéricos recebidos podem ser de qualquer tipo, por exemplo: Float, Integer, Decimal.

 

 

dai tem esse q vou fazer separado: 

 

import java.math.BigDecimal;

 

abstract class Numero {
    protected Double valor;
    public __________ getValor();
}

class Inteiro ________ {
    private Integer classValor;

    public Inteiro(_______ classValor) {
        this.classValor = classValor;
    }

    public _______ getValor() {
        valor = _____________
        return valor;
    }
}

class Decimal extends _______ {
    private BigDecimal classValor;

    public Decimal(_______ classValor) {
        this.classValor = classValor;
    }

    public _______ getValor() {
        valor = classValor.doubleValue();
        return valor;
    }
}

class Flutuante __________ {
    ...
}

public class MainSomador {

    public static Double somador(_______ num1, _______ num2) {
        Double soma = num1._______ + num2._______;
        return soma;
    }

     testando o método
    public static void main(String args[]) {
        ________ v1 = new Inteiro(2);
        ________ v2 = new Flutuante(4.0f);
        
        Double res1 = somador(v1, v2); 
        System.out.println(Soma =  + res1);  Soma = 6.0
        
        ________ v3 = new Decimal(new BigDecimal(5));
        ________ v4 = new Inteiro(10);
        
        Double res2 = somador(v3, v4);
        System.out.println(Soma =  + res2);  Soma = 15
    }
}

Atividade: complete as lacunas do arquivo de código (MainSomador.java), com o objetivo de fazer o código executar. Dica: implemente num outro arquivo cada linha para evitar erros que serão gerados quando importar o arquivo com lacunas. Assim você pode ir testando passo a passo.

Enviar: o código fonte do arquivo MainSomador.java completo e executando sem erro com os resultados esperados.

Link para o comentário
Compartilhar em outros sites

Agora deu pra entender melhor, e o erro foi mais seu do que do seu professor, por você ter colocado abstração no título do tópico.

 

As classes Float e Integer estendem a classe abstrata Number, então você poderia usar como parâmetros duas variáveis Number, e retornar também um Number, mas essa classe Decimal não me parece fazer parte do Java, se fosse a classe BigDecimal seria mais fácil porque ela também estende Number.

 

O segundo exercício não parece difícil, é só ler o código e enteder o que cada parte faz.

 

 

 

Link para o comentário
Compartilhar em outros sites

@JorgeGus A segnda parte acho q consigo fazer, mas a primeita, tem como eu usar parte da 2 na 1?

 

 

tipo eu arrumei para isso 

 

public abstract class Soma {
    
 protected Double valor1;
 protected Double valor2;

        
        

ou 

 

abstract Number somar(Number a, Number b); 

    
    
    
    
}

Link para o comentário
Compartilhar em outros sites

@JorgeGus Cara!! eu acho q consegui, mas n sei se é o que pede:

 

 

import java.util.Scanner;

public abstract class Soma {
 int a, b, s;

    abstract void input();
    abstract void add();
    abstract void resultado();
    Scanner sc = new Scanner(System.in);
    
    
}

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

class Main extends Soma {

    void input() {
        System.out.print("Entre com dois numers: ");
        a = sc.nextInt();
        b = sc.nextInt();
    }

    void add() {
        s = a + b;
    }

    void resultado() {
        System.out.print("Soma dos dois números:" + s);
    }

    public static void main(String args[]) {
        Main st = new Main();
        st.input();
        st.add();
        st.resultado();
    }
}

 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

 

ele dá certo, rida, sai o resultado, mas é o que pede?

 

 

 

Link para o comentário
Compartilhar em outros sites

Pessoalmente acho que a declaração do método seria:

Number soma(Number n1, Number n2) {
}

 

Mas como eu disse, Decimal não me parece ser uma das classes do JDK, então o primeiro exercício que você postou só teria sentido se fosse baseado no segundo, e nesse caso você teria que usar

if (n1 instanceof Decimal) {
}

para diferenciar a classe Decimal de Integer e Float e efetuar a soma de forma adequada.

 

Não sei dizer qual solução está correta, porque o enunciado, pelo menos como foi postado, não parece muito claro.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!