Ir ao conteúdo
  • Cadastre-se

Java Iniciante - soma de numeros


Ir à solução Resolvido por psykotico,

Posts recomendados

Estou começando a aprender Java e estou com uma duvida nesse exercício

 

Faça um programa que receba quatro números inteiros calcule e mostre a soma desses números.

 

eu teria que fazer orientado a objetos, então criei duas classes 

public class Soma {    int n1,n2,n3,n4,somaNumeros=0;        public void soma(){                somaNumeros = n1+n2+n3+n4;        System.out.print("A soma é: "+somaNumeros);            }}

e a classe principal para testar

import java.util.Scanner;public class TesteSoma {        public static void main(String[]args) {                Scanner ler = new Scanner(System.in);        System.out.print("Digite o primeiro numero: ");        int n1 = ler.nextInt();                System.out.print("Digite o segundo numero: ");        int n2 = ler.nextInt();                System.out.print("Digite o terceiro numero: ");        int n3 = ler.nextInt();                System.out.print("Digite o quarto numero: ");        int n4 = ler.nextInt();                Soma s1= new Soma();        s1.soma();    }}

a soma esta sendo respondida como 0, alguém poderia me ajudar a achar meu erro e como resolver ?

 

 

 

 

 

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Solução

Veja, no código você criou uma classe para realizar a soma ... Porém, por mais que você instancie as classes, os atributos do objeto (n1, n2, n3, n4) não estão recebendo os valores ... Perceba que o "n1" utilizado dentro da função main, tem escopo apenas como variável da função main ... Os atributos de Soma são outra coisa ... para setar os valores você precisaria utilizar os Setters da classe assim:

public class Soma {    int n1,n2,n3,n4,somaNumeros=0;        public void soma(){                somaNumeros = n1+n2+n3+n4;        System.out.print("A soma é: "+somaNumeros);            }    public void setN1(int numero){        this.n1 = numero;    }    // ... Criar os métodos SETTERS e GETTERS de cada atributo.}

E na main você poderia utilizar algo assim:

import java.util.Scanner;public class TesteSoma {        public static void main(String[]args) {        Soma s1= new Soma();                Scanner ler = new Scanner(System.in);        System.out.print("Digite o primeiro numero: ");        int n1 = ler.nextInt();        s1.setN1(n1);                System.out.print("Digite o segundo numero: ");        int n2 = ler.nextInt();        s1.setN2(n2);                System.out.print("Digite o terceiro numero: ");        int n3 = ler.nextInt();        s1.setN3(n3);                System.out.print("Digite o quarto numero: ");        int n4 = ler.nextInt();        s1.setN4(n4);                s1.soma();    }}

Com isso o programa funcionará. Porém, aconselho utilizar mais dos conhecimentos da Orientação à Objetos para melhorar o código ... um exemplo seria exibir o resultado fora do método soma() ... alterando o método para retornar o valor de somaNumeros, você poderia colocar na main assim:

System.out.print("A soma é: " + s1.soma());

Existe muita coisa que ainda pode ser melhorada levando em conta apenas a Orientação à Objetos e boas práticas ... Mas continue firme e qualquer coisa só perguntar ...

  • Curtir 2
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...